{"version":3,"sources":["webpack:///./node_modules/vuelidate/lib/params.js","webpack:///./src/services/successToast.js","webpack:///./node_modules/vuelidate/lib/validators/integer.js","webpack:///./node_modules/vuelidate/lib/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/vuelidate/lib/validators/maxLength.js","webpack:///./node_modules/vuelidate/lib/validators/and.js","webpack:///./node_modules/vuelidate/lib/validators/alphaNum.js","webpack:///./node_modules/vuelidate/lib/validators/numeric.js","webpack:///./node_modules/vuelidate/lib/validators/maxValue.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/quill-paste-smart/dist/quill-paste-smart.js","webpack:///./node_modules/vuelidate/lib/validators/email.js","webpack:///./node_modules/vuelidate/lib/validators/minLength.js","webpack:///./node_modules/vuelidate/lib/validators/alpha.js","webpack:///./node_modules/vuelidate/lib/validators/not.js","webpack:///./src/views/MessageEdit.vue?ea7d","webpack:///./src/validators/index.js","webpack:///./src/components/message-board/Editor.vue?8393","webpack:///src/components/message-board/Editor.vue","webpack:///./src/components/message-board/Editor.vue?6ccf","webpack:///./src/components/message-board/Editor.vue","webpack:///src/views/MessageEdit.vue","webpack:///./src/views/MessageEdit.vue?f659","webpack:///./src/views/MessageEdit.vue","webpack:///./node_modules/vuelidate/lib/validators/url.js","webpack:///./node_modules/vuelidate/lib/validators/common.js","webpack:///./node_modules/vuelidate/lib/withParams.js","webpack:///./src/components/message-board/Editor.vue?a57f","webpack:///./src/views/Message.vue?0ac6","webpack:///src/views/Message.vue","webpack:///./src/views/Message.vue?0140","webpack:///./src/views/Message.vue","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/vuelidate/lib/validators/macAddress.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/vuelidate/lib/validators/requiredIf.js","webpack:///./node_modules/vuelidate/lib/validators/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vuelidate/lib/validators/sameAs.js","webpack:///./node_modules/vuelidate/lib/validators/decimal.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/vuelidate/lib/validators/ipAddress.js","webpack:///./node_modules/quill-auto-links/dist/index.js","webpack:///./node_modules/vuelidate/lib/withParamsBrowser.js","webpack:///./node_modules/vuelidate/lib/validators/or.js","webpack:///./node_modules/vuelidate/lib/validators/required.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/vuelidate/lib/validators/requiredUnless.js","webpack:///./node_modules/vuelidate/lib/validators/minValue.js","webpack:///./node_modules/vuelidate/lib/validators/between.js","webpack:///./node_modules/vuelidate/lib/vval.js"],"names":["_objectSpread","target","i","arguments","length","source","ownKeys","Object","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","_defineProperty","obj","value","defineProperty","configurable","writable","_typeof","Symbol","iterator","constructor","prototype","exports","pushParams","popParams","withParams","_setTarget","stack","x","push","lastTarget","newTarget","pop","Array","isArray","$sub","addParams","params","Error","withParamsDirect","validator","withParamsClosure","add","_len","args","_key","apply","this","closure","_len2","_key2","paramsOrClosure","maybeValidator","undefined","vm","message","title","$root","$bvToast","toast","solid","variant","default","_common","_default","regex","Vuelidate","get","_params","validationMixin","_vval","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","TypeError","iter","toString","call","from","arr2","NIL","buildFromKeys","fn","keyFn","reduce","build","isFunction","val","isObject","isPromise","object","then","getPath","ctx","path","fallback","split","__isVuelidateAsyncVm","makePendingAsyncVm","Vue","promise","asyncVm","data","p","v","error","validationGetters","$invalid","_this","proxy","nestedKeys","some","nested","refProxy","ruleKeys","rule","$dirty","_this2","dirty","every","$anyDirty","_this3","$error","$pending","$anyError","_this4","_this5","getRef","$params","_this6","vals","validations","setDirtyRecursive","newState","method","validationMethods","$touch","$reset","$flattenParams","isNested","childParams","j","unshift","name","getterNames","methodNames","_cachedComponent","getComponent","VBase","extend","computed","refs","oldVval","children","patchChildren","c","beforeCreate","beforeDestroy","methods","getModel","lazyModel","prop","model","getModelKey","hasIter","ValidationRule","lazyParentModel","rootModel","runRule","parent","rawOutput","output","rawParams","run","_this7","isArrayDependant","__ob__","arrayDep","dep","depend","_indirectWatcher","Watcher","lazy","_lastModel","evaluate","teardown","destroyed","Validation","_this8","k","_this9","keyDefs","getterDefs","methodDefs","iterDefs","$iter","defineProperties","$model","set","_this10","map","renderNested","renderRule","Boolean","GroupValidation","EachValidation","tracker","_this11","trackBy","$trackBy","getModelLazy","_this12","_this13","def","usedTracks","track","hasOwnProperty","h","root","refVals","$v","join","_cachedVue","getVue","rootVm","super","validateModel","_getComponent","$options","_vuelidate","options","$destroy","mixin","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","code","len","charCodeAt","getLens","b64","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","extraBytes","parts","maxChunkLength","len2","type","max","req","validators","valid","test","Date","$","$trim","trim","forcedStringTrimMethod","proto","forced","e","t","module","window","n","o","r","l","m","d","toStringTag","__esModule","create","bind","s","setPrototypeOf","isFrozen","freeze","seal","a","Reflect","u","construct","Function","T","f","slice","String","toLowerCase","y","match","b","replace","F","g","RegExp","A","L","D","S","E","O","_","w","M","R","C","N","z","H","W","P","G","B","I","q","U","K","createPolicy","currentScript","hasAttribute","getAttribute","createHTML","console","warn","version","removed","document","nodeType","isSupported","DocumentFragment","HTMLTemplateElement","Node","V","NodeFilter","Q","NamedNodeMap","Y","MozNamedAttrMap","Text","X","Comment","J","DOMParser","Z","trustedTypes","ee","createElement","content","ownerDocument","te","ne","oe","re","implementation","ie","createNodeIterator","ae","getElementsByTagName","ue","createDocumentFragment","le","importNode","se","createHTMLDocument","documentMode","ce","fe","de","pe","me","he","ye","be","ve","Fe","ge","Ae","De","Te","Le","Se","Ee","Oe","ke","xe","_e","we","Me","Re","Ce","Ne","ze","He","We","je","Pe","Ge","Be","Ie","qe","Ue","ALLOWED_TAGS","ALLOWED_ATTR","ADD_URI_SAFE_ATTR","FORBID_TAGS","FORBID_ATTR","USE_PROFILES","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","RETURN_TRUSTED_TYPE","FORCE_BODY","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","ALLOWED_URI_REGEXP","html","svg","svgFilters","mathMl","ADD_TAGS","ADD_ATTR","table","tbody","Ke","element","parentNode","removeChild","outerHTML","Ve","attribute","getAttributeNode","removeAttribute","Qe","parseFromString","documentElement","body","firstElementChild","insertBefore","createTextNode","childNodes","querySelector","innerHTML","Ye","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","$e","nodeName","textContent","attributes","setAttribute","namespaceURI","Xe","Je","Ze","tagName","allowedTags","querySelectorAll","insertAdjacentHTML","cloneNode","et","tt","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","id","setAttributeNS","nt","nextNode","sanitize","toStaticHTML","appendChild","firstChild","setConfig","clearConfig","isValidAttribute","addHook","removeHook","removeHooks","removeAllHooks","__proto__","ReferenceError","sham","Proxy","getPrototypeOf","import","allowed","keepSelection","substituteBlockElements","magicPasteLinks","hooks","preventDefault","quill","getSelection","clipboardData","getData","retain","index","delete","getDOMPurifyOptions","beforeSanitizeElements","uponSanitizeElement","afterSanitizeElements","beforeSanitizeAttributes","uponSanitizeAttribute","afterSanitizeAttributes","beforeSanitizeShadowDOM","uponSanitizeShadowNode","afterSanitizeShadowDOM","substitute","convert","includes","isURL","getText","insert","link","updateContents","sources","USER","setSelection","SILENT","scrollIntoView","tags","getModule","controls","getOwnPropertyDescriptors","nextSibling","register","emailRegex","min","render","_vm","_h","$createElement","_c","_self","on","$event","stopPropagation","onSubmit","staticClass","attrs","exit","_v","_s","pageHeading","validateField","invalidFeedback","ref","onInputEditor","hasImage","onAddImage","onRemoveImage","canUploadImage","onInputImageFile","imageFile","callback","$$v","$set","expression","onInputImageUrl","imageUrl","directives","rawName","imageData","hasImagePreviewError","postCategoryOptions","categoryId","isSendAlertEnabled","onInputSendAlert","hasAlert","canSubmit","submitButtonLabel","staticRenderFns","imagePreview","imageSize","size","imageType","notRequiredAndEmpty","helpers","isModIsEditingByMod","isMod","isEditing","byMod","validUrl","startsWith","postContent","hasMessage","hasText","$refs","editor","domProps","props","onTextChange","$emit","created","mounted","modules","autoLinks","keyboard","bindings","tab","handler","toolbar","placeholder","theme","component","components","Editor","mixins","canAssignCategory","canSendAlert","isImagePreviewLoading","$route","page","$store","getters","postCategory","confirmRemoveImage","$bvModal","confirmSendAlert","_from","$router","back","fetchPost","dispatch","reader","onload","readAsDataURL","image","onerror","src","sharkAlertsCategoryId","send","http","ready","beforeRouteEnter","next","beforeRouteUpdate","urlRegex","_withParams","_interopRequireDefault","isNaN","getTime","reference","parentVm","expr","BUILD","post","onDelete","Post","SearchInput","deletePost","watch","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","Math","pow","write","rt","abs","floor","log","LN2","separator","hexValid","hex","factory","self","installedModules","__webpack_require__","moduleId","getter","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","find","query","Container","Format","Leaf","Embed","Scroll","Block","Inline","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","__","ParchmentError","_super","classes","types","input","BlotClass","node","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","TYPE","Definitions","_i","Definition","blotName","keyName","className","toUpperCase","tagNames","tag","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","ops","text","newOp","lastOp","splice","chop","predicate","partition","passed","failed","initial","changeLength","elem","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","desc","_extend","_extend2","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","_possibleConstructorReturn","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","formats","values","BLOCK_ATTRIBUTE","format","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","shift","tail","head","remove","context","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_slicedToArray","sliceIterator","_arr","_n","_d","done","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","container","classList","__quill","addContainer","scrollingContainer","emitter","scroll","whitelist","selection","addModule","clipboard","history","init","events","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","contents","setContents","clear","readOnly","disable","limit","level","imports","overwrite","refNode","setRange","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","API","change","formatLine","formatText","_overload3","_overload4","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","_overload7","_overload8","getContents","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","hasFocus","embed","insertEmbed","_overload11","_overload12","insertText","contains","off","once","dangerouslyPasteHTML","_overload13","_overload14","removeFormat","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","userConfig","DEFAULTS","themeConfig","config","moduleNames","moduleConfig","moduleClass","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","_map4","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","addEventListener","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","event","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","levels","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","sort","attributeBit","ATTRIBUTE","item","canAdd","Code","_block","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","prev","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","list","bullet","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","setTimeout","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","resolve","reject","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","flags","global","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","navigator","platform","Keyboard","_Module","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","binding","normalize","which","keyCode","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","parseInt","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","select","buildPicker","style","display","label","togglePicker","escape","option","tabIndex","selectItem","buildItem","selected","buildLabel","buildOptions","close","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","result","camelize","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","changeDelta","undoDelta","timestamp","now","delay","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","FileReader","click","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","append","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","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","ceil","v_offset","v_length","v1","v2","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","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","str","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","parseFloat","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","clearTimeout","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","_alpha","_alphaNum","_numeric","_between","_email","_ipAddress","_macAddress","_maxLength","_minLength","_required","_requiredIf","_requiredUnless","_sameAs","_url","_or","_and","_not","_minValue","_maxValue","_integer","_decimal","_interopRequireWildcard","newObj","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","string","isEncoding","fromArrayLike","array","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","equalTo","eq","fails","whitespaces","non","METHOD_NAME","nibbles","nibbleValid","nibble","numeric","_extends","assign","DEFAULT_OPTIONS","REGEXP_GLOBAL","REGEXP_WITH_PRECEDING_WS","sliceFromLastWhitespace","whitespaceI","sliceI","registerTypeListener","registerPasteListener","beforeLink","AutoLinks","fakeWithParams","vuelidate","isUndef","isDef","sameVval","vval","createVm","Vm","updateVval","createKeyToOldIdx","beginIdx","endIdx","updateChildren","oldCh","newCh","oldKeyToIdx","idxInOld","elmToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVval","oldEndVval","newEndIdx","newStartVval","newEndVval","patchVval","addVvals","removeVvals","vvals","startIdx","ch"],"mappings":"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","file":"js/message.09064c30.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.pushParams = pushParams;\nexports.popParams = popParams;\nexports.withParams = withParams;\nexports._setTarget = exports.target = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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) { 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\nvar stack = [];\nvar target = null;\nexports.target = target;\n\nvar _setTarget = function _setTarget(x) {\n exports.target = target = x;\n};\n\nexports._setTarget = _setTarget;\n\nfunction pushParams() {\n if (target !== null) {\n stack.push(target);\n }\n\n exports.target = target = {};\n}\n\nfunction popParams() {\n var lastTarget = target;\n var newTarget = exports.target = target = stack.pop() || null;\n\n if (newTarget) {\n if (!Array.isArray(newTarget.$sub)) {\n newTarget.$sub = [];\n }\n\n newTarget.$sub.push(lastTarget);\n }\n\n return lastTarget;\n}\n\nfunction addParams(params) {\n if (_typeof(params) === 'object' && !Array.isArray(params)) {\n exports.target = target = _objectSpread({}, target, params);\n } else {\n throw new Error('params must be an object');\n }\n}\n\nfunction withParamsDirect(params, validator) {\n return withParamsClosure(function (add) {\n return function () {\n add(params);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validator.apply(this, args);\n };\n });\n}\n\nfunction withParamsClosure(closure) {\n var validator = closure(addParams);\n return function () {\n pushParams();\n\n try {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validator.apply(this, args);\n } finally {\n popParams();\n }\n };\n}\n\nfunction withParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return withParamsDirect(paramsOrClosure, maybeValidator);\n }\n\n return withParamsClosure(paramsOrClosure);\n}","export default (vm, message, title = \"Success\") => {\r\n vm.$root.$bvToast.toast(message, {\r\n solid: true,\r\n title: title,\r\n variant: \"success\",\r\n });\r\n};\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('integer', /(^[0-9]*$)|(^-[0-9]+$)/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Vuelidate = Vuelidate;\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _params.withParams;\n }\n});\nexports.default = exports.validationMixin = void 0;\n\nvar _vval = require(\"./vval\");\n\nvar _params = require(\"./params\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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) { 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\nvar NIL = function NIL() {\n return null;\n};\n\nvar buildFromKeys = function buildFromKeys(keys, fn, keyFn) {\n return keys.reduce(function (build, key) {\n build[keyFn ? keyFn(key) : key] = fn(key);\n return build;\n }, {});\n};\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(val) {\n return val !== null && (_typeof(val) === 'object' || isFunction(val));\n}\n\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n\nvar getPath = function getPath(ctx, obj, path, fallback) {\n if (typeof path === 'function') {\n return path.call(ctx, obj, fallback);\n }\n\n path = Array.isArray(path) ? path : path.split('.');\n\n for (var i = 0; i < path.length; i++) {\n if (obj && _typeof(obj) === 'object') {\n obj = obj[path[i]];\n } else {\n return fallback;\n }\n }\n\n return typeof obj === 'undefined' ? fallback : obj;\n};\n\nvar __isVuelidateAsyncVm = '__isVuelidateAsyncVm';\n\nfunction makePendingAsyncVm(Vue, promise) {\n var asyncVm = new Vue({\n data: {\n p: true,\n v: false\n }\n });\n promise.then(function (value) {\n asyncVm.p = false;\n asyncVm.v = value;\n }, function (error) {\n asyncVm.p = false;\n asyncVm.v = false;\n throw error;\n });\n asyncVm[__isVuelidateAsyncVm] = true;\n return asyncVm;\n}\n\nvar validationGetters = {\n $invalid: function $invalid() {\n var _this = this;\n\n var proxy = this.proxy;\n return this.nestedKeys.some(function (nested) {\n return _this.refProxy(nested).$invalid;\n }) || this.ruleKeys.some(function (rule) {\n return !proxy[rule];\n });\n },\n $dirty: function $dirty() {\n var _this2 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.every(function (key) {\n return _this2.refProxy(key).$dirty;\n });\n },\n $anyDirty: function $anyDirty() {\n var _this3 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.some(function (key) {\n return _this3.refProxy(key).$anyDirty;\n });\n },\n $error: function $error() {\n return this.$dirty && !this.$pending && this.$invalid;\n },\n $anyError: function $anyError() {\n var _this4 = this;\n\n if (this.$error) return true;\n return this.nestedKeys.some(function (key) {\n return _this4.refProxy(key).$anyError;\n });\n },\n $pending: function $pending() {\n var _this5 = this;\n\n return this.ruleKeys.some(function (key) {\n return _this5.getRef(key).$pending;\n }) || this.nestedKeys.some(function (key) {\n return _this5.refProxy(key).$pending;\n });\n },\n $params: function $params() {\n var _this6 = this;\n\n var vals = this.validations;\n return _objectSpread({}, buildFromKeys(this.nestedKeys, function (key) {\n return vals[key] && vals[key].$params || null;\n }), buildFromKeys(this.ruleKeys, function (key) {\n return _this6.getRef(key).$params;\n }));\n }\n};\n\nfunction setDirtyRecursive(newState) {\n this.dirty = newState;\n var proxy = this.proxy;\n var method = newState ? '$touch' : '$reset';\n this.nestedKeys.forEach(function (key) {\n proxy[key][method]();\n });\n}\n\nvar validationMethods = {\n $touch: function $touch() {\n setDirtyRecursive.call(this, true);\n },\n $reset: function $reset() {\n setDirtyRecursive.call(this, false);\n },\n $flattenParams: function $flattenParams() {\n var proxy = this.proxy;\n var params = [];\n\n for (var key in this.$params) {\n if (this.isNested(key)) {\n var childParams = proxy[key].$flattenParams();\n\n for (var j = 0; j < childParams.length; j++) {\n childParams[j].path.unshift(key);\n }\n\n params = params.concat(childParams);\n } else {\n params.push({\n path: [],\n name: key,\n params: this.$params[key]\n });\n }\n }\n\n return params;\n }\n};\nvar getterNames = Object.keys(validationGetters);\nvar methodNames = Object.keys(validationMethods);\nvar _cachedComponent = null;\n\nvar getComponent = function getComponent(Vue) {\n if (_cachedComponent) {\n return _cachedComponent;\n }\n\n var VBase = Vue.extend({\n computed: {\n refs: function refs() {\n var oldVval = this._vval;\n this._vval = this.children;\n (0, _vval.patchChildren)(oldVval, this._vval);\n var refs = {};\n\n this._vval.forEach(function (c) {\n refs[c.key] = c.vm;\n });\n\n return refs;\n }\n },\n beforeCreate: function beforeCreate() {\n this._vval = null;\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vval) {\n (0, _vval.patchChildren)(this._vval);\n this._vval = null;\n }\n },\n methods: {\n getModel: function getModel() {\n return this.lazyModel ? this.lazyModel(this.prop) : this.model;\n },\n getModelKey: function getModelKey(key) {\n var model = this.getModel();\n\n if (model) {\n return model[key];\n }\n },\n hasIter: function hasIter() {\n return false;\n }\n }\n });\n var ValidationRule = VBase.extend({\n data: function data() {\n return {\n rule: null,\n lazyModel: null,\n model: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: {\n runRule: function runRule(parent) {\n var model = this.getModel();\n (0, _params.pushParams)();\n var rawOutput = this.rule.call(this.rootModel, model, parent);\n var output = isPromise(rawOutput) ? makePendingAsyncVm(Vue, rawOutput) : rawOutput;\n var rawParams = (0, _params.popParams)();\n var params = rawParams && rawParams.$sub ? rawParams.$sub.length > 1 ? rawParams : rawParams.$sub[0] : null;\n return {\n output: output,\n params: params\n };\n }\n },\n computed: {\n run: function run() {\n var _this7 = this;\n\n var parent = this.lazyParentModel();\n\n var isArrayDependant = Array.isArray(parent) && parent.__ob__;\n\n if (isArrayDependant) {\n var arrayDep = parent.__ob__.dep;\n arrayDep.depend();\n var target = arrayDep.constructor.target;\n\n if (!this._indirectWatcher) {\n var Watcher = target.constructor;\n this._indirectWatcher = new Watcher(this, function () {\n return _this7.runRule(parent);\n }, null, {\n lazy: true\n });\n }\n\n var model = this.getModel();\n\n if (!this._indirectWatcher.dirty && this._lastModel === model) {\n this._indirectWatcher.depend();\n\n return target.value;\n }\n\n this._lastModel = model;\n\n this._indirectWatcher.evaluate();\n\n this._indirectWatcher.depend();\n } else if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n\n return this._indirectWatcher ? this._indirectWatcher.value : this.runRule(parent);\n },\n $params: function $params() {\n return this.run.params;\n },\n proxy: function proxy() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return !!output.v;\n }\n\n return !!output;\n },\n $pending: function $pending() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return output.p;\n }\n\n return false;\n }\n },\n destroyed: function destroyed() {\n if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n }\n });\n var Validation = VBase.extend({\n data: function data() {\n return {\n dirty: false,\n validations: null,\n lazyModel: null,\n model: null,\n prop: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: _objectSpread({}, validationMethods, {\n refProxy: function refProxy(key) {\n return this.getRef(key).proxy;\n },\n getRef: function getRef(key) {\n return this.refs[key];\n },\n isNested: function isNested(key) {\n return typeof this.validations[key] !== 'function';\n }\n }),\n computed: _objectSpread({}, validationGetters, {\n nestedKeys: function nestedKeys() {\n return this.keys.filter(this.isNested);\n },\n ruleKeys: function ruleKeys() {\n var _this8 = this;\n\n return this.keys.filter(function (k) {\n return !_this8.isNested(k);\n });\n },\n keys: function keys() {\n return Object.keys(this.validations).filter(function (k) {\n return k !== '$params';\n });\n },\n proxy: function proxy() {\n var _this9 = this;\n\n var keyDefs = buildFromKeys(this.keys, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9.refProxy(key);\n }\n };\n });\n var getterDefs = buildFromKeys(getterNames, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var methodDefs = buildFromKeys(methodNames, function (key) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var iterDefs = this.hasIter() ? {\n $iter: {\n enumerable: true,\n value: Object.defineProperties({}, _objectSpread({}, keyDefs))\n }\n } : {};\n return Object.defineProperties({}, _objectSpread({}, keyDefs, iterDefs, {\n $model: {\n enumerable: true,\n get: function get() {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n return parent[_this9.prop];\n } else {\n return null;\n }\n },\n set: function set(value) {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n parent[_this9.prop] = value;\n\n _this9.$touch();\n }\n }\n }\n }, getterDefs, methodDefs));\n },\n children: function children() {\n var _this10 = this;\n\n return _toConsumableArray(this.nestedKeys.map(function (key) {\n return renderNested(_this10, key);\n })).concat(_toConsumableArray(this.ruleKeys.map(function (key) {\n return renderRule(_this10, key);\n }))).filter(Boolean);\n }\n })\n });\n var GroupValidation = Validation.extend({\n methods: {\n isNested: function isNested(key) {\n return typeof this.validations[key]() !== 'undefined';\n },\n getRef: function getRef(key) {\n var vm = this;\n return {\n get proxy() {\n return vm.validations[key]() || false;\n }\n\n };\n }\n }\n });\n var EachValidation = Validation.extend({\n computed: {\n keys: function keys() {\n var model = this.getModel();\n\n if (isObject(model)) {\n return Object.keys(model);\n } else {\n return [];\n }\n },\n tracker: function tracker() {\n var _this11 = this;\n\n var trackBy = this.validations.$trackBy;\n return trackBy ? function (key) {\n return \"\".concat(getPath(_this11.rootModel, _this11.getModelKey(key), trackBy));\n } : function (x) {\n return \"\".concat(x);\n };\n },\n getModelLazy: function getModelLazy() {\n var _this12 = this;\n\n return function () {\n return _this12.getModel();\n };\n },\n children: function children() {\n var _this13 = this;\n\n var def = this.validations;\n var model = this.getModel();\n\n var validations = _objectSpread({}, def);\n\n delete validations['$trackBy'];\n var usedTracks = {};\n return this.keys.map(function (key) {\n var track = _this13.tracker(key);\n\n if (usedTracks.hasOwnProperty(track)) {\n return null;\n }\n\n usedTracks[track] = true;\n return (0, _vval.h)(Validation, track, {\n validations: validations,\n prop: key,\n lazyParentModel: _this13.getModelLazy,\n model: model[key],\n rootModel: _this13.rootModel\n });\n }).filter(Boolean);\n }\n },\n methods: {\n isNested: function isNested() {\n return true;\n },\n getRef: function getRef(key) {\n return this.refs[this.tracker(key)];\n },\n hasIter: function hasIter() {\n return true;\n }\n }\n });\n\n var renderNested = function renderNested(vm, key) {\n if (key === '$each') {\n return (0, _vval.h)(EachValidation, key, {\n validations: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n prop: key,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n }\n\n var validations = vm.validations[key];\n\n if (Array.isArray(validations)) {\n var root = vm.rootModel;\n var refVals = buildFromKeys(validations, function (path) {\n return function () {\n return getPath(root, root.$v, path);\n };\n }, function (v) {\n return Array.isArray(v) ? v.join('.') : v;\n });\n return (0, _vval.h)(GroupValidation, key, {\n validations: refVals,\n lazyParentModel: NIL,\n prop: key,\n lazyModel: NIL,\n rootModel: root\n });\n }\n\n return (0, _vval.h)(Validation, key, {\n validations: validations,\n lazyParentModel: vm.getModel,\n prop: key,\n lazyModel: vm.getModelKey,\n rootModel: vm.rootModel\n });\n };\n\n var renderRule = function renderRule(vm, key) {\n return (0, _vval.h)(ValidationRule, key, {\n rule: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n };\n\n _cachedComponent = {\n VBase: VBase,\n Validation: Validation\n };\n return _cachedComponent;\n};\n\nvar _cachedVue = null;\n\nfunction getVue(rootVm) {\n if (_cachedVue) return _cachedVue;\n var Vue = rootVm.constructor;\n\n while (Vue.super) {\n Vue = Vue.super;\n }\n\n _cachedVue = Vue;\n return Vue;\n}\n\nvar validateModel = function validateModel(model, validations) {\n var Vue = getVue(model);\n\n var _getComponent = getComponent(Vue),\n Validation = _getComponent.Validation,\n VBase = _getComponent.VBase;\n\n var root = new VBase({\n computed: {\n children: function children() {\n var vals = typeof validations === 'function' ? validations.call(model) : validations;\n return [(0, _vval.h)(Validation, '$v', {\n validations: vals,\n lazyParentModel: NIL,\n prop: '$v',\n model: model,\n rootModel: model\n })];\n }\n }\n });\n return root;\n};\n\nvar validationMixin = {\n data: function data() {\n var vals = this.$options.validations;\n\n if (vals) {\n this._vuelidate = validateModel(this, vals);\n }\n\n return {};\n },\n beforeCreate: function beforeCreate() {\n var options = this.$options;\n var vals = options.validations;\n if (!vals) return;\n if (!options.computed) options.computed = {};\n if (options.computed.$v) return;\n\n options.computed.$v = function () {\n return this._vuelidate ? this._vuelidate.refs.$v.proxy : null;\n };\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vuelidate) {\n this._vuelidate.$destroy();\n\n this._vuelidate = null;\n }\n }\n};\nexports.validationMixin = validationMixin;\n\nfunction Vuelidate(Vue) {\n Vue.mixin(validationMixin);\n}\n\nvar _default = Vuelidate;\nexports.default = _default;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(length) {\n return (0, _common.withParams)({\n type: 'maxLength',\n max: length\n }, function (value) {\n return !(0, _common.req)(value) || (0, _common.len)(value) <= length;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n return (0, _common.withParams)({\n type: 'and'\n }, function () {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.length > 0 && validators.reduce(function (valid, fn) {\n return valid && fn.apply(_this, args);\n }, true);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('alphaNum', /^[a-zA-Z0-9]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('numeric', /^[0-9]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(max) {\n return (0, _common.withParams)({\n type: 'maxValue',\n max: max\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +value <= +max;\n });\n};\n\nexports.default = _default;","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"quill\")):\"function\"==typeof define&&define.amd?define([\"quill\"],t):\"object\"==typeof exports?exports.QuillPasteSmart=t(require(\"quill\")):e.QuillPasteSmart=t(e.Quill)}(window,(function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=2)}([function(e,t,n){\n/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.0.8/LICENSE */\ne.exports=function(){\"use strict\";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,o=Object.keys,r=Object.freeze,i=Object.seal,a=\"undefined\"!=typeof Reflect&&Reflect,u=a.apply,l=a.construct;u||(u=function(e,t,n){return e.apply(t,n)}),r||(r=function(e){return e}),i||(i=function(e){return e}),l||(l=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),r=1;r/gm),W=i(/^data-[\\-\\w.\\u00B7-\\uFFFF]/),j=i(/^aria-[\\-\\w]+$/),P=i(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),G=i(/^(?:\\w+script|data):/i),B=i(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g),I=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};function q(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:U(),n=function(t){return e(t)};if(n.version=\"2.0.10\",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var i=t.document,a=!1,u=t.document,l=t.DocumentFragment,T=t.HTMLTemplateElement,L=t.Node,V=t.NodeFilter,Q=t.NamedNodeMap,Y=void 0===Q?t.NamedNodeMap||t.MozNamedAttrMap:Q,$=t.Text,X=t.Comment,J=t.DOMParser,Z=t.trustedTypes;if(\"function\"==typeof T){var ee=u.createElement(\"template\");ee.content&&ee.content.ownerDocument&&(u=ee.content.ownerDocument)}var te=K(Z,i),ne=te?te.createHTML(\"\"):\"\",oe=u,re=oe.implementation,ie=oe.createNodeIterator,ae=oe.getElementsByTagName,ue=oe.createDocumentFragment,le=i.importNode,se={};n.isSupported=re&&void 0!==re.createHTMLDocument&&9!==u.documentMode;var ce=z,fe=H,de=W,pe=j,me=G,he=B,ye=P,be=null,ve=S({},[].concat(q(O),q(k),q(x),q(_),q(w))),Fe=null,ge=S({},[].concat(q(M),q(R),q(C),q(N))),Ae=null,De=null,Te=!0,Le=!0,Se=!1,Ee=!1,Oe=!1,ke=!1,xe=!1,_e=!1,we=!1,Me=!1,Re=!1,Ce=!1,Ne=!0,ze=!0,He=!1,We={},je=S({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]),Pe=S({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]),Ge=null,Be=S({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),Ie=null,qe=u.createElement(\"form\"),Ue=function(e){Ie&&Ie===e||(e&&\"object\"===(void 0===e?\"undefined\":I(e))||(e={}),be=\"ALLOWED_TAGS\"in e?S({},e.ALLOWED_TAGS):ve,Fe=\"ALLOWED_ATTR\"in e?S({},e.ALLOWED_ATTR):ge,Ge=\"ADD_URI_SAFE_ATTR\"in e?S(E(Be),e.ADD_URI_SAFE_ATTR):Be,Ae=\"FORBID_TAGS\"in e?S({},e.FORBID_TAGS):{},De=\"FORBID_ATTR\"in e?S({},e.FORBID_ATTR):{},We=\"USE_PROFILES\"in e&&e.USE_PROFILES,Te=!1!==e.ALLOW_ARIA_ATTR,Le=!1!==e.ALLOW_DATA_ATTR,Se=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ee=e.SAFE_FOR_JQUERY||!1,Oe=e.SAFE_FOR_TEMPLATES||!1,ke=e.WHOLE_DOCUMENT||!1,we=e.RETURN_DOM||!1,Me=e.RETURN_DOM_FRAGMENT||!1,Re=e.RETURN_DOM_IMPORT||!1,Ce=e.RETURN_TRUSTED_TYPE||!1,_e=e.FORCE_BODY||!1,Ne=!1!==e.SANITIZE_DOM,ze=!1!==e.KEEP_CONTENT,He=e.IN_PLACE||!1,ye=e.ALLOWED_URI_REGEXP||ye,Oe&&(Le=!1),Me&&(we=!0),We&&(be=S({},[].concat(q(w))),Fe=[],!0===We.html&&(S(be,O),S(Fe,M)),!0===We.svg&&(S(be,k),S(Fe,R),S(Fe,N)),!0===We.svgFilters&&(S(be,x),S(Fe,R),S(Fe,N)),!0===We.mathMl&&(S(be,_),S(Fe,C),S(Fe,N))),e.ADD_TAGS&&(be===ve&&(be=E(be)),S(be,e.ADD_TAGS)),e.ADD_ATTR&&(Fe===ge&&(Fe=E(Fe)),S(Fe,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&S(Ge,e.ADD_URI_SAFE_ATTR),ze&&(be[\"#text\"]=!0),ke&&S(be,[\"html\",\"head\",\"body\"]),be.table&&(S(be,[\"tbody\"]),delete Ae.tbody),r&&r(e),Ie=e)},Ke=function(e){p(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=ne}},Ve=function(e,t){try{p(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(n.removed,{attribute:null,from:t})}t.removeAttribute(e)},Qe=function(e){var t=void 0,n=void 0;if(_e)e=\"\"+e;else{var o=y(e,/^[\\s]+/);n=o&&o[0]}var r=te?te.createHTML(e):e;try{t=(new J).parseFromString(r,\"text/html\")}catch(e){}if(a&&S(Ae,[\"title\"]),!t||!t.documentElement){var i=(t=re.createHTMLDocument(\"\")).body;i.parentNode.removeChild(i.parentNode.firstElementChild),i.outerHTML=r}return e&&n&&t.body.insertBefore(u.createTextNode(n),t.body.childNodes[0]||null),ae.call(t,ke?\"html\":\"body\")[0]};n.isSupported&&function(){try{var e=Qe(\"</title><img>\");g(/<\\/title/,e.querySelector(\"title\").innerHTML)&&(a=!0)}catch(e){}}();var Ye=function(e){return ie.call(e.ownerDocument||e,e,V.SHOW_ELEMENT|V.SHOW_COMMENT|V.SHOW_TEXT,(function(){return V.FILTER_ACCEPT}),!1)},$e=function(e){return!(e instanceof $||e instanceof X||\"string\"==typeof e.nodeName&&\"string\"==typeof e.textContent&&\"function\"==typeof e.removeChild&&e.attributes instanceof Y&&\"function\"==typeof e.removeAttribute&&\"function\"==typeof e.setAttribute&&\"string\"==typeof e.namespaceURI)},Xe=function(e){return\"object\"===(void 0===L?\"undefined\":I(L))?e instanceof L:e&&\"object\"===(void 0===e?\"undefined\":I(e))&&\"number\"==typeof e.nodeType&&\"string\"==typeof e.nodeName},Je=function(e,t,o){se[e]&&s(se[e],(function(e){e.call(n,t,o,Ie)}))},Ze=function(e){var t=void 0;if(Je(\"beforeSanitizeElements\",e,null),$e(e))return Ke(e),!0;var o=h(e.nodeName);if(Je(\"uponSanitizeElement\",e,{tagName:o,allowedTags:be}),(\"svg\"===o||\"math\"===o)&&0!==e.querySelectorAll(\"p, br\").length)return Ke(e),!0;if(!be[o]||Ae[o]){if(ze&&!je[o]&&\"function\"==typeof e.insertAdjacentHTML)try{var r=e.innerHTML;e.insertAdjacentHTML(\"AfterEnd\",te?te.createHTML(r):r)}catch(e){}return Ke(e),!0}return\"noscript\"===o&&g(/<\\/noscript/i,e.innerHTML)||\"noembed\"===o&&g(/<\\/noembed/i,e.innerHTML)?(Ke(e),!0):(!Ee||e.firstElementChild||e.content&&e.content.firstElementChild||!g(/</g,e.textContent)||(p(n.removed,{element:e.cloneNode()}),e.innerHTML?e.innerHTML=b(e.innerHTML,/</g,\"<\"):e.innerHTML=b(e.textContent,/</g,\"<\")),Oe&&3===e.nodeType&&(t=e.textContent,t=b(t,ce,\" \"),t=b(t,fe,\" \"),e.textContent!==t&&(p(n.removed,{element:e.cloneNode()}),e.textContent=t)),Je(\"afterSanitizeElements\",e,null),!1)},et=function(e,t,n){if(Ne&&(\"id\"===t||\"name\"===t)&&(n in u||n in qe))return!1;if(Le&&g(de,t));else if(Te&&g(pe,t));else{if(!Fe[t]||De[t])return!1;if(Ge[t]);else if(g(ye,b(n,he,\"\")));else if(\"src\"!==t&&\"xlink:href\"!==t&&\"href\"!==t||\"script\"===e||0!==v(n,\"data:\")||!Pe[e])if(Se&&!g(me,b(n,he,\"\")));else if(n)return!1}return!0},tt=function(e){var t=void 0,r=void 0,i=void 0,a=void 0,u=void 0;Je(\"beforeSanitizeAttributes\",e,null);var l=e.attributes;if(l){var s={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:Fe};for(u=l.length;u--;){var p=t=l[u],y=p.name,v=p.namespaceURI;if(r=F(t.value),i=h(y),s.attrName=i,s.attrValue=r,s.keepAttr=!0,s.forceKeepAttr=void 0,Je(\"uponSanitizeAttribute\",e,s),r=s.attrValue,!s.forceKeepAttr){if(\"name\"===i&&\"IMG\"===e.nodeName&&l.id)a=l.id,l=m(l,[]),Ve(\"id\",e),Ve(y,e),c(l,a)>u&&e.setAttribute(\"id\",a.value);else{if(\"INPUT\"===e.nodeName&&\"type\"===i&&\"file\"===r&&s.keepAttr&&(Fe[i]||!De[i]))continue;\"id\"===y&&e.setAttribute(y,\"\"),Ve(y,e)}if(s.keepAttr)if(Ee&&g(/\\/>/i,r))Ve(y,e);else if(g(/svg|math/i,e.namespaceURI)&&g(A(\"</(\"+f(o(je),\"|\")+\")\",\"i\"),r))Ve(y,e);else{Oe&&(r=b(r,ce,\" \"),r=b(r,fe,\" \"));var D=e.nodeName.toLowerCase();if(et(D,i,r))try{v?e.setAttributeNS(v,y,r):e.setAttribute(y,r),d(n.removed)}catch(e){}}}}Je(\"afterSanitizeAttributes\",e,null)}},nt=function e(t){var n=void 0,o=Ye(t);for(Je(\"beforeSanitizeShadowDOM\",t,null);n=o.nextNode();)Je(\"uponSanitizeShadowNode\",n,null),Ze(n)||(n.content instanceof l&&e(n.content),tt(n));Je(\"afterSanitizeShadowDOM\",t,null)};return n.sanitize=function(e,o){var r=void 0,a=void 0,u=void 0,s=void 0,c=void 0;if(e||(e=\"\\x3c!--\\x3e\"),\"string\"!=typeof e&&!Xe(e)){if(\"function\"!=typeof e.toString)throw D(\"toString is not a function\");if(\"string\"!=typeof(e=e.toString()))throw D(\"dirty is not a string, aborting\")}if(!n.isSupported){if(\"object\"===I(t.toStaticHTML)||\"function\"==typeof t.toStaticHTML){if(\"string\"==typeof e)return t.toStaticHTML(e);if(Xe(e))return t.toStaticHTML(e.outerHTML)}return e}if(xe||Ue(o),n.removed=[],\"string\"==typeof e&&(He=!1),He);else if(e instanceof L)1===(a=(r=Qe(\"\\x3c!--\\x3e\")).ownerDocument.importNode(e,!0)).nodeType&&\"BODY\"===a.nodeName||\"HTML\"===a.nodeName?r=a:r.appendChild(a);else{if(!we&&!Oe&&!ke&&Ce&&-1===e.indexOf(\"<\"))return te?te.createHTML(e):e;if(!(r=Qe(e)))return we?null:ne}r&&_e&&Ke(r.firstChild);for(var f=Ye(He?e:r);u=f.nextNode();)3===u.nodeType&&u===s||Ze(u)||(u.content instanceof l&&nt(u.content),tt(u),s=u);if(s=null,He)return e;if(we){if(Me)for(c=ue.call(r.ownerDocument);r.firstChild;)c.appendChild(r.firstChild);else c=r;return Re&&(c=le.call(i,c,!0)),c}var d=ke?r.outerHTML:r.innerHTML;return Oe&&(d=b(d,ce,\" \"),d=b(d,fe,\" \")),te&&Ce?te.createHTML(d):d},n.setConfig=function(e){Ue(e),xe=!0},n.clearConfig=function(){Ie=null,xe=!1},n.isValidAttribute=function(e,t,n){Ie||Ue({});var o=h(e),r=h(t);return et(o,r,n)},n.addHook=function(e,t){\"function\"==typeof t&&(se[e]=se[e]||[],p(se[e],t))},n.removeHook=function(e){se[e]&&d(se[e])},n.removeHooks=function(e){se[e]&&(se[e]=[])},n.removeAllHooks=function(){se={}},n}()}()},function(t,n){t.exports=e},function(e,t,n){\"use strict\";n.r(t);var o=n(1),r=n.n(o),i=n(0),a=n.n(i);function u(e){return(u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,\"value\"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){return!t||\"object\"!==u(t)&&\"function\"!=typeof t?function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e):t}function p(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var h=r.a.import(\"modules/clipboard\"),y=r.a.import(\"delta\"),b=function(e){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(h,e);var t,n,o,i,u=(t=h,function(){var e,n=m(t);if(p()){var o=m(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return d(this,e)});function h(e,t){var n;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,h),(n=u.call(this,e,t)).allowed=t.allowed,n.keepSelection=t.keepSelection,n.substituteBlockElements=t.substituteBlockElements,n.magicPasteLinks=t.magicPasteLinks,n.hooks=t.hooks,n}return n=h,(o=[{key:\"onPaste\",value:function(e){e.preventDefault();var t,n,o,i,u,l,s,c,f,d=this.quill.getSelection(),p=e.clipboardData.getData(\"text/plain\"),m=e.clipboardData.getData(\"text/html\"),h=(new y).retain(d.index).delete(d.length),b=this.getDOMPurifyOptions(),v=p;m?(\"function\"==typeof(null===(t=this.hooks)||void 0===t?void 0:t.beforeSanitizeElements)&&a.a.addHook(\"beforeSanitizeElements\",this.hooks.beforeSanitizeElements),\"function\"==typeof(null===(n=this.hooks)||void 0===n?void 0:n.uponSanitizeElement)&&a.a.addHook(\"uponSanitizeElement\",this.hooks.uponSanitizeElement),\"function\"==typeof(null===(o=this.hooks)||void 0===o?void 0:o.afterSanitizeElements)&&a.a.addHook(\"afterSanitizeElements\",this.hooks.afterSanitizeElements),\"function\"==typeof(null===(i=this.hooks)||void 0===i?void 0:i.beforeSanitizeAttributes)&&a.a.addHook(\"beforeSanitizeAttributes\",this.hooks.beforeSanitizeAttributes),\"function\"==typeof(null===(u=this.hooks)||void 0===u?void 0:u.uponSanitizeAttribute)&&a.a.addHook(\"uponSanitizeAttribute\",this.hooks.uponSanitizeAttribute),\"function\"==typeof(null===(l=this.hooks)||void 0===l?void 0:l.afterSanitizeAttributes)&&a.a.addHook(\"afterSanitizeAttributes\",this.hooks.afterSanitizeAttributes),\"function\"==typeof(null===(s=this.hooks)||void 0===s?void 0:s.beforeSanitizeShadowDOM)&&a.a.addHook(\"beforeSanitizeShadowDOM\",this.hooks.beforeSanitizeShadowDOM),\"function\"==typeof(null===(c=this.hooks)||void 0===c?void 0:c.uponSanitizeShadowNode)&&a.a.addHook(\"uponSanitizeShadowNode\",this.hooks.uponSanitizeShadowNode),\"function\"==typeof(null===(f=this.hooks)||void 0===f?void 0:f.afterSanitizeShadowDOM)&&a.a.addHook(\"afterSanitizeShadowDOM\",this.hooks.afterSanitizeShadowDOM),v=!1!==this.substituteBlockElements?(m=this.substitute(m,b)).innerHTML:a.a.sanitize(m,b),h=h.concat(this.convert(v))):b.ALLOWED_TAGS.includes(\"a\")&&this.isURL(p)&&d.length>0&&this.magicPasteLinks?(v=this.quill.getText(d.index,d.length),h=h.insert(v,{link:p})):h=h.insert(v),this.quill.updateContents(h,r.a.sources.USER),h=this.convert(v),this.keepSelection?this.quill.setSelection(d.index,h.length(),r.a.sources.SILENT):this.quill.setSelection(d.index+h.length(),r.a.sources.SILENT),this.quill.scrollIntoView(),a.a.removeAllHooks()}},{key:\"getDOMPurifyOptions\",value:function(){var e,t,n={};if((null===(e=this.allowed)||void 0===e?void 0:e.tags)&&(n.ALLOWED_TAGS=this.allowed.tags),(null===(t=this.allowed)||void 0===t?void 0:t.attributes)&&(n.ALLOWED_ATTR=this.allowed.attributes),void 0===n.ALLOWED_TAGS||void 0===n.ALLOWED_ATTR){var o,r=!1;void 0===n.ALLOWED_TAGS&&(r=!0,n.ALLOWED_TAGS=[\"p\",\"br\",\"span\"]);var i=!1;void 0===n.ALLOWED_ATTR&&(i=!0,n.ALLOWED_ATTR=[\"class\"]);var a=this.quill.getModule(\"toolbar\");null==a||null===(o=a.controls)||void 0===o||o.forEach((function(e){switch(e[0]){case\"bold\":r&&(n.ALLOWED_TAGS.push(\"b\"),n.ALLOWED_TAGS.push(\"strong\"));break;case\"italic\":r&&n.ALLOWED_TAGS.push(\"i\");break;case\"underline\":r&&n.ALLOWED_TAGS.push(\"u\");break;case\"strike\":r&&n.ALLOWED_TAGS.push(\"s\");break;case\"color\":case\"background\":i&&n.ALLOWED_ATTR.push(\"style\");break;case\"script\":r&&(\"super\"===e[1].value?n.ALLOWED_TAGS.push(\"sup\"):\"sub\"===e[1].value&&n.ALLOWED_TAGS.push(\"sub\"));break;case\"header\":if(r){var t=function(e){\"1\"===e?n.ALLOWED_TAGS.push(\"h1\"):\"2\"===e?n.ALLOWED_TAGS.push(\"h2\"):\"3\"===e?n.ALLOWED_TAGS.push(\"h3\"):\"4\"===e?n.ALLOWED_TAGS.push(\"h4\"):\"5\"===e?n.ALLOWED_TAGS.push(\"h5\"):\"6\"===e&&n.ALLOWED_TAGS.push(\"h6\")};e[1].value?t(e[1].value):e[1].options&&e[1].options.length&&[].forEach.call(e[1].options,(function(e){e.value&&t(e.value)}))}break;case\"code-block\":r&&n.ALLOWED_TAGS.push(\"pre\"),i&&n.ALLOWED_ATTR.push(\"spellcheck\");break;case\"list\":r&&(\"ordered\"===e[1].value?n.ALLOWED_TAGS.push(\"ol\"):\"bullet\"===e[1].value&&n.ALLOWED_TAGS.push(\"ul\"),n.ALLOWED_TAGS.push(\"li\"));break;case\"link\":r&&n.ALLOWED_TAGS.push(\"a\"),i&&(n.ALLOWED_ATTR.push(\"href\"),n.ALLOWED_ATTR.push(\"target\"),n.ALLOWED_ATTR.push(\"rel\"));break;case\"image\":r&&n.ALLOWED_TAGS.push(\"img\"),i&&(n.ALLOWED_ATTR.push(\"src\"),n.ALLOWED_ATTR.push(\"title\"),n.ALLOWED_ATTR.push(\"alt\"));break;case\"video\":r&&n.ALLOWED_TAGS.push(\"iframe\"),i&&(n.ALLOWED_ATTR.push(\"frameborder\"),n.ALLOWED_ATTR.push(\"allowfullscreen\"),n.ALLOWED_ATTR.push(\"src\"));break;case\"blockquote\":r&&n.ALLOWED_TAGS.push(e[0])}}))}return n}},{key:\"substitute\",value:function(e,t){var n,o=[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],r=[\"p\",\"div\",\"section\",\"article\",\"fieldset\",\"address\",\"aside\",\"blockquote\",\"canvas\",\"dl\",\"figcaption\",\"figure\",\"footer\",\"form\",\"header\",\"main\",\"nav\",\"noscript\",\"ol\",\"pre\",\"table\",\"tfoot\",\"ul\",\"video\"],i=[\"li\",\"dt\",\"dd\",\"hr\"];a.a.addHook(\"uponSanitizeElement\",(function(e,a,u){for(var l=0;!n&&l<3;)t.ALLOWED_TAGS.includes(r[l])&&(n=r[l]),++l;if(n&&e.tagName&&!t.ALLOWED_TAGS.includes(e.tagName.toLowerCase())){var s=e.tagName.toLowerCase();o.includes(s)?e.innerHTML=\"<\".concat(n,\"><b>\").concat(e.innerHTML,\"</b></\").concat(n,\">\"):r.includes(s)?e.innerHTML=\"<\".concat(n,\">\").concat(e.innerHTML,\"</\").concat(n,\">\"):i.includes(s)&&(e.innerHTML=\"\".concat(e.innerHTML,\"<br>\"))}})),e=a.a.sanitize(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t,{},{RETURN_DOM:!0,WHOLE_DOCUMENT:!1})),a.a.removeAllHooks();var u,c=0,f=document.createElement(\"body\");return function e(t,n){for(n(t,c),t=c<=1?t.firstChild:void 0;t;)++c,e(t,n),t=t.nextSibling;--c}(e,(function(e,t){if(1===t)if(e.tagName&&r.includes(e.tagName.toLowerCase())){u&&(u=void 0);var o=document.createElement(e.tagName.toLowerCase());o.innerHTML=e.innerHTML,f.appendChild(o)}else if(void 0===u&&(u=document.createElement(n),f.appendChild(u)),e.tagName){var i=document.createElement(e.tagName.toLowerCase());e.innerHTML&&(i.innerHTML=e.innerHTML),u.appendChild(i)}else{var a=document.createTextNode(e.textContent);u.appendChild(a)}})),f}},{key:\"isURL\",value:function(e){return!!/^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+\\x2D?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+\\x2D?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i.test(e)}}])&&c(n.prototype,o),i&&c(n,i),h}(h);r.a.register(\"modules/clipboard\",b,!0),t.default=b}])}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar emailRegex = /^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/;\n\nvar _default = (0, _common.regex)('email', emailRegex);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(length) {\n return (0, _common.withParams)({\n type: 'minLength',\n min: length\n }, function (value) {\n return !(0, _common.req)(value) || (0, _common.len)(value) >= length;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('alpha', /^[a-zA-Z]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(validator) {\n return (0, _common.withParams)({\n type: 'not'\n }, function (value, vm) {\n return !(0, _common.req)(value) || !validator.call(this, value, vm);\n });\n};\n\nexports.default = _default;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.ready)?_c('b-form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onSubmit($event)}}},[_c('b-container',[_c('b-row',[_c('b-col',{staticClass:\"pt-3 pb-2\"},[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"outline-primary\"},on:{\"click\":_vm.exit}},[_c('b-icon-arrow-left')],1),_c('strong',[_vm._v(_vm._s(_vm.pageHeading))])],1)],1),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"state\":_vm.validateField('message'),\"invalid-feedback\":_vm.invalidFeedback('message')}},[_c('si-editor',{ref:\"editor\",attrs:{\"value\":_vm.message},on:{\"input\":_vm.onInputEditor}})],1)],1)],1),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('div',{staticClass:\"bg-white border rounded px-2\"},[_c('b-row',[_c('b-col',{staticClass:\"\\n d-flex\\n justify-content-between\\n align-items-center\\n form-option-container\\n \"},[_c('span',[_vm._v(\"Add to your post\")]),(!_vm.hasImage)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\"},on:{\"click\":_vm.onAddImage}},[_c('b-icon-image'),_vm._v(\" Add Image\")],1):_vm._e(),(_vm.hasImage)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-danger\"},on:{\"click\":_vm.onRemoveImage}},[_c('b-icon-image'),_vm._v(\" Remove Image\")],1):_vm._e()],1)],1),(_vm.hasImage && _vm.canUploadImage)?_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"invalid-feedback\":_vm.invalidFeedback('imageFile'),\"state\":_vm.validateField('imageFile')}},[_c('b-form-file',{attrs:{\"accept\":\".jpg, .jpeg, .png, .gif\",\"placeholder\":\"Choose a file or drop it here...\",\"drop-placeholder\":\"Drop file here...\"},on:{\"input\":_vm.onInputImageFile},model:{value:(_vm.$v.imageFile.$model),callback:function ($$v) {_vm.$set(_vm.$v.imageFile, \"$model\", $$v)},expression:\"$v.imageFile.$model\"}})],1)],1)],1):_vm._e(),(_vm.hasImage && !_vm.canUploadImage)?_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"invalid-feedback\":_vm.invalidFeedback('imageUrl'),\"state\":_vm.validateField('imageUrl')}},[_c('b-form-input',{attrs:{\"placeholder\":\"Paste URL of image...\"},on:{\"input\":_vm.onInputImageUrl},model:{value:(_vm.$v.imageUrl.$model),callback:function ($$v) {_vm.$set(_vm.$v.imageUrl, \"$model\", $$v)},expression:\"$v.imageUrl.$model\"}})],1)],1)],1):_vm._e(),(_vm.hasImage)?_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('b-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isImagePreviewLoading),expression:\"isImagePreviewLoading\"}],attrs:{\"icon\":\"three-dots\",\"animation\":\"cylon\"}}),_c('b-img',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n _vm.imageData || (_vm.imageUrl.length && !_vm.hasImagePreviewError)\n ),expression:\"\\n imageData || (imageUrl.length && !hasImagePreviewError)\\n \"}],attrs:{\"src\":_vm.imageData || _vm.imageUrl,\"fluid\":\"\",\"rounded\":\"\",\"alt\":\"\"}})],1)],1):_vm._e()],1)])],1),(_vm.canAssignCategory)?_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('div',{staticClass:\"bg-white border rounded px-2 py-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center\"},[_vm._v(\"Category\")]),_c('b-col',[_c('b-form-select',{attrs:{\"options\":_vm.postCategoryOptions,\"size\":\"sm\"},model:{value:(_vm.categoryId),callback:function ($$v) {_vm.categoryId=$$v},expression:\"categoryId\"}})],1)],1)],1)])],1):_vm._e(),(_vm.canSendAlert)?_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('div',{staticClass:\"\\n bg-white\\n border\\n rounded\\n px-2\\n d-flex\\n justify-content-between\\n align-items-center\\n form-option-container\\n \"},[_c('span',[_vm._v(\"Send text alert to \"),_c('strong',[_vm._v(\"all\")]),_vm._v(\" members\")]),_c('b-form-checkbox',{attrs:{\"name\":\"check-button\",\"switch\":\"\",\"size\":\"lg\",\"disabled\":!_vm.isSendAlertEnabled},on:{\"input\":_vm.onInputSendAlert},model:{value:(_vm.hasAlert),callback:function ($$v) {_vm.hasAlert=$$v},expression:\"hasAlert\"}})],1)])],1):_vm._e(),_c('b-row',[_c('b-col',{staticClass:\"pr-1\",attrs:{\"cols\":\"4\"}},[_c('b-button',{attrs:{\"block\":\"\",\"variant\":\"outline-secondary\"},on:{\"click\":_vm.exit}},[_vm._v(\"Cancel\")])],1),_c('b-col',{staticClass:\"pl-1\",attrs:{\"cols\":\"8\"}},[_c('b-button',{attrs:{\"block\":\"\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":!_vm.canSubmit}},[_vm._v(_vm._s(_vm.submitButtonLabel))])],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { helpers } from \"vuelidate/lib/validators\";\r\n\r\nconst imagePreview = function () {\r\n return !this.hasImagePreviewError;\r\n}\r\n\r\nconst imageSize = function () {\r\n return !this.imageFile || (this.imageFile && this.imageFile.size <= 2097152);\r\n};\r\n\r\nconst imageType = function () {\r\n return (\r\n !this.imageFile ||\r\n (this.imageFile && /\\.(gif|jpe?g|png)$/i.test(this.imageFile.name))\r\n );\r\n};\r\n\r\nconst imageUrl = function (value) {\r\n let notRequiredAndEmpty = !helpers.req(value);\r\n let isModIsEditingByMod = this.isMod && this.isEditing && this.byMod;\r\n let validUrl = value.toLowerCase().startsWith(\"http\");\r\n return notRequiredAndEmpty || isModIsEditingByMod || validUrl;\r\n};\r\n\r\nconst postContent = function (value) {\r\n const hasMessage = value.length > 0 && value !== \"<p><br></p>\";\r\n const hasText = !!this.$refs.editor && this.$refs.editor.getText().trim().length > 0;\r\n const hasImage = this.imageData.length > 0 || this.imageUrl.length > 0;\r\n return (hasMessage || hasText) || hasImage;\r\n};\r\n\r\nexport { imagePreview, imageSize, imageType, imageUrl, postContent };\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bg-white\"},[_c('div',{ref:\"editor\",staticClass:\"editor\",domProps:{\"innerHTML\":_vm._s(_vm.html)},on:{\"drop\":function($event){$event.preventDefault();},\"dragstart\":function($event){$event.preventDefault();}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"bg-white\">\r\n <div\r\n class=\"editor\"\r\n ref=\"editor\"\r\n @drop.prevent\r\n @dragstart.prevent\r\n v-html=\"html\"\r\n ></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Quill from \"quill\";\r\nimport AutoLinks from \"quill-auto-links\";\r\nimport \"quill-paste-smart\";\r\nimport \"quill/dist/quill.snow.css\";\r\n\r\nQuill.register(\"modules/autoLinks\", AutoLinks, true);\r\n\r\nexport default {\r\n name: \"Editor\",\r\n props: {\r\n value: {\r\n type: String,\r\n default: \"<p><br></p>\",\r\n },\r\n },\r\n data: () => ({\r\n editor: null,\r\n html: \"\",\r\n }),\r\n methods: {\r\n getText() {\r\n return this.editor.getText();\r\n },\r\n onTextChange() {\r\n this.$emit(\"input\", this.editor.root.innerHTML.toString());\r\n },\r\n },\r\n created() {\r\n this.html = this.value;\r\n },\r\n mounted() {\r\n // https://github.com/SmallImprovements/quill-auto-links/blob/master/src/index.js\r\n // TODO: auto-link case insensitive HTTP vs http - really?\r\n // TODO: auto-link after Enter key\r\n const options = {\r\n modules: {\r\n autoLinks: true,\r\n keyboard: {\r\n bindings: {\r\n tab: {\r\n key: 9, // Tab\r\n handler: () => true,\r\n },\r\n },\r\n },\r\n toolbar: [\"bold\", \"italic\", \"underline\", \"strike\", \"link\", \"clean\"],\r\n },\r\n placeholder: \"Start typing your message here...\",\r\n theme: \"snow\",\r\n };\r\n this.editor = new Quill(this.$refs.editor, options);\r\n this.editor.on(\"text-change\", this.onTextChange);\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import \"~@/assets/scss/quill.custom\";\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=2b26848f&\"\nimport script from \"./Editor.vue?vue&type=script&lang=js&\"\nexport * from \"./Editor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <b-form v-if=\"ready\" @submit.stop.prevent=\"onSubmit\">\r\n <b-container>\r\n <b-row>\r\n <b-col class=\"pt-3 pb-2\">\r\n <b-button variant=\"outline-primary\" class=\"mr-2\" @click=\"exit\"\r\n ><b-icon-arrow-left\r\n /></b-button>\r\n <strong>{{ pageHeading }}</strong>\r\n </b-col>\r\n </b-row>\r\n <b-row class=\"mb-2\">\r\n <b-col>\r\n <b-form-group\r\n class=\"mb-0\"\r\n :state=\"validateField('message')\"\r\n :invalid-feedback=\"invalidFeedback('message')\"\r\n >\r\n <si-editor :value=\"message\" @input=\"onInputEditor\" ref=\"editor\" />\r\n </b-form-group>\r\n </b-col>\r\n </b-row>\r\n <b-row class=\"mb-2\">\r\n <b-col>\r\n <div class=\"bg-white border rounded px-2\">\r\n <b-row>\r\n <b-col\r\n class=\"\r\n d-flex\r\n justify-content-between\r\n align-items-center\r\n form-option-container\r\n \"\r\n >\r\n <span>Add to your post</span>\r\n <b-button\r\n v-if=\"!hasImage\"\r\n size=\"sm\"\r\n variant=\"outline-primary\"\r\n @click=\"onAddImage\"\r\n ><b-icon-image /> Add Image</b-button\r\n >\r\n <b-button\r\n v-if=\"hasImage\"\r\n size=\"sm\"\r\n variant=\"outline-danger\"\r\n @click=\"onRemoveImage\"\r\n ><b-icon-image /> Remove Image</b-button\r\n >\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"hasImage && canUploadImage\" class=\"mb-2\">\r\n <b-col>\r\n <b-form-group\r\n class=\"mb-0\"\r\n :invalid-feedback=\"invalidFeedback('imageFile')\"\r\n :state=\"validateField('imageFile')\"\r\n >\r\n <b-form-file\r\n v-model=\"$v.imageFile.$model\"\r\n accept=\".jpg, .jpeg, .png, .gif\"\r\n placeholder=\"Choose a file or drop it here...\"\r\n drop-placeholder=\"Drop file here...\"\r\n @input=\"onInputImageFile\"\r\n ></b-form-file>\r\n </b-form-group>\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"hasImage && !canUploadImage\" class=\"mb-2\">\r\n <b-col>\r\n <b-form-group\r\n class=\"mb-0\"\r\n :invalid-feedback=\"invalidFeedback('imageUrl')\"\r\n :state=\"validateField('imageUrl')\"\r\n >\r\n <b-form-input\r\n v-model=\"$v.imageUrl.$model\"\r\n placeholder=\"Paste URL of image...\"\r\n @input=\"onInputImageUrl\"\r\n ></b-form-input>\r\n </b-form-group>\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"hasImage\" class=\"mb-2\">\r\n <b-col cols=\"12\" md=\"6\">\r\n <b-icon\r\n icon=\"three-dots\"\r\n animation=\"cylon\"\r\n v-show=\"isImagePreviewLoading\"\r\n />\r\n <b-img\r\n v-show=\"\r\n imageData || (imageUrl.length && !hasImagePreviewError)\r\n \"\r\n :src=\"imageData || imageUrl\"\r\n fluid\r\n rounded\r\n alt=\"\"\r\n ></b-img>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"canAssignCategory\" class=\"mb-2\">\r\n <b-col>\r\n <div class=\"bg-white border rounded px-2 py-2\">\r\n <b-row>\r\n <b-col class=\"d-flex align-items-center\">Category</b-col>\r\n <b-col\r\n ><b-form-select\r\n v-model=\"categoryId\"\r\n :options=\"postCategoryOptions\"\r\n size=\"sm\"\r\n /></b-col>\r\n </b-row>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"canSendAlert\" class=\"mb-2\">\r\n <b-col>\r\n <div\r\n class=\"\r\n bg-white\r\n border\r\n rounded\r\n px-2\r\n d-flex\r\n justify-content-between\r\n align-items-center\r\n form-option-container\r\n \"\r\n >\r\n <span>Send text alert to <strong>all</strong> members</span>\r\n <b-form-checkbox\r\n v-model=\"hasAlert\"\r\n name=\"check-button\"\r\n switch\r\n size=\"lg\"\r\n :disabled=\"!isSendAlertEnabled\"\r\n @input=\"onInputSendAlert\"\r\n />\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <b-row>\r\n <b-col cols=\"4\" class=\"pr-1\">\r\n <b-button block variant=\"outline-secondary\" @click=\"exit\"\r\n >Cancel</b-button\r\n >\r\n </b-col>\r\n <b-col cols=\"8\" class=\"pl-1\">\r\n <b-button\r\n block\r\n variant=\"primary\"\r\n type=\"submit\"\r\n :disabled=\"!canSubmit\"\r\n >{{ submitButtonLabel }}</b-button\r\n >\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </b-form>\r\n</template>\r\n\r\n<script>\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { http } from \"@/http\";\r\nimport {\r\n imagePreview,\r\n imageSize,\r\n imageType,\r\n imageUrl,\r\n postContent,\r\n} from \"@/validators\";\r\nimport Editor from \"@/components/message-board/Editor\";\r\nimport errorHandler from \"@/services/errorHandler\";\r\nimport errorToast from \"@/services/errorToast\";\r\nimport successToast from \"@/services/successToast\";\r\nimport postCategory from \"@/services/postCategory\";\r\n\r\nlet _from = null;\r\n\r\nexport default {\r\n name: \"MessageEdit\",\r\n components: {\r\n \"si-editor\": Editor,\r\n },\r\n mixins: [validationMixin],\r\n validations: {\r\n message: {\r\n postContent,\r\n },\r\n imageFile: {\r\n imageSize,\r\n imageType,\r\n },\r\n imageUrl: {\r\n imagePreview,\r\n imageUrl,\r\n },\r\n },\r\n data: () => ({\r\n byMod: false,\r\n categoryId: \"0\",\r\n message: \"\",\r\n hasImage: false,\r\n hasImagePreviewError: false,\r\n hasAlert: false,\r\n image: {\r\n name: \"\",\r\n size: 0,\r\n type: \"\",\r\n },\r\n imageData: \"\",\r\n imageFile: null,\r\n imageUrl: \"\",\r\n isImagePreviewLoading: false,\r\n isMod: false,\r\n ready: false,\r\n }),\r\n computed: {\r\n canAssignCategory() {\r\n return (\r\n (this.isMod && this.byMod && this.isEditing) ||\r\n (this.isMod && !this.isEditing)\r\n );\r\n },\r\n canSendAlert() {\r\n return (\r\n (this.isMod && this.byMod && this.isEditing) ||\r\n (this.isMod && !this.isEditing)\r\n );\r\n },\r\n canSubmit() {\r\n return !this.$v.$invalid && !this.isImagePreviewLoading;\r\n },\r\n canUploadImage() {\r\n return (\r\n (this.isMod && this.byMod && this.isEditing) ||\r\n (this.isMod && !this.isEditing)\r\n );\r\n },\r\n isSendAlertEnabled() {\r\n return this.hasMessage || this.hasText;\r\n },\r\n hasMessage() {\r\n return this.message.length > 0 && this.message !== \"<p><br></p>\";\r\n },\r\n hasText() {\r\n return (\r\n !!this.$refs.editor && this.$refs.editor.getText().trim().length > 0\r\n );\r\n },\r\n id() {\r\n return this.$route.params.id || 0;\r\n },\r\n isEditing() {\r\n return !!this.id;\r\n },\r\n page() {\r\n return this.$store.getters.page;\r\n },\r\n pageHeading() {\r\n return `${this.isEditing ? \"Update\" : \"New\"} Message`;\r\n },\r\n postCategoryOptions() {\r\n return postCategory.categoryOptions();\r\n },\r\n submitButtonLabel() {\r\n return this.isEditing ? \"Update\" : \"Post\";\r\n },\r\n },\r\n methods: {\r\n confirmRemoveImage() {\r\n return this.$bvModal\r\n .msgBoxConfirm(\"Are you sure you want to remove the image?\", {\r\n cancelTitle: \"No\",\r\n centered: true,\r\n okTitle: \"Yes\",\r\n okVariant: \"danger\",\r\n title: \"Remove Image\",\r\n })\r\n .then((value) => value)\r\n .catch((err) => {\r\n console.error(err);\r\n return null;\r\n });\r\n },\r\n confirmSendAlert() {\r\n return this.$bvModal\r\n .msgBoxConfirm(\r\n \"Are you sure you want to send a text alert to ALL members?\",\r\n {\r\n cancelTitle: \"No\",\r\n centered: true,\r\n noCloseOnBackdrop: true,\r\n noCloseOnEsc: true,\r\n okTitle: \"Yes\",\r\n okVariant: \"primary\",\r\n title: \"Send Text Alert\",\r\n }\r\n )\r\n .then((value) => value)\r\n .catch((err) => {\r\n console.error(err);\r\n return null;\r\n });\r\n },\r\n exit() {\r\n if (!_from || !_from.name) {\r\n this.$router.push({ name: \"Home\" });\r\n return;\r\n }\r\n this.$router.back();\r\n },\r\n fetchPost() {\r\n this.$store.dispatch(\"showBusy\");\r\n this.$store\r\n .dispatch(\"fetchPost\", { id: this.id })\r\n .then((post) => {\r\n this.byMod = post.byMod;\r\n this.hasImage = !!post.imageUrl.length;\r\n this.message = post.message;\r\n this.imageUrl = post.imageUrl;\r\n this.categoryId = post.categoryId.toString();\r\n this.ready = true;\r\n this.$store.dispatch(\"hideBusy\");\r\n })\r\n .catch((err) => {\r\n errorHandler(this, err);\r\n this.$store.dispatch(\"hideBusy\");\r\n this.exit();\r\n });\r\n },\r\n invalidFeedback(name) {\r\n if (name === \"message\") {\r\n if (!this.$v.message.postContent)\r\n return \"Please enter a message and/or add an image.\";\r\n }\r\n if (name === \"imageFile\") {\r\n if (!this.$v.imageFile.imageSize) return \"Maximum file size is 2 MB.\";\r\n if (!this.$v.imageFile.imageType)\r\n return \"Supported image formats include GIF, JPG, and PNG.\";\r\n }\r\n if (name === \"imageUrl\") {\r\n if (!this.$v.imageUrl.imageUrl || !this.$v.imageUrl.imagePreview) {\r\n return \"Please enter a valid image URL.\";\r\n }\r\n }\r\n return \"\";\r\n },\r\n onAddImage() {\r\n this.hasImage = true;\r\n },\r\n onInputEditor($event) {\r\n this.message = $event;\r\n this.$v.message.$touch();\r\n },\r\n onInputImageFile() {\r\n if (!this.imageFile) return;\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this.imageData = reader.result;\r\n this.image = {\r\n name: this.imageFile.name,\r\n size: this.imageFile.size,\r\n type: this.imageFile.type,\r\n };\r\n this.$v.message.$touch();\r\n };\r\n reader.readAsDataURL(this.imageFile);\r\n },\r\n onInputImageUrl() {\r\n if (!this.imageUrl.length) {\r\n this.hasImagePreviewError = false;\r\n this.isImagePreviewLoading = false;\r\n this.$v.message.$touch();\r\n return;\r\n }\r\n this.isImagePreviewLoading = true;\r\n const image = new Image();\r\n image.onload = () => {\r\n this.hasImagePreviewError = false;\r\n this.isImagePreviewLoading = false;\r\n this.$v.message.$touch();\r\n };\r\n image.onerror = () => {\r\n this.hasImagePreviewError = true;\r\n this.isImagePreviewLoading = false;\r\n this.$v.message.$touch();\r\n };\r\n image.src = this.imageUrl;\r\n },\r\n onInputSendAlert($event) {\r\n // when mod chooses to send a text alert, automatically\r\n // change post category to Shark Alerts\r\n if ($event) {\r\n const sharkAlertsCategoryId = \"2\";\r\n this.categoryId = sharkAlertsCategoryId;\r\n }\r\n },\r\n async onRemoveImage() {\r\n if (this.imageData.length || this.imageUrl.length) {\r\n let result = await this.confirmRemoveImage();\r\n if (!result) return;\r\n }\r\n this.image = {\r\n name: \"\",\r\n size: 0,\r\n type: \"\",\r\n };\r\n this.imageData = \"\";\r\n this.imageUrl = \"\";\r\n this.imageFile = null;\r\n this.hasImage = false;\r\n this.hasImagePreviewError = false;\r\n this.$v.message.$touch();\r\n },\r\n async onSubmit() {\r\n this.$v.$touch();\r\n if (this.$v.$invalid) return;\r\n\r\n if (this.hasAlert && this.isSendAlertEnabled) {\r\n let result = await this.confirmSendAlert();\r\n if (!result) {\r\n this.hasAlert = false;\r\n }\r\n }\r\n\r\n let post = {\r\n message: {\r\n html: this.message,\r\n text: this.$refs.editor.getText(),\r\n },\r\n image: {\r\n url: this.imageUrl,\r\n },\r\n categoryId: this.categoryId,\r\n };\r\n\r\n if (this.imageData) {\r\n Object.assign(post.image, {\r\n data: this.imageData,\r\n name: this.image.name,\r\n size: this.image.size,\r\n type: this.image.type,\r\n });\r\n }\r\n\r\n this.$store.dispatch(\"showBusy\");\r\n\r\n if (this.isEditing) {\r\n post.id = this.id;\r\n this.$store\r\n .dispatch(\"updatePost\", post)\r\n .then(() => {\r\n this.$store.dispatch(\"hideBusy\");\r\n if (this.hasAlert && this.isSendAlertEnabled) {\r\n this.send(post.message.text);\r\n }\r\n this.exit();\r\n })\r\n .catch((err) => {\r\n errorHandler(this, err);\r\n this.$store.dispatch(\"hideBusy\");\r\n });\r\n } else {\r\n this.$store\r\n .dispatch(\"insertPost\", post)\r\n .then(() => {\r\n this.$store.dispatch(\"hideBusy\");\r\n if (this.hasAlert && this.isSendAlertEnabled) {\r\n this.send(post.message.text);\r\n }\r\n this.$store.dispatch(\"setPage\", 1);\r\n this.$router.push({ name: \"Home\" });\r\n })\r\n .catch((err) => {\r\n errorHandler(this, err);\r\n this.$store.dispatch(\"hideBusy\");\r\n });\r\n }\r\n },\r\n send(text) {\r\n let message = `${text}\\n**Not Investment Advice`;\r\n return http\r\n .post(\"/active-trader/alerts/send\", { text: message })\r\n .then(() => {\r\n successToast(this, \"Text alert sent!\");\r\n })\r\n .catch((err) => {\r\n errorToast(this, \"Text alert failed.\");\r\n console.error(err.message);\r\n throw err;\r\n });\r\n },\r\n validateField(name) {\r\n const { $dirty, $error } = this.$v[name];\r\n return $dirty ? !$error : null;\r\n },\r\n },\r\n mounted() {\r\n this.$store.dispatch(\"fetchMember\").then((member) => {\r\n this.isMod = member.isMod;\r\n });\r\n if (this.isEditing) {\r\n this.fetchPost();\r\n } else {\r\n this.ready = true;\r\n }\r\n },\r\n beforeRouteEnter(to, from, next) {\r\n _from = from;\r\n next();\r\n },\r\n beforeRouteUpdate(to, from, next) {\r\n next(false);\r\n },\r\n beforeDestroy() {\r\n this.$store.dispatch(\"hideBusy\");\r\n },\r\n};\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MessageEdit.vue?vue&type=template&id=4819b45f&\"\nimport script from \"./MessageEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./MessageEdit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar urlRegex = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\n\nvar _default = (0, _common.regex)('url', urlRegex);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _withParams.default;\n }\n});\nexports.regex = exports.ref = exports.len = exports.req = void 0;\n\nvar _withParams = _interopRequireDefault(require(\"../withParams\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { 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\nvar req = function req(value) {\n if (Array.isArray(value)) return !!value.length;\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value === false) {\n return true;\n }\n\n if (value instanceof Date) {\n return !isNaN(value.getTime());\n }\n\n if (_typeof(value) === 'object') {\n for (var _ in value) {\n return true;\n }\n\n return false;\n }\n\n return !!String(value).length;\n};\n\nexports.req = req;\n\nvar len = function len(value) {\n if (Array.isArray(value)) return value.length;\n\n if (_typeof(value) === 'object') {\n return Object.keys(value).length;\n }\n\n return String(value).length;\n};\n\nexports.len = len;\n\nvar ref = function ref(reference, vm, parentVm) {\n return typeof reference === 'function' ? reference.call(vm, parentVm) : parentVm[reference];\n};\n\nexports.ref = ref;\n\nvar regex = function regex(type, expr) {\n return (0, _withParams.default)({\n type: type\n }, function (value) {\n return !req(value) || expr.test(value);\n });\n};\n\nexports.regex = regex;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar withParams = process.env.BUILD === 'web' ? require('./withParamsBrowser').withParams : require('./params').withParams;\nvar _default = withParams;\nexports.default = _default;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.ready)?_c('div',[_c('b-container',[_c('b-row',{staticClass:\"mt-3 mb-2\"},[_c('b-col',{staticClass:\"mb-2 mb-sm-0 pr-sm-1\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('b-button',{attrs:{\"block\":\"\",\"variant\":\"primary\",\"to\":{ name: 'MessageAdd' }}},[_vm._v(\"Post a message\")])],1),_c('b-col',{staticClass:\"pl-sm-1\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('si-search-input')],1)],1),_c('b-row',[_c('b-col',[_c('si-post',{attrs:{\"keep-expanded\":true,\"post\":_vm.post},on:{\"destroy\":function($event){return _vm.onDelete($event)}}})],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"ready\">\r\n <b-container>\r\n <b-row class=\"mt-3 mb-2\">\r\n <b-col cols=\"12\" sm=\"6\" class=\"mb-2 mb-sm-0 pr-sm-1\">\r\n <b-button block variant=\"primary\" :to=\"{ name: 'MessageAdd' }\"\r\n >Post a message</b-button\r\n >\r\n </b-col>\r\n <b-col cols=\"12\" sm=\"6\" class=\"pl-sm-1\">\r\n <si-search-input />\r\n </b-col>\r\n </b-row>\r\n <b-row>\r\n <b-col>\r\n <si-post\r\n :keep-expanded=\"true\"\r\n :post=\"post\"\r\n @destroy=\"onDelete($event)\"\r\n />\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Post from \"@/components/message-board/Post\";\r\nimport SearchInput from \"@/components/message-board/SearchInput\";\r\nimport errorHandler from \"@/services/errorHandler\";\r\nimport { confirmPostDelete } from \"@/dialogs\";\r\n\r\nexport default {\r\n name: \"Message\",\r\n components: {\r\n \"si-post\": Post,\r\n \"si-search-input\": SearchInput,\r\n },\r\n data: () => ({\r\n post: null,\r\n ready: false,\r\n }),\r\n computed: {\r\n id() {\r\n return this.$route.params.id || 0;\r\n },\r\n },\r\n methods: {\r\n deletePost(id) {\r\n this.$store.dispatch(\"showBusy\");\r\n this.$store\r\n .dispatch(\"deletePost\", { id })\r\n .then(() => {\r\n this.exit();\r\n })\r\n .catch((err) => {\r\n errorHandler(this, err);\r\n this.exit();\r\n });\r\n },\r\n exit() {\r\n this.$router.push({ name: \"Home\" });\r\n },\r\n fetchPost() {\r\n this.$store.dispatch(\"showBusy\");\r\n this.$store\r\n .dispatch(\"fetchPost\", {\r\n id: this.id,\r\n mode: \"view\",\r\n })\r\n .then((post) => {\r\n this.post = post;\r\n this.ready = true;\r\n this.$store.dispatch(\"hideBusy\");\r\n })\r\n .catch((err) => {\r\n errorHandler(this, err);\r\n this.$store.dispatch(\"hideBusy\");\r\n this.exit();\r\n });\r\n },\r\n async onDelete(id) {\r\n let result = await confirmPostDelete(this);\r\n if (!result) return;\r\n this.deletePost(id);\r\n },\r\n },\r\n watch: {\r\n id() {\r\n this.fetchPost();\r\n },\r\n },\r\n mounted() {\r\n this.fetchPost();\r\n },\r\n beforeDestroy() {\r\n this.$store.dispatch(\"hideBusy\");\r\n },\r\n};\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Message.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Message.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Message.vue?vue&type=template&id=849e6170&\"\nimport script from \"./Message.vue?vue&type=script&lang=js&\"\nexport * from \"./Message.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ':';\n return (0, _common.withParams)({\n type: 'macAddress'\n }, function (value) {\n if (!(0, _common.req)(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n var parts = typeof separator === 'string' && separator !== '' ? value.split(separator) : value.length === 12 || value.length === 16 ? value.match(/.{2}/g) : null;\n return parts !== null && (parts.length === 6 || parts.length === 8) && parts.every(hexValid);\n });\n};\n\nexports.default = _default;\n\nvar hexValid = function hexValid(hex) {\n return hex.toLowerCase().match(/^[0-9a-f]{2}$/);\n};","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\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[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : 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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\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 return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\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 = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\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 }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && 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 (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.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\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && 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 } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.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\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.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 diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\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 = _parchment2.default.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(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.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 this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, 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 _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\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 if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\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\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\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\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\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 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\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 } else {\n return this.editor.getFormat(index.index, index.length);\n }\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 } else {\n return this.scroll.lines(index, length);\n }\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\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\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 _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\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 _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\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.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] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().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] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, 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/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\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 userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, 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 return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\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, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _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 }\n // Handle optional source\n source = source || _emitter4.default.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 = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.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 === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).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 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\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 if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\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(undefined, [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 this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\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\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 = 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\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.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 if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().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\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\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\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\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 _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\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 _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\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 _quillDelta2.default().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\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 _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().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 cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\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 return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('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 = 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 = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.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 });\n this.update(_emitter4.default.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 this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\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 _this3.update(_emitter4.default.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 if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\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 this.cursor.attach();\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\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 = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\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\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\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\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\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 rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\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 }, {\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;\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 if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\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 = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\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 var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\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 offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, 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 var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\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 _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\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\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\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 on IE11+Travis+SauceLabs (but not local VMs)\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] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\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 this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_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;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\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}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\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 &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, 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\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\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 } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\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\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\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 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, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\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\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(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 return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.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 _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\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 (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.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', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.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', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.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', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction 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 nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.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 _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 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._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\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(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', 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}(_inline2.default);\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\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\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 }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\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 AttributorStore.prototype.values = function () {\n var _this = this;\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 return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction 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}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\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 StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\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 return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (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\nvar Theme = 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/' + 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\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_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 _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\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(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\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(_parchment2.default.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 _text2.default) {\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(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\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 if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\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 this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\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 = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\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.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: 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 this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\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 LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // 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 while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\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 remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\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 EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\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 TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\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 }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\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 TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\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 TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\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} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\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);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\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 = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\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 (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\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 (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\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 (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\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 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 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 (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\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.<string>} 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.<string>} 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(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n 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 [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\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,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n 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 */\nfunction diff_cleanupMerge(diffs) {\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 switch (diffs[pointer][0]) {\n case DIFF_INSERT:\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 // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n 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 suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else 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: A<ins>BA</ins>C -> <ins>AB</ins>AC\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);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\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 * @api 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 {Mixed} 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 * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api 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 * @api 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 * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\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 * @api 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 {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\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 {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\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 {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api 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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 * @api 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]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\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// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\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/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\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] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n 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 Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\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 var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\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 if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p> </o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\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 if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\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 return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\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(Bold.__proto__ || Object.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}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (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\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\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 if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _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}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\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}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _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 _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\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 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 }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.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}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\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 _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\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 FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(prop) {\n return (0, _common.withParams)({\n type: 'requiredIf',\n prop: prop\n }, function (value, parentVm) {\n return (0, _common.ref)(prop, this, parentVm) ? (0, _common.req)(value) : true;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"alpha\", {\n enumerable: true,\n get: function get() {\n return _alpha.default;\n }\n});\nObject.defineProperty(exports, \"alphaNum\", {\n enumerable: true,\n get: function get() {\n return _alphaNum.default;\n }\n});\nObject.defineProperty(exports, \"numeric\", {\n enumerable: true,\n get: function get() {\n return _numeric.default;\n }\n});\nObject.defineProperty(exports, \"between\", {\n enumerable: true,\n get: function get() {\n return _between.default;\n }\n});\nObject.defineProperty(exports, \"email\", {\n enumerable: true,\n get: function get() {\n return _email.default;\n }\n});\nObject.defineProperty(exports, \"ipAddress\", {\n enumerable: true,\n get: function get() {\n return _ipAddress.default;\n }\n});\nObject.defineProperty(exports, \"macAddress\", {\n enumerable: true,\n get: function get() {\n return _macAddress.default;\n }\n});\nObject.defineProperty(exports, \"maxLength\", {\n enumerable: true,\n get: function get() {\n return _maxLength.default;\n }\n});\nObject.defineProperty(exports, \"minLength\", {\n enumerable: true,\n get: function get() {\n return _minLength.default;\n }\n});\nObject.defineProperty(exports, \"required\", {\n enumerable: true,\n get: function get() {\n return _required.default;\n }\n});\nObject.defineProperty(exports, \"requiredIf\", {\n enumerable: true,\n get: function get() {\n return _requiredIf.default;\n }\n});\nObject.defineProperty(exports, \"requiredUnless\", {\n enumerable: true,\n get: function get() {\n return _requiredUnless.default;\n }\n});\nObject.defineProperty(exports, \"sameAs\", {\n enumerable: true,\n get: function get() {\n return _sameAs.default;\n }\n});\nObject.defineProperty(exports, \"url\", {\n enumerable: true,\n get: function get() {\n return _url.default;\n }\n});\nObject.defineProperty(exports, \"or\", {\n enumerable: true,\n get: function get() {\n return _or.default;\n }\n});\nObject.defineProperty(exports, \"and\", {\n enumerable: true,\n get: function get() {\n return _and.default;\n }\n});\nObject.defineProperty(exports, \"not\", {\n enumerable: true,\n get: function get() {\n return _not.default;\n }\n});\nObject.defineProperty(exports, \"minValue\", {\n enumerable: true,\n get: function get() {\n return _minValue.default;\n }\n});\nObject.defineProperty(exports, \"maxValue\", {\n enumerable: true,\n get: function get() {\n return _maxValue.default;\n }\n});\nObject.defineProperty(exports, \"integer\", {\n enumerable: true,\n get: function get() {\n return _integer.default;\n }\n});\nObject.defineProperty(exports, \"decimal\", {\n enumerable: true,\n get: function get() {\n return _decimal.default;\n }\n});\nexports.helpers = void 0;\n\nvar _alpha = _interopRequireDefault(require(\"./alpha\"));\n\nvar _alphaNum = _interopRequireDefault(require(\"./alphaNum\"));\n\nvar _numeric = _interopRequireDefault(require(\"./numeric\"));\n\nvar _between = _interopRequireDefault(require(\"./between\"));\n\nvar _email = _interopRequireDefault(require(\"./email\"));\n\nvar _ipAddress = _interopRequireDefault(require(\"./ipAddress\"));\n\nvar _macAddress = _interopRequireDefault(require(\"./macAddress\"));\n\nvar _maxLength = _interopRequireDefault(require(\"./maxLength\"));\n\nvar _minLength = _interopRequireDefault(require(\"./minLength\"));\n\nvar _required = _interopRequireDefault(require(\"./required\"));\n\nvar _requiredIf = _interopRequireDefault(require(\"./requiredIf\"));\n\nvar _requiredUnless = _interopRequireDefault(require(\"./requiredUnless\"));\n\nvar _sameAs = _interopRequireDefault(require(\"./sameAs\"));\n\nvar _url = _interopRequireDefault(require(\"./url\"));\n\nvar _or = _interopRequireDefault(require(\"./or\"));\n\nvar _and = _interopRequireDefault(require(\"./and\"));\n\nvar _not = _interopRequireDefault(require(\"./not\"));\n\nvar _minValue = _interopRequireDefault(require(\"./minValue\"));\n\nvar _maxValue = _interopRequireDefault(require(\"./maxValue\"));\n\nvar _integer = _interopRequireDefault(require(\"./integer\"));\n\nvar _decimal = _interopRequireDefault(require(\"./decimal\"));\n\nvar helpers = _interopRequireWildcard(require(\"./common\"));\n\nexports.helpers = helpers;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(equalTo) {\n return (0, _common.withParams)({\n type: 'sameAs',\n eq: equalTo\n }, function (value, parentVm) {\n return value === (0, _common.ref)(equalTo, this, parentVm);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('decimal', /^[-]?\\d*(\\.\\d+)?$/);\n\nexports.default = _default;","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.withParams)({\n type: 'ipAddress'\n}, function (value) {\n if (!(0, _common.req)(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n var nibbles = value.split('.');\n return nibbles.length === 4 && nibbles.every(nibbleValid);\n});\n\nexports.default = _default;\n\nvar nibbleValid = function nibbleValid(nibble) {\n if (nibble.length > 3 || nibble.length === 0) {\n return false;\n }\n\n if (nibble[0] === '0' && nibble !== '0') {\n return false;\n }\n\n if (!nibble.match(/^\\d+$/)) {\n return false;\n }\n\n var numeric = +nibble | 0;\n return numeric >= 0 && numeric <= 255;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_OPTIONS = {\n paste: true,\n type: true\n};\n\nvar REGEXP_GLOBAL = /https?:\\/\\/[^\\s]+/g;\nvar REGEXP_WITH_PRECEDING_WS = /(?:\\s|^)(https?:\\/\\/[^\\s]+)/;\n\nvar sliceFromLastWhitespace = function sliceFromLastWhitespace(str) {\n var whitespaceI = str.lastIndexOf(' ');\n var sliceI = whitespaceI === -1 ? 0 : whitespaceI + 1;\n return str.slice(sliceI);\n};\nfunction registerTypeListener(quill) {\n quill.keyboard.addBinding({\n collapsed: true,\n key: ' ',\n prefix: REGEXP_WITH_PRECEDING_WS,\n handler: function handler(range, context) {\n var url = sliceFromLastWhitespace(context.prefix);\n var retain = range.index - url.length;\n var ops = retain ? [{ retain: retain }] : [];\n ops.push({ 'delete': url.length }, { insert: url, attributes: { link: url } });\n quill.updateContents({ ops: ops });\n return true;\n }\n });\n}\n\nfunction registerPasteListener(quill) {\n quill.clipboard.addMatcher(Node.TEXT_NODE, function (node, delta) {\n if (typeof node.data !== 'string') {\n return;\n }\n var matches = node.data.match(REGEXP_GLOBAL);\n if (matches && matches.length > 0) {\n var ops = [];\n var str = node.data;\n matches.forEach(function (match) {\n var split = str.split(match);\n var beforeLink = split.shift();\n ops.push({ insert: beforeLink });\n ops.push({ insert: match, attributes: { link: match } });\n str = split.join(match);\n });\n ops.push({ insert: str });\n delta.ops = ops;\n }\n\n return delta;\n });\n}\n\nvar AutoLinks = function AutoLinks(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, AutoLinks);\n\n var opts = _extends({}, DEFAULT_OPTIONS, options);\n\n if (opts.type) {\n registerTypeListener(quill);\n }\n if (opts.paste) {\n registerPasteListener(quill);\n }\n};\n\nexports.default = AutoLinks;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withParams = void 0;\n\nfunction _typeof(obj) { 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\nvar root = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nvar fakeWithParams = function fakeWithParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return maybeValidator;\n }\n\n return paramsOrClosure(function () {});\n};\n\nvar withParams = root.vuelidate ? root.vuelidate.withParams : fakeWithParams;\nexports.withParams = withParams;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n return (0, _common.withParams)({\n type: 'or'\n }, function () {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.length > 0 && validators.reduce(function (valid, fn) {\n return valid || fn.apply(_this, args);\n }, false);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.withParams)({\n type: 'required'\n}, function (value) {\n if (typeof value === 'string') {\n return (0, _common.req)(value.trim());\n }\n\n return (0, _common.req)(value);\n});\n\nexports.default = _default;","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(prop) {\n return (0, _common.withParams)({\n type: 'requiredUnless',\n prop: prop\n }, function (value, parentVm) {\n return !(0, _common.ref)(prop, this, parentVm) ? (0, _common.req)(value) : true;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(min) {\n return (0, _common.withParams)({\n type: 'minValue',\n min: min\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +value >= +min;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(min, max) {\n return (0, _common.withParams)({\n type: 'between',\n min: min,\n max: max\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +min <= +value && +max >= +value;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.patchChildren = patchChildren;\nexports.h = h;\n\nfunction isUndef(v) {\n return v === null || v === undefined;\n}\n\nfunction isDef(v) {\n return v !== null && v !== undefined;\n}\n\nfunction sameVval(oldVval, vval) {\n return vval.tag === oldVval.tag && vval.key === oldVval.key;\n}\n\nfunction createVm(vval) {\n var Vm = vval.tag;\n vval.vm = new Vm({\n data: vval.args\n });\n}\n\nfunction updateVval(vval) {\n var keys = Object.keys(vval.args);\n\n for (var i = 0; i < keys.length; i++) {\n keys.forEach(function (k) {\n vval.vm[k] = vval.args[k];\n });\n }\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) map[key] = i;\n }\n\n return map;\n}\n\nfunction updateChildren(oldCh, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVval = oldCh[0];\n var oldEndVval = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVval = newCh[0];\n var newEndVval = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVval)) {\n oldStartVval = oldCh[++oldStartIdx];\n } else if (isUndef(oldEndVval)) {\n oldEndVval = oldCh[--oldEndIdx];\n } else if (sameVval(oldStartVval, newStartVval)) {\n patchVval(oldStartVval, newStartVval);\n oldStartVval = oldCh[++oldStartIdx];\n newStartVval = newCh[++newStartIdx];\n } else if (sameVval(oldEndVval, newEndVval)) {\n patchVval(oldEndVval, newEndVval);\n oldEndVval = oldCh[--oldEndIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldStartVval, newEndVval)) {\n patchVval(oldStartVval, newEndVval);\n oldStartVval = oldCh[++oldStartIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldEndVval, newStartVval)) {\n patchVval(oldEndVval, newStartVval);\n oldEndVval = oldCh[--oldEndIdx];\n newStartVval = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVval.key) ? oldKeyToIdx[newStartVval.key] : null;\n\n if (isUndef(idxInOld)) {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n } else {\n elmToMove = oldCh[idxInOld];\n\n if (sameVval(elmToMove, newStartVval)) {\n patchVval(elmToMove, newStartVval);\n oldCh[idxInOld] = undefined;\n newStartVval = newCh[++newStartIdx];\n } else {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n }\n }\n }\n }\n\n if (oldStartIdx > oldEndIdx) {\n addVvals(newCh, newStartIdx, newEndIdx);\n } else if (newStartIdx > newEndIdx) {\n removeVvals(oldCh, oldStartIdx, oldEndIdx);\n }\n}\n\nfunction addVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n createVm(vvals[startIdx]);\n }\n}\n\nfunction removeVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vvals[startIdx];\n\n if (isDef(ch)) {\n ch.vm.$destroy();\n ch.vm = null;\n }\n }\n}\n\nfunction patchVval(oldVval, vval) {\n if (oldVval === vval) {\n return;\n }\n\n vval.vm = oldVval.vm;\n updateVval(vval);\n}\n\nfunction patchChildren(oldCh, ch) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) updateChildren(oldCh, ch);\n } else if (isDef(ch)) {\n addVvals(ch, 0, ch.length - 1);\n } else if (isDef(oldCh)) {\n removeVvals(oldCh, 0, oldCh.length - 1);\n }\n}\n\nfunction h(tag, key, args) {\n return {\n tag: tag,\n key: key,\n args: args\n };\n}"],"sourceRoot":""}