{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/markdown-it/lib/common/utils.js","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/uc.micro/categories/P/regex.js","webpack:///./node_modules/markdown-it/lib/ruler.js","webpack:///./node_modules/markdown-it/lib/token.js","webpack:///./app/javascript/controllers/application_controller.js","webpack:///./node_modules/markdown-it/lib/common/entities.js","webpack:///./node_modules/mdurl/index.js","webpack:///./node_modules/uc.micro/properties/Any/regex.js","webpack:///./node_modules/uc.micro/categories/Cc/regex.js","webpack:///./node_modules/uc.micro/categories/Z/regex.js","webpack:///./node_modules/markdown-it/lib/common/html_re.js","webpack:///./node_modules/markdown-it/lib/rules_inline/strikethrough.js","webpack:///./node_modules/markdown-it/lib/rules_inline/emphasis.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/cleave.js/dist/cleave-esm.js","webpack:///./node_modules/markdown-it/index.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/admin/input_format_controller.js","webpack:///./app/javascript/controllers/body_controller.js","webpack:///./node_modules/markdown-it/lib/index.js","webpack:///./node_modules/mdurl/encode.js","webpack:///./node_modules/mdurl/decode.js","webpack:///./node_modules/mdurl/format.js","webpack:///./node_modules/mdurl/parse.js","webpack:///./node_modules/uc.micro/index.js","webpack:///./node_modules/uc.micro/categories/Cf/regex.js","webpack:///./node_modules/markdown-it/lib/helpers/index.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_label.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_destination.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_title.js","webpack:///./node_modules/markdown-it/lib/renderer.js","webpack:///./node_modules/markdown-it/lib/parser_core.js","webpack:///./node_modules/markdown-it/lib/rules_core/normalize.js","webpack:///./node_modules/markdown-it/lib/rules_core/block.js","webpack:///./node_modules/markdown-it/lib/rules_core/inline.js","webpack:///./node_modules/markdown-it/lib/rules_core/linkify.js","webpack:///./node_modules/markdown-it/lib/rules_core/replacements.js","webpack:///./node_modules/markdown-it/lib/rules_core/smartquotes.js","webpack:///./node_modules/markdown-it/lib/rules_core/text_join.js","webpack:///./node_modules/markdown-it/lib/rules_core/state_core.js","webpack:///./node_modules/markdown-it/lib/parser_block.js","webpack:///./node_modules/markdown-it/lib/rules_block/table.js","webpack:///./node_modules/markdown-it/lib/rules_block/code.js","webpack:///./node_modules/markdown-it/lib/rules_block/fence.js","webpack:///./node_modules/markdown-it/lib/rules_block/blockquote.js","webpack:///./node_modules/markdown-it/lib/rules_block/hr.js","webpack:///./node_modules/markdown-it/lib/rules_block/list.js","webpack:///./node_modules/markdown-it/lib/rules_block/reference.js","webpack:///./node_modules/markdown-it/lib/rules_block/html_block.js","webpack:///./node_modules/markdown-it/lib/common/html_blocks.js","webpack:///./node_modules/markdown-it/lib/rules_block/heading.js","webpack:///./node_modules/markdown-it/lib/rules_block/lheading.js","webpack:///./node_modules/markdown-it/lib/rules_block/paragraph.js","webpack:///./node_modules/markdown-it/lib/rules_block/state_block.js","webpack:///./node_modules/markdown-it/lib/parser_inline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text.js","webpack:///./node_modules/markdown-it/lib/rules_inline/linkify.js","webpack:///./node_modules/markdown-it/lib/rules_inline/newline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/escape.js","webpack:///./node_modules/markdown-it/lib/rules_inline/backticks.js","webpack:///./node_modules/markdown-it/lib/rules_inline/link.js","webpack:///./node_modules/markdown-it/lib/rules_inline/image.js","webpack:///./node_modules/markdown-it/lib/rules_inline/autolink.js","webpack:///./node_modules/markdown-it/lib/rules_inline/html_inline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/entity.js","webpack:///./node_modules/markdown-it/lib/rules_inline/balance_pairs.js","webpack:///./node_modules/markdown-it/lib/rules_inline/fragments_join.js","webpack:///./node_modules/markdown-it/lib/rules_inline/state_inline.js","webpack:///./node_modules/linkify-it/index.js","webpack:///./node_modules/linkify-it/lib/re.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/markdown-it/lib/presets/default.js","webpack:///./node_modules/markdown-it/lib/presets/zero.js","webpack:///./node_modules/markdown-it/lib/presets/commonmark.js","webpack:///./app/javascript/controllers/slide_controller.js","webpack:///./app/javascript/controllers/slides_controller.js","webpack:///./app/javascript/controllers/stream_controller.js","webpack:///./app/javascript/images sync nonrecursive jpe","webpack:///./app/javascript/images/booklet_1200.jpg","webpack:///./app/javascript/images/testbild.png","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/request.js/src/fetch_response.js","webpack:///./node_modules/@rails/request.js/src/request_interceptor.js","webpack:///./node_modules/@rails/request.js/src/lib/utils.js","webpack:///./node_modules/@rails/request.js/src/fetch_request.js","webpack:///./app/javascript/controllers/admin/attachment_form_controller.js","webpack:///./node_modules/turndown/lib/turndown.browser.es.js","webpack:///./app/javascript/vendor/quill/small.js","webpack:///./app/javascript/controllers/mde-editor_controller.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","_typeof","obj","iterator","constructor","_hasOwnProperty","has","isValidEntityCode","fromCodePoint","surrogate1","surrogate2","String","fromCharCode","UNESCAPE_MD_RE","UNESCAPE_ALL_RE","RegExp","source","DIGITAL_ENTITY_TEST_RE","entities","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","ch","REGEXP_ESCAPE_RE","UNICODE_PUNCT_RE","lib","mdurl","ucmicro","assign","sources","Array","arguments","forEach","TypeError","keys","isString","toString","_class","unescapeMd","str","indexOf","replace","unescapeAll","match","escaped","entity","code","charCodeAt","test","toLowerCase","parseInt","replaceEntityPattern","escapeHtml","arrayReplaceAt","pos","newElements","concat","isSpace","isWhiteSpace","isMdAsciiPunct","isPunctChar","escapeRE","normalizeReference","trim","toUpperCase","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","handleEvent","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","immediatePropagationStopped","extendEvent","_i","_a","bindings","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","eventListener","stop","values","reduce","listeners","map","fetchEventListenerForBinding","handleError","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","join","descriptorPattern","parseEventTarget","eventTargetName","Action","element","descriptor","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","split","options","eventNameSuffix","getAttribute","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","_extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","defaultValue","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","k","a","j","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","_char","capitalize","charAt","dasherize","_char2","DataMap","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","v","op","pop","Application","documentElement","router","readyState","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","propertiesForValueDefinitionPair","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","parseValueTypeConstant","number","string","array","JSON","parse","parseFloat","writeJSON","stringify","Controller","blessings","Function","webpackPolyfill","paths","children","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","arg","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","isBuffer","len","checked","copy","buffer","val","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","arr","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","x","list","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","dst","factory","_typeof2","self","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","query","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","extendStatics","ParchmentError","tags","types","ANY","TEXT_NODE","LEVEL","BLOCK","INLINE","HTMLElement","names","TYPE","DATA_KEY","input","BlotClass","bubble","blot","parentNode","Definitions","Definition","blotName","attrName","keyName","className","tagNames","tag","diff","equal","NULL_CHARACTER","Delta","insert","text","newOp","retain","lastOp","unshift","splice","chop","predicate","partition","passed","failed","initial","changeLength","elem","iter","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","thisOp","otherOp","strings","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","writable","getProperty","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","props","Constructor","protoProps","staticProps","_get","desc","parent","_extend2","_interopRequireDefault","_quillDelta2","_parchment2","_break2","_inline2","_text2","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","_Parchment$Embed","domNode","formats","BLOCK_ATTRIBUTE","format","def","endsWith","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","tail","ref","remove","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_slicedToArray","_n","_d","_e","_s","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","_defineProperty","debug","Quill","container","html","innerHTML","classList","__quill","root","addContainer","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","init","on","events","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","range","lastRange","modify","update","contents","convert","setContents","placeholder","readOnly","disable","level","imports","path","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","_this4","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","width","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","themeConfig","config","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","args","emit","_map","_map2","_map3","_map4","version","_Parchment$Inline","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","log","_len2","_key2","_ref","handler","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","quill","levels","_console","namespace","newLevel","pSlice","objectKeys","isArguments","deepEqual","expected","opts","Date","getTime","isUndefinedOrNull","ka","kb","objEquiv","attributeBit","ATTRIBUTE","item","canAdd","Code","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","prev","optimize","removeChild","unwrap","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","image","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","_toConsumableArray","arr2","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","_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","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","_native2","removeAllRanges","addRange","blur","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","proto","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","keyChild","valueChild","entryChild","attrs","symbols","symbol","allPropertyNames","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_newlineIndex","getLines","observer","SHORTKEY","_quill2","navigator","platform","Keyboard","_Module","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","normalize","which","keyCode","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","preventDefault","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","_inline","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","select","buildPicker","style","display","togglePicker","escape","option","tabIndex","selectItem","id","buildItem","selected","buildLabel","buildOptions","close","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","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","stack","changeDelta","undoDelta","timestamp","now","delay","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","readAsDataURL","click","video","_Tooltip","boundsContainer","save","cancel","preview","linkRange","restoreFocus","LinkedList","append","cur","curNode","callback","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","ScrollBlot","records","mark","markParent","previousSibling","grandChild","InlineBlot","obj1","obj2","prop","isEqual","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","execCommand","DIFF_DELETE","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","ceil","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","fix_emoji","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","pointer","count_delete","count_insert","text_delete","text_insert","changes","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","Events","EE","fn","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","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","deltaEndsWith","fontStyle","computeStyle","italic","fontWeight","bold","applyFormat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","paste","pair","_pair","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","marginTop","marginBottom","offsetTop","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_quill$selection$getR","prompt","addButton","groups","group","control","addSelect","clean","direction","link","_picker","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","render","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","__webpack_amd_options__","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","Ruler","__rules__","__cache__","__find__","__compile__","chains","rule","alt","altName","chain","at","opt","before","beforeName","ruleName","afterName","ignoreInvalid","idx","enableOnly","getRules","chainName","Token","nesting","markup","meta","hidden","attrIndex","attrPush","attrData","attrSet","attrGet","attrJoin","encode","decode","open_tag","close_tag","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","postProcess","state","delimiters","startDelim","endDelim","loneMarkers","marker","tokenize","silent","scanned","scanDelims","open","can_open","can_close","curr","tokens_meta","isStrong","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","param","CustomEvent","fire","params","initCustomEvent","bubbles","cancelable","stopEverything","stopPropagation","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","ajax","response","responseText","getResponseHeader","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","location","dataType","accept","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","host","toArray","serializeElement","additionalParam","inputs","disabled","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","pushState","requestAnimationFrame","visit","clearCache","setProgressBarDelay","copyObject","defer","throttle","dispatch","u","uuid","random","Location","absoluteURL","hash","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","abort","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","onabort","destroy","progress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","firstChild","opacity","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollToPosition","scrollTo","updatePosition","pageXOffset","pageYOffset","scrollPositionChanged","SnapshotCache","snapshots","touch","put","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","_t9","clickBubbled","clickCaptured","view","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","commonjsGlobal","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","signBeforePrefix","tailPrefix","delimiter","owner","groupStyle","thousand","delimiterRE","lakh","wan","none","getRawValue","partSign","partSignAndPrefix","partInteger","partDecimal","NumeralFormatter_1","DateFormatter","datePattern","dateMin","dateMax","date","blocks","initBlocks","getISOFormatDate","addLeadingZero","getBlocks","getValidatedDate","sub0","getFixedDateString","day","month","year","dayIndex","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","getFixedDate","getRangeFixedDate","previous","current","addLeadingZeroForYear","isLeapYear","fullYearMode","DateFormatter_1","TimeFormatter","timePattern","timeFormat","time","getISOFormatTime","getTimeFormatOptions","maxHourFirstDigit","maxHours","maxMinutesFirstDigit","maxMinutes","getValidatedTime","timeFormatOptions","getFixedTimeString","second","minute","hour","secondIndex","minuteIndex","hourIndex","secondStartIndex","minuteStartIndex","hourStartIndex","getFixedTime","TimeFormatter_1","PhoneFormatter","formatter","setFormatter","phoneNumber","validated","iMax","inputDigit","PhoneFormatter_1","CreditCardDetector","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb15","jcb","maestro","visa","mir","unionPay","general","getStrictBlocks","getInfo","strictMode","matchedBlocks","CreditCardDetector_1","Util_1","noop","strip","getPostDelimiter","matchedDelimiter","getDelimiterREByDelimiter","getNextCursorPosition","prevPos","getPositionOffset","oldRawValue","newRawValue","lengthOffset","stripDelimiters","letter","headStr","getMaxLength","getPrefixStrippedValue","prevResult","noImmediatePrefix","prevValue","getFirstDiffIndex","getFormattedValue","blocksLength","delimiterLazyShow","multipleDelimiters","currentDelimiter","fixPrefixCursor","appendix","setSelectionRange","checkFullSelection","ex","doc","getActiveElement","createTextRange","shadowRoot","isAndroid","isAndroidBackspaceKeydown","lastInputValue","currentInputValue","DefaultProperties_1","creditCard","creditCardStrictMode","creditCardType","onCreditCardTypeChanged","phone","phoneRegionCode","phoneFormatter","timeFormatter","dateFormatter","numeral","swapHiddenInput","numericOnly","uppercase","lowercase","rawValueTrimPrefix","copyDelimiter","initValue","delimiterLength","maxLength","backspace","onValueChanged","Cleave","hasMultipleElements","DefaultProperties","pps","Util","isBackward","onChangeListener","onChange","onKeyDownListener","onKeyDown","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initSwapHiddenInput","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","onInput","inputFormatter","elementSwapHidden","numeralFormatter","AsYouTypeFormatter","charCode","inputType","postDelimiter","postDelimiterBackspace","copyClipboardData","inputValue","textToCopy","clipboardData","postDelimiterAfter","updateValueState","updateCreditCardPropsByValue","creditCardInfo","endPos","selectionEnd","callOnValueChanged","rawValue","setPhoneRegionCode","setRawValue","Cleave_1","channels","require","webpackEmptyContext","req","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","webpackContext","webpackContextResolve","cleave","datePatternValue","timePatternValue","delimiterValue","delimitersValue","blocksValue","clickHandler","URL","origin","utils","helpers","ParserCore","ParserBlock","ParserInline","LinkifyIt","punycode","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","hostname","toASCII","er","normalizeLinkText","toUnicode","defaultChars","MarkdownIt","presetName","inline","core","renderer","linkify","configure","presets","components","rules","ruler","rules2","ruler2","missed","use","plugin","env","State","process","parseInline","inlineMode","renderInline","encodeCache","keepEscaped","nextCode","getEncodeCache","componentChars","decodeCache","getDecodeCache","seq","b1","b2","b3","b4","chr","slashes","auth","port","pathname","search","Url","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","hostlessProtocol","slashedProtocol","slashesDenoteHost","lowerProto","hec","simplePath","exec","atSign","hostEnd","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","qm","Any","Cc","Cf","Z","parseLinkLabel","parseLinkDestination","parseLinkTitle","disableNested","labelEnd","posMax","oldPos","md","skipToken","ok","default_rules","code_inline","slf","renderAttrs","code_block","fence","highlighted","tmpAttrs","tmpToken","langName","langAttrs","langPrefix","renderInlineAsText","renderToken","hardbreak","xhtmlOut","softbreak","breaks","html_block","html_inline","nextToken","needLf","_rules","Core","NEWLINES_RE","NULL_RE","tok","isLinkClose","currentToken","ln","lastPos","htmlLinkLevel","fullUrl","urlText","links","blockTokens","pretest","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","tm","replaceFn","replace_scoped","inlineTokens","inside_autolink","replace_rare","blkIdx","typographer","QUOTE_TEST_RE","QUOTE_RE","replaceAt","process_inlines","thisLevel","lastChar","nextChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","canOpen","canClose","isSingle","openQuote","closeQuote","OUTER","single","quotes","StateCore","startLine","endLine","prevLine","hasEmptyLines","maxNesting","skipEmptyLines","sCount","blkIndent","tight","isEmpty","outTokens","lineMax","bMarks","tShift","eMarks","escapedSplit","isEscaped","lineText","nextLine","columns","columnCount","aligns","tableLines","tbodyLines","oldParentType","terminate","terminatorRules","firstCh","secondCh","parentType","mem","haveEndMarker","skipChars","skipSpaces","adjustTab","lastLineEmpty","oldBMarks","oldBSCount","oldIndent","oldSCount","oldTShift","spaceAfterMarker","isOutdented","oldLineMax","bsCount","cnt","skipBulletListMarker","skipOrderedListMarker","contentStart","indentAfterMarker","isOrdered","itemLines","listLines","listTokIdx","markerCharCode","markerValue","oldListIndent","oldTight","posAfterMarker","prevEmptyEnd","isTerminatingParagraph","listIndent","markTightParagraphs","_endLine","destEndPos","destEndLineNo","title","references","block_names","HTML_SEQUENCES","skipSpacesBack","skipCharsBack","StateBlock","indent_found","ddIndent","begin","keepLastLF","lineIndent","queue","lineStart","_rules2","pending","pushPending","isTerminatorChar","SCHEME_RE","linkLevel","matchAtStart","pmax","ws","ESCAPED","ch1","ch2","origStr","escapedStr","matchStart","matchEnd","openerLength","closerLength","backticksScanned","backticks","labelStart","parseReference","EMAIL_RE","AUTOLINK_RE","lc","isLetter","DIGITAL_RE","NAMED_RE","processDelimiters","closerIdx","openerIdx","closer","opener","minOpenerIdx","newMinOpenerIdx","isOddMatch","lastJump","openersBottom","headerIdx","lastTokenIdx","jumps","StateInline","pendingLevel","_prev_delimiters","token_meta","canSplitWord","count","left_flanking","right_flanking","isFunction","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","validate","http","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","compile","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","aliases","schemaError","__compiled__","__schemas__","compiled","isRegExp","createValidator","alias","slist","schema_test","src_ZPCc","schema_search","schema_at_start","__index__","__text_cache__","resetScanCache","Match","__last_index__","__schema__","raw","createMatch","schemas","acc","ml","me","tld_pos","testSchemaAt","keepOld","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","freeExports","freeModule","freeGlobal","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","w","baseMinusT","inputLength","bias","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","matchMedia","activeValue","hasFullscreenTarget","fullscreen","fullscreenTarget","urlValue","headers","active","keydownHandler","slideTargets","nextIndex","toggleSlide","slideController","slide","currentTarget","lazySizes","lazysizes","lazySizesCfg","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","requestIdleCallback","regPicture","loadEvents","regClassCache","hasClass","ele","cls","addClass","removeClass","reg","addRemoveLoadEvents","dom","triggerEvent","noBubbles","noCancelable","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","getCSS","getWidth","_lazysizesWidth","rAF","firstFns","secondFns","fns","run","runFns","running","waiting","rafBatch","_lsFlush","rAFIt","simple","lastTime","gDelay","rICTimeout","idleCallback","isPriority","debounce","func","wait","later","loader","regImg","regIframe","supportScroll","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isBodyHidden","isNestedVisible","elemExpand","outerRect","eLtop","eLbottom","eLleft","eLright","offsetParent","checkElements","eLlen","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","clientWidth","_defEx","eLvW","innerWidth","elvH","innerHeight","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","handleSources","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","nodeName","resetPreloadingTimer","getElementsByTagName","isLoaded","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","persisted","loadingElements","img","checkElems","unveil","_aLSL","sizeElement","dataAttr","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","gW","_templateObject","_templateObject2","_getPrototypeOf","_superPropBase","_taggedTemplateLiteral","freeze","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","normalCompletion","didErr","_e3","minLen","_defineProperties","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","_assertThisInitialized","_wrapNativeSuper","_cache","Wrapper","_construct","Parent","sham","Proxy","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","wrapperForTheName","raise","errorConstructor","requestSubmit","submitter","DOMException","validateSubmitter","HTMLFormElement","FrameLoadingStyle","submittersByForm","candidate","vendor","SubmitEvent","FrameElement","_HTMLElement","delegateConstructor","sourceURLReloaded","loadingStyleChanged","completeChanged","sourceURLChanged","disabledChanged","lazy","eager","frameLoadingStyleFromString","ownerDocument","expandURL","locatable","baseURI","getAnchor","anchorMatch","getAction","baseURL","getPrefix","rootLocation","getRequestURL","FetchMethod","FetchResponse","succeeded","statusCode","redirected","contentType","activateScriptElement","createdScriptElement","getMetaContent","destinationElement","sourceElement","_step","_iterator","copyElementAttributes","composed","nextAnimationFrame","nextEventLoopTick","parseHTMLDocument","unindent","interpolate","_step2","_iterator2","markAsBusy","_len4","_key4","_elements","localName","clearBusyState","_len5","_key5","_i2","_elements2","waitForLoad","timeoutInMilliseconds","onComplete","getHistoryMethodForAction","replaceState","isAction","getVisitAction","_len6","_key6","getMetaElement","findClosestRecursively","assignedSlot","getRootNode","FormSubmissionState","FormEnctype","FetchRequest","URLSearchParams","abortController","AbortController","resolveRequestPromise","_value","defaultHeaders","_allowRequestToBeIntercepted","_receive","_perform","searchParams","entries","_callee","fetchOptions","_context","prepareRequest","allowRequestToBeIntercepted","receive","t0","willDelegateErrorHandling","requestErrored","_callee2","fetchResponse","_context2","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","_x","credentials","redirect","isSafe","signal","abortSignal","Accept","mimeType","_callee3","requestInterception","_context3","resume","_x2","AppearanceObserver","intersect","lastEntry","isIntersecting","elementAppearedInViewport","intersectionObserver","IntersectionObserver","unobserve","StreamMessage","fragment","_step3","_iterator3","_step4","streamElement","importNode","_iterator4","templateElement","inertScriptElement","importStreamElements","template","FormSubmission","formElement","mustRedirect","initialized","formData","buildFormData","mergeFormDataEntries","fetchRequest","_start","post","patch","fetchMethodFromString","formElementAction","urlEncoded","stringFormData","multipart","plain","formEnctypeFromString","_ref4","_ref5","_callee4","_FormSubmissionState","requesting","confirmationMessage","_context4","confirmMethod","perform","_FormSubmissionState2","stopping","stopped","cookieName","cookie","decodeURIComponent","getCookieValue","requestAcceptsTurboStreamResponse","acceptResponseType","_request","setSubmitsWith","formSubmission","formSubmissionStarted","clientError","serverError","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","resetSubmitterText","formSubmissionFinished","submitsWith","originalSubmitText","_len3","_key3","_element","_submitter","_step5","_iterator5","_ref7","File","_step6","_iterator6","queryPermanentElementsAll","_getPermanentElementById","_step7","permanentElementMap","_iterator7","permanentElements","currentPermanentElement","newPermanentElement","FormSubmitObserver","submitCaptured","submitBubbled","submissionDoesNotDismissDialog","_step8","_iterator8","getElementsByName","HTMLIFrameElement","submissionDoesNotTargetIFrame","willSubmitForm","formSubmitted","resolveRenderPromise","resolveInterceptionPromise","_renderSnapshot","_prepareToRenderSnapshot","_render","focusElement","_ref9","scrollRoot","_callee5","renderInterception","_context5","renderPromise","prepareToRenderSnapshot","renderElement","allowsImmediateRender","viewRenderedSnapshot","preloadOnLoadLinksForView","finishRenderingSnapshot","invalidate","reloadReason","_x3","reason","_callee6","_context6","prepareToRender","_x4","_callee7","_context7","_x5","finishRendering","FrameView","_View","_super2","LinkInterceptor","respondsToEventTarget","clickEvent","linkClicked","shouldInterceptLinkClick","originalEvent","linkClickIntercepted","willVisit","_event","LinkClickObserver","MouseEvent","composedPath","findLinkFromClickTarget","_step9","_iterator9","doesNotTargetIFrame","_location2","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","FormLinkClickObserver","linkInterceptor","willSubmitFormLinkToLocation","_step10","_iterator10","_ref11","turboFrame","turboAction","turboConfirm","submittedFormLinkToLocation","Bardo","_preservingPermanentElements","_this$permanentElemen","enteringBardo","replaceNewPermanentElementWithPlaceholder","replaceCurrentPermanentElementWithClone","replacePlaceholderWithPermanentElement","leavingBardo","createPlaceholderForPermanentElement","getPlaceholderById","placeholders","_callee8","bardo","_context8","enter","leave","_x6","_x7","_x8","willRender","resolvingFunctions","_preservingPermanentElements2","_callee9","_context9","preservingPermanentElements","_x9","connectedSnapshot","firstAutofocusableElement","elementIsFocusable","getPermanentElementMapForSnapshot","_Renderer","FrameRenderer","_render2","_super3","_callee10","_context10","loadFrameElement","scrollFrameIntoView","activateScriptElements","willRenderFrame","currentElement","newElement","autoscroll","firstElementChild","behavior","readScrollBehavior","_step11","_iterator11","newScriptElements","activatedScriptElement","destinationRange","selectNodeContents","deleteContents","frameElement","sourceRange","extractContents","_this12","animationDuration","_this13","HeadSnapshot","_Snapshot","_super4","_this14","detailsByOuterHTML","elementIsNoscript","elementWithoutNonce","details","elementType","elementIsTracked","_this15","getElementsMatchingTypeNotInSnapshot","matchedType","_this16","_ref13","_ref14","_this17","_this17$detailsByOute","_this18","elementIsMetaElementWithName","elementIsScript","elementIsStylesheet","TimingMetric","VisitState","PageSnapshot","_Snapshot2","_super5","headSnapshot","_this19","_step12","clonedElement","selectElements","clonedSelectElements","_iterator12","_step14","_ref16","_iterator14","selectedOptions","_step15","_iterator15","_option","_step13","_iterator13","cacheControlValue","fromDocument","_ref18","SystemStatusCode","visitCachedSnapshot","updateHistory","acceptsStreamResponse","_Object$assign2","snapshotHTML","isSamePage","locationWithActionIsSamePage","_render3","_requestFailedWithResponse","_requestSucceededWithResponse","visitStart","canceled","visitEnd","completed","hasPreloadedResponse","simulateRequest","startRequest","recordResponse","finishRequest","requestStart","isSuccessful","requestEnd","_this20","_this$response","responseHTML","_callee11","_context11","renderPage","getPreloadedSnapshot","_this21","_callee12","_context12","visitProposedToLocation","_this22","_callee13","_context13","_response","_callee14","_context14","contentTypeMismatch","_x10","_x11","_callee15","_context15","_x12","_x13","_error","networkFailure","forceReloaded","visitScrolledToSamePageLocation","metric","_this23","_callee16","_this24","_context16","_x14","PageStage","session","_this25","goToSamePageAnchor","showVisitProgressBarAfterDelay","timeoutFailure","_visit","hideVisitProgressBar","_formSubmission","showFormProgressBarAfterDelay","hideFormProgressBar","visitProgressBarTimeout","formProgressBarTimeout","CacheObserver","_this26","deprecatedSelector","removeTemporaryElements","_step16","_iterator16","temporaryElements","temporaryElementsWithDeprecation","FrameRedirector","formSubmitObserver","_location","shouldRedirect","findFrameElement","shouldSubmit","submissionIsNavigatable","elementIsNavigatable","_this27","turbo","_ref23","_callee17","_context17","_x15","additionalData","previousScrollRestoration","scrollRestoration","Navigator","_formSubmissionFailedWithResponse","_formSubmissionSucceededWithResponse","allowsVisitingLocationWithAction","_callee18","visitOptions","_context18","clearSnapshotCache","getActionForFormSubmission","proposeVisit","_x16","_x17","_callee19","_context19","_x18","_x19","currentAnchor","isRestorationToTop","oldURL","newURL","_ref24","PageObserver","_this28","stage","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","interactive","pageBecameInteractive","ScrollObserver","_this29","StreamMessageRenderer","_ref25","_step17","permanentElementsInDocument","_iterator17","_step18","permanentElementInDocument","_iterator18","elementInStream","getPermanentElementMapForFragment","StreamObserver","_this30","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","_receiveMessageResponse","streamSourceIsConnected","_callee20","_context20","_x20","receivedMessageFromStream","_Renderer2","_render4","_super6","_callee21","_context21","_document","_step19","_iterator19","scriptElements","replaceableElement","_document2","_Renderer3","PageRenderer","_assignNewBody","_mergeProvisionalElements","_copyNewHeadStylesheetElements","_replaceBody","_mergeHead","_render5","_prepareToRender","_super7","_callee22","_context22","_callee23","_context23","_callee24","mergedHeadElements","newStylesheetElements","_context24","mergeProvisionalElements","_callee26","_this31","_context26","_callee25","_context25","activateNewBody","currentHeadSnapshot","trackedElementSignature","newHeadSnapshot","_callee27","_iterator20","_step20","_context27","newHeadStylesheetElements","_step21","_iterator21","newHeadScriptElements","_callee28","newHeadElements","_iterator22","_step22","_iterator23","_step23","_element2","_context28","newHeadProvisionalElements","currentHeadProvisionalElements","isCurrentElementInElementList","elementList","_step24","_iterator24","_ref28","isEqualNode","_step25","_iterator25","_step26","_iterator26","adoptNode","_step27","_iterator27","newBodyScriptElements","_callee29","_context29","getStylesheetElementsNotInSnapshot","getScriptElementsNotInSnapshot","provisionalElements","HTMLBodyElement","_step28","_iterator28","_View2","PageView","_cacheSnapshot","_super8","_this32","snapshotCache","_callee30","_location3","cachedSnapshot","_args30","_context30","viewWillCacheSnapshot","fromElement","Preloader","_preloadURL","_this33","_step29","_iterator29","preloadURL","_callee31","_context31","_x21","Session","preloader","pageObserver","cacheObserver","linkClickObserver","scrollObserver","streamObserver","formLinkClickObserver","frameRedirector","streamMessageRenderer","drive","formMode","getElementById","connectStreamSource","disconnectStreamSource","updateRestorationData","extendURLWithDeprecatedProperties","notifyApplicationAfterVisitingSamePageLocation","submitForm","assumeControlOfScrollRestoration","relinquishControlOfScrollRestoration","renderStreamMessage","_ref30","_snapshot","_isPreview","notifyApplicationAfterFrameLoad","notifyApplicationAfterFrameRender","ev","HashChangeEvent","submitterIsNavigatable","withinFrame","deprecatedLocationPropertyDescriptors","Cache","setCacheControl","StreamActions","_this34","targetElements","templateContent","_this35","removeDuplicateTargetChildren","_this36","prepend","_this37","_this38","_this39","targetElement","navigator$1","registerAdapter","setConfirmMethod","setFormMode","TurboFrameMissingError","_Error","_super9","FrameController","_this40","fetchResponseLoaded","_fetchResponse","currentFetchRequest","resolveVisitPromise","connected","hasBeenLoaded","ignoredAttributes","_ref31","previousFrameElement","replaceChildren","appearanceObserver","_extractForeignFrameElement","_visitResponse","_handleUnvisitableFrameResponse","_visit2","_loadFrameResponse","_requestFailedWithResponse2","_requestSucceededWithResponse2","_loadResponse","_loadSourceURL","loadingStyle","loadSourceURL","isIgnoringChangesTo","_this41","ignoringChangesToAttribute","_callee32","_context32","sourceURL","_callee33","_document3","_context33","loadFrameResponse","handleUnvisitableFrameResponse","_x22","proposeVisitIfNavigatedWithAction","shouldInterceptNavigation","navigateFrame","currentNavigationElement","_callee34","_context34","_x23","_x24","_callee35","_context35","_x25","_x26","_ref32","_ref33","_ref34","newFrame","_newElement","_callee36","newFrameElement","_context36","extractForeignFrameElement","frameRendered","frameLoaded","willHandleFrameMissingFromResponse","handleFrameMissingFromResponse","_x27","_x28","_callee37","_this42","_context37","_x29","withCurrentNavigationElement","_this43","pageSnapshot","_callee38","_context38","visitResponse","_x30","_this44","_ref35","_callee39","_args39","_context39","Response","_x31","missing","throwFrameMissingError","_callee40","wrapped","_context40","_x32","getFrameElementById","_callee41","_context41","CSS","activateElement","_x33","formActionIsVisitable","_this45","_this46","currentURL","connectedCallback","disconnectedCallback","consumer","_HTMLElement2","StreamElement","_renderElement","_render6","_connectedCallback","_super10","_callee42","_context42","_callee44","_this47","_context44","_callee43","_context43","beforeRenderEvent","duplicateChildren","existingChildren","flatMap","newChildrenIds","actionFunction","targetElementsById","targetElementsByQuery","HTMLTemplateElement","description","newStream","_callee45","_context45","performAction","_x34","StreamSourceElement","_HTMLElement3","_super11","_this48","streamSource","WebSocket","EventSource","getConsumer","_getConsumer","setConsumer","newConsumer","_createConsumer","_yield$import","createConsumer","subscribeTo","_subscribeTo","channel","mixin","_yield$getConsumer","subscriptions","walk","ownKeys","enumerableOnly","sym","_objectSpread","getOwnPropertyDescriptors","Turbo","TurboCableStreamSourceElement","received","dispatchMessageEvent","subscriptionConnected","disconnected","subscriptionDisconnected","subscription","unsubscribe","MessageEvent","signed_stream_name","dataset","isBodyInit","formMethod","HTMLButtonElement","HTMLInputElement","determineFormMethod","overrideMethod","determineFetchMethod","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","_renderTurboStream","responseJson","isTurboStream","t1","RequestInterceptor","interceptor","metaContent","mergeEntries","originalUrl","requestInterceptor","t2","unauthenticated","authenticationURL","unprocessableEntity","renderTurboStream","additionalHeaders","formattedBody","baseHeaders","sameHostname","cookies","getCookie","responseKind","originalQuery","requestQuery","bodyIsAString","ApplicationController","assignUrl","currentUrl","repeat","character","blockElements","isBlock","is","voidElements","isVoid","meaningfulWhenBlankElements","cleanAttribute","Rules","_keep","_remove","blankRule","blankReplacement","keepReplacement","defaultRule","defaultReplacement","findRule","filterValue","isPre","paragraph","lineBreak","br","heading","hLevel","headingStyle","blockquote","lastElementChild","listItem","bulletListMarker","indentedCodeBlock","codeBlockStyle","fencedCodeBlock","language","fenceChar","fenceSize","fenceInCodeRegex","horizontalRule","hr","inlineLink","linkStyle","referenceLink","linkReferenceStyle","emphasis","emDelimiter","strong","strongDelimiter","hasSiblings","isCodeBlock","extraSpace","keep","forNode","Parser","_htmlParser","HTMLParser","canParse","canParseHTMLNatively","useActiveX","implementation","createHTMLDocument","ActiveXObject","shouldUseActiveX","designMode","RootNode","prevText","keepLeadingWs","nextNode","collapseWhitespace","preformattedCode","isPreOrCode","isCode","isMeaningfulWhenBlank","hasVoid","hasMeaningfulWhenBlank","flankingWhitespace","leading","trailing","edges","leadingAscii","leadingNonAscii","trailingNonAscii","trailingAscii","isFlankedByWhitespace","sibling","regExp","isFlanked","nodeValue","escapes","TurndownService","defaults","destination","replacementForNode","whitespace","s1","indexEnd","trimTrailingNewlines","s2","nls","turndown","canConvert","addRule","accumulator","SmallBlot","initTurndown","initMarkdownIt","initQuill","turndownService","markdownIt","quillToolbarOptions","inputFormat","outputFormat","inputFormatValue","outputFormatValue","toolbarButtonsValue","toolbarButtons"],"mappings":"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","file":"js/application-969a2731abaf3d347cd4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"2\":\"vendors~actioncable\"}[chunkId]||chunkId) + \"-\" + {\"2\":\"665cd02aee1639cdc933\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 414);\n","module.exports = require(\"regenerator-runtime\");\n","// Utilities\n//\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction isString(obj) {\n return _class(obj) === '[object String]';\n}\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n} // Merge objects\n//\n\n\nfunction assign(obj\n/*from1, from2, from3, ...*/\n) {\n var sources = Array.prototype.slice.call(arguments, 1);\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n if (_typeof(source) !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n return obj;\n} // Remove element from array and put another array at those position.\n// Useful for some operations with tokens\n\n\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) {\n return false;\n } // never used\n\n\n if (c >= 0xFDD0 && c <= 0xFDEF) {\n return false;\n }\n\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) {\n return false;\n } // control codes\n\n\n if (c >= 0x00 && c <= 0x08) {\n return false;\n }\n\n if (c === 0x0B) {\n return false;\n }\n\n if (c >= 0x0E && c <= 0x1F) {\n return false;\n }\n\n if (c >= 0x7F && c <= 0x9F) {\n return false;\n } // out of range\n\n\n if (c > 0x10FFFF) {\n return false;\n }\n\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n }\n\n return String.fromCharCode(c);\n}\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23\n /* # */\n && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ? parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) {\n return str;\n }\n\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) {\n return str;\n }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) {\n return escaped;\n }\n\n return replaceEntityPattern(match, entity);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n\n return str;\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n\n return false;\n} // Zs (unicode class) || [\\t\\f\\v\\r\\n]\n\n\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) {\n return true;\n }\n\n switch (code) {\n case 0x09: // \\t\n\n case 0x0A: // \\n\n\n case 0x0B: // \\v\n\n case 0x0C: // \\f\n\n case 0x0D: // \\r\n\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n\n return false;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\n\n\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex'); // Currently without astral characters support.\n\n\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n} // Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\n\n\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21\n /* ! */\n :\n case 0x22\n /* \" */\n :\n case 0x23\n /* # */\n :\n case 0x24\n /* $ */\n :\n case 0x25\n /* % */\n :\n case 0x26\n /* & */\n :\n case 0x27\n /* ' */\n :\n case 0x28\n /* ( */\n :\n case 0x29\n /* ) */\n :\n case 0x2A\n /* * */\n :\n case 0x2B\n /* + */\n :\n case 0x2C\n /* , */\n :\n case 0x2D\n /* - */\n :\n case 0x2E\n /* . */\n :\n case 0x2F\n /* / */\n :\n case 0x3A\n /* : */\n :\n case 0x3B\n /* ; */\n :\n case 0x3C\n /* < */\n :\n case 0x3D\n /* = */\n :\n case 0x3E\n /* > */\n :\n case 0x3F\n /* ? */\n :\n case 0x40\n /* @ */\n :\n case 0x5B\n /* [ */\n :\n case 0x5C\n /* \\ */\n :\n case 0x5D\n /* ] */\n :\n case 0x5E\n /* ^ */\n :\n case 0x5F\n /* _ */\n :\n case 0x60\n /* ` */\n :\n case 0x7B\n /* { */\n :\n case 0x7C\n /* | */\n :\n case 0x7D\n /* } */\n :\n case 0x7E\n /* ~ */\n :\n return true;\n\n default:\n return false;\n }\n} // Hepler to unify [reference labels].\n//\n\n\nfunction normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' '); // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n } // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n\n\n return str.toLowerCase().toUpperCase();\n} ////////////////////////////////////////////////////////////////////////////////\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\n\n\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint; // exports.replaceEntities = replaceEntities;\n\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function get() {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","var StringMapObserver =\n/** @class */\nfunction () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n }; // Mutation record processing\n\n\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n }; // State tracking\n\n\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n\n if (value == null) {\n this.stringMap[\"delete\"](attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function get() {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\n\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\n\nvar ValueObserver =\n/** @class */\nfunction () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n }); // String map observer delegate\n\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\n\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\n\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(extended, _super);\n\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap =\n/** @class */\nfunction () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\n\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, _char) {\n return _char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char2) {\n return \"-\" + _char2.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\n\nvar DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };","var Guide =\n/** @class */\nfunction () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n\n return Guide;\n}();\n\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n\n TargetSet.prototype.findAll = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n };\n\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function get() {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\n\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function get() {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.dispatcher.start();\n this.router.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _a;\n\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _a;\n\n return _a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\n\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers[\"default\"];\n return _a = {}, _a[name] = {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data[\"delete\"](key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.data.has(key);\n }\n }, _a;\n}\n\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\n\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\n\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValuesByType[type];\n }\n\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n \"boolean\": false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n \"boolean\": function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return parseFloat(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n \"default\": writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function get() {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\n\nexport { Controller };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\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 */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\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 ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\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\n that.length = length;\n }\n\n return that;\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\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\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 * 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 **/\n\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\n if (typeof Symbol !== 'undefined' && Symbol.species && 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\n if (size <= 0) {\n return createBuffer(that, size);\n }\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' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\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\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\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 */\n\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 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\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\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\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' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\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 ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\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 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\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\n if (length === undefined) {\n length = 0;\n\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\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\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\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\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\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\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\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\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\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\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\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}; // 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\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\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 } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\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\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\n if (Buffer.TYPED_ARRAY_SUPPORT && 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\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\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\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\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\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\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\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\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\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\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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\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 var loweredCase = false;\n\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 var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 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\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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} // 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\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, 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\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\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\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 var newBuf;\n\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\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\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\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\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 return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | 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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | 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\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\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\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\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\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)) >>> (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\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\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\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\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\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\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\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\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\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\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\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\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\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\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\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\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\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\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\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\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\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\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}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\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'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\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(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\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\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\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 } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\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) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\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, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\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); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\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\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\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 if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof2(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object') exports[\"Quill\"] = factory();else root[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n /******/\n configurable: false,\n\n /******/\n enumerable: true,\n\n /******/\n get: getter\n /******/\n\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 109);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var container_1 = __webpack_require__(17);\n\n var format_1 = __webpack_require__(18);\n\n var leaf_1 = __webpack_require__(19);\n\n var scroll_1 = __webpack_require__(45);\n\n var inline_1 = __webpack_require__(46);\n\n var block_1 = __webpack_require__(47);\n\n var embed_1 = __webpack_require__(48);\n\n var text_1 = __webpack_require__(49);\n\n var attributor_1 = __webpack_require__(12);\n\n var class_1 = __webpack_require__(32);\n\n var style_1 = __webpack_require__(33);\n\n var store_1 = __webpack_require__(31);\n\n var Registry = __webpack_require__(1);\n\n var 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 };\n exports[\"default\"] = Parchment;\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var ParchmentError =\n /** @class */\n function (_super) {\n __extends(ParchmentError, _super);\n\n function ParchmentError(message) {\n var _this = this;\n\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return ParchmentError;\n }(Error);\n\n exports.ParchmentError = ParchmentError;\n var attributes = {};\n var classes = {};\n var tags = {};\n var types = {};\n exports.DATA_KEY = '__blot';\n var Scope;\n\n (function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n })(Scope = exports.Scope || (exports.Scope = {}));\n\n function create(input, value) {\n var match = query(input);\n\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n\n var BlotClass = match;\n var node = // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n }\n\n exports.create = create;\n\n function find(node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n if (node == null) return null; // @ts-ignore\n\n if (node[exports.DATA_KEY] != null) return node[exports.DATA_KEY].blot;\n if (bubble) return find(node.parentNode, bubble);\n return null;\n }\n\n exports.find = find;\n\n function query(query, scope) {\n if (scope === void 0) {\n scope = Scope.ANY;\n }\n\n var match;\n\n if (typeof query === 'string') {\n match = types[query] || attributes[query]; // @ts-ignore\n } else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n } else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n } else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n } else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n\n for (var i in names) {\n match = classes[names[i]];\n if (match) break;\n }\n\n match = match || tags[query.tagName];\n }\n\n if (match == null) return null; // @ts-ignore\n\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope) return match;\n return null;\n }\n\n exports.query = query;\n\n function register() {\n var Definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n\n var Definition = Definitions[0];\n\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n } else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n\n types[Definition.blotName || Definition.attrName] = Definition;\n\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n } else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n } else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n\n return Definition;\n }\n\n exports.register = register;\n /***/\n },\n /* 2 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var diff = __webpack_require__(51);\n\n var equal = __webpack_require__(11);\n\n var extend = __webpack_require__(3);\n\n var op = __webpack_require__(20);\n\n var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n var Delta = function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n };\n\n Delta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n\n if (attributes != null && _typeof2(attributes) === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n\n return this.push(newOp);\n };\n\n Delta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({\n 'delete': length\n });\n };\n\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = {\n retain: length\n };\n\n if (attributes != null && _typeof2(attributes) === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n\n return this.push(newOp);\n };\n\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n\n if (_typeof2(lastOp) === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = {\n 'delete': lastOp['delete'] + newOp['delete']\n };\n return this;\n } // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n\n\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n\n if (_typeof2(lastOp) !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = {\n insert: lastOp.insert + newOp.insert\n };\n if (_typeof2(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] = {\n retain: lastOp.retain + newOp.retain\n };\n if (_typeof2(newOp.attributes) === 'object') this.ops[index - 1].attributes = newOp.attributes;\n return this;\n }\n }\n }\n\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n\n return this;\n };\n\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n\n return this;\n };\n\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n\n Delta.prototype.partition = function (predicate) {\n var passed = [],\n failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n\n Delta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n };\n\n Delta.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\n return length;\n }, 0);\n };\n\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n };\n\n Delta.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\n while (index < end && iter.hasNext()) {\n var nextOp;\n\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n\n index += op.length(nextOp);\n }\n\n return new Delta(ops);\n };\n\n Delta.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\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n\n var delta = new Delta(ops);\n\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n } // Preserve null when composing with a retain, otherwise remove it for inserts\n\n\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp); // Optimization if rest of other is just retain\n\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 } // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n\n return delta.chop();\n };\n\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n\n return delta;\n };\n\n Delta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var 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\n while (length > 0) {\n var opLength = 0;\n\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n\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\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\n break;\n }\n\n length -= opLength;\n }\n });\n return delta.chop();\n };\n\n Delta.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\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' ? thisOp.insert.indexOf(newline, start) - start : -1;\n\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n\n i += 1;\n line = new Delta();\n }\n }\n\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n };\n\n Delta.prototype.transform = function (other, priority) {\n priority = !!priority;\n\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.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\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\n return delta.chop();\n };\n\n Delta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n\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\n offset += length;\n }\n\n return index;\n };\n\n module.exports = Delta;\n /***/\n },\n /* 3 */\n\n /***/\n function (module, exports) {\n 'use strict';\n\n var hasOwn = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n var defineProperty = Object.defineProperty;\n var gOPD = Object.getOwnPropertyDescriptor;\n\n var isArray = function isArray(arr) {\n if (typeof Array.isArray === 'function') {\n return Array.isArray(arr);\n }\n\n return toStr.call(arr) === '[object Array]';\n };\n\n var isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object\n\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n var key;\n\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n }; // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\n\n\n var setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === '__proto__') {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n }; // Return undefined instead of __proto__ if '__proto__' is not an own property\n\n\n var getProperty = function getProperty(obj, name) {\n if (name === '__proto__') {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n\n return obj[name];\n };\n\n module.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false; // Handle a deep copy situation\n\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {}; // skip the boolean and the target\n\n i = 2;\n }\n\n if (target == null || _typeof2(target) !== 'object' && typeof target !== 'function') {\n target = {};\n }\n\n for (; i < length; ++i) {\n options = arguments[i]; // Only deal with non-null/undefined values\n\n if (options != null) {\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name); // Prevent never-ending loop\n\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n }); // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n /***/\n\n },\n /* 4 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _break = __webpack_require__(16);\n\n var _break2 = _interopRequireDefault(_break);\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n var _text = __webpack_require__(7);\n\n var _text2 = _interopRequireDefault(_text);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var NEWLINE_LENGTH = 1;\n\n var 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\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\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\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\n BlockEmbed.scope = _parchment2[\"default\"].Scope.BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n var 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\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\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n\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\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\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\n this.cache = {};\n }\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\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n\n if (head instanceof _break2[\"default\"]) {\n head.remove();\n }\n\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(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\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } 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\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n }(_parchment2[\"default\"].Block);\n\n Block.blotName = 'block';\n Block.tagName = 'P';\n Block.defaultChild = 'break';\n Block.allowedChildren = [_inline2[\"default\"], _parchment2[\"default\"].Embed, _text2[\"default\"]];\n\n function bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (blot == null) return formats;\n\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2[\"default\"])(formats, blot.formats());\n }\n\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n\n return bubbleFormats(blot.parent, formats);\n }\n\n exports.bubbleFormats = bubbleFormats;\n exports.BlockEmbed = BlockEmbed;\n exports[\"default\"] = Block;\n /***/\n },\n /* 5 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.overload = exports.expandConfig = undefined;\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n __webpack_require__(50);\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _editor = __webpack_require__(14);\n\n var _editor2 = _interopRequireDefault(_editor);\n\n var _emitter3 = __webpack_require__(8);\n\n var _emitter4 = _interopRequireDefault(_emitter3);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _selection = __webpack_require__(15);\n\n var _selection2 = _interopRequireDefault(_selection);\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n var _logger = __webpack_require__(10);\n\n var _logger2 = _interopRequireDefault(_logger);\n\n var _theme = __webpack_require__(34);\n\n var _theme2 = _interopRequireDefault(_theme);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var debug = (0, _logger2[\"default\"])('quill');\n\n var Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\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\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + 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\n this.imports[path] = target;\n\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\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n 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('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4[\"default\"].sources.API;\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n\n var change = new _quillDelta2[\"default\"]();\n\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\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n\n _this4.setSelection(range, _emitter4[\"default\"].sources.SILENT);\n\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = 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 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 return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var bounds = void 0;\n\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } 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 if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n\n return this.selection.getRange()[0];\n }\n }, {\n key: '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 return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = 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 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 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 return modify.call(this, function () {\n delta = new _quillDelta2[\"default\"](delta);\n\n var length = _this10.getLength();\n\n var deleted = _this10.editor.deleteText(0, length);\n\n var applied = _this10.editor.applyDelta(delta);\n\n var lastOp = applied.ops[applied.ops.length - 1];\n\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n\n applied[\"delete\"](1);\n }\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 this.selection.setRange(new _selection.Range(index, length), source);\n\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 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 var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n\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 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\n Quill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n };\n Quill.events = _emitter4[\"default\"].events;\n Quill.sources = _emitter4[\"default\"].sources; // eslint-disable-next-line no-undef\n\n Quill.version = false ? 'dev' : \"1.3.7\";\n Quill.imports = {\n 'delta': _quillDelta2[\"default\"],\n 'parchment': _parchment2[\"default\"],\n 'core/module': _module2[\"default\"],\n 'core/theme': _theme2[\"default\"]\n };\n\n function 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\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\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\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\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\n return config;\n }, {}); // Special case toolbar shorthand\n\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n\n userConfig = (0, _extend2[\"default\"])(true, {}, Quill.DEFAULTS, {\n modules: moduleConfig\n }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n\n return config;\n }, {});\n return userConfig;\n } // Handle selection preservation and TEXT_CHANGE emission\n // common to modification APIs\n\n\n function modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4[\"default\"].sources.USER) {\n return new _quillDelta2[\"default\"]();\n }\n\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n\n if (range != null) {\n if (index === true) index = range.index;\n\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n\n this.setSelection(range, _emitter4[\"default\"].sources.SILENT);\n }\n\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4[\"default\"].events.TEXT_CHANGE, change, oldDelta, source];\n\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4[\"default\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter4[\"default\"].sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n\n return change;\n }\n\n function overload(index, length, name, value, source) {\n var formats = {};\n\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, 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 } // Handle format being object, two format name/value strings or excluded\n\n\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 } // Handle optional source\n\n\n source = source || _emitter4[\"default\"].sources.API;\n return [index, length, formats, source];\n }\n\n function shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n\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\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\n return new _selection.Range(start, end - start);\n }\n\n exports.expandConfig = expandConfig;\n exports.overload = overload;\n exports[\"default\"] = Quill;\n /***/\n },\n /* 6 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _text = __webpack_require__(7);\n\n var _text2 = _interopRequireDefault(_text);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } 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\n Inline.allowedChildren = [Inline, _parchment2[\"default\"].Embed, _text2[\"default\"]]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n\n Inline.order = ['cursor', 'inline', // Must be lower\n 'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n ];\n exports[\"default\"] = Inline;\n /***/\n },\n /* 7 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n exports[\"default\"] = TextBlot;\n /***/\n },\n /* 8 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _eventemitter = __webpack_require__(54);\n\n var _eventemitter2 = _interopRequireDefault(_eventemitter);\n\n var _logger = __webpack_require__(10);\n\n var _logger2 = _interopRequireDefault(_logger);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var debug = (0, _logger2[\"default\"])('quill:events');\n var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n EVENTS.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\n var 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\n _this.on('error', debug.error);\n\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n\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\n this.listeners[eventName].push({\n node: node,\n handler: handler\n });\n }\n }]);\n\n return Emitter;\n }(_eventemitter2[\"default\"]);\n\n Emitter.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 };\n Emitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n };\n exports[\"default\"] = Emitter;\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n };\n\n Module.DEFAULTS = {};\n exports[\"default\"] = Module;\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var levels = ['error', 'warn', 'log', 'info'];\n var level = 'warn';\n\n function debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n\n }\n }\n\n function namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n }\n\n debug.level = namespace.level = function (newLevel) {\n level = newLevel;\n };\n\n exports[\"default\"] = namespace;\n /***/\n },\n /* 11 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var pSlice = Array.prototype.slice;\n\n var objectKeys = __webpack_require__(52);\n\n var isArguments = __webpack_require__(53);\n\n var deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (actual === expected) {\n return true;\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime(); // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || _typeof2(actual) != 'object' && _typeof2(expected) != 'object') {\n return opts.strict ? actual === expected : actual == expected; // 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\n function isUndefinedOrNull(value) {\n return value === null || value === undefined;\n }\n\n function isBuffer(x) {\n if (!x || _typeof2(x) !== 'object' || typeof x.length !== 'number') return false;\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n }\n\n function objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) return false; // an identical 'prototype' property.\n\n if (a.prototype !== b.prototype) return false; //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n\n if (a.length !== b.length) return false;\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {\n //happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n\n\n if (ka.length != kb.length) return false; //the same set of keys (although not necessarily the same order),\n\n ka.sort();\n kb.sort(); //~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) return false;\n } //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n\n\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\n return _typeof2(a) === _typeof2(b);\n }\n /***/\n\n },\n /* 12 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var Registry = __webpack_require__(1);\n\n var Attributor =\n /** @class */\n function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = options.scope & Registry.Scope.LEVEL | attributeBit;\n } else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n\n if (options.whitelist != null) this.whitelist = options.whitelist;\n }\n\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\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) return false;\n if (this.whitelist == null) return true;\n\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n } else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n\n if (this.canAdd(node, value) && value) {\n return value;\n }\n\n return '';\n };\n\n return Attributor;\n }();\n\n exports[\"default\"] = Attributor;\n /***/\n },\n /* 13 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.Code = undefined;\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n var _text = __webpack_require__(7);\n\n var _text2 = _interopRequireDefault(_text);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Code.blotName = 'code';\n Code.tagName = 'CODE';\n\n var 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\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\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\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\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\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\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\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\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\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n\n var next = this.next;\n\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\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2[\"default\"].find(node);\n\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\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\n CodeBlock.blotName = 'code-block';\n CodeBlock.tagName = 'PRE';\n CodeBlock.TAB = ' ';\n exports.Code = Code;\n exports[\"default\"] = CodeBlock;\n /***/\n },\n /* 14 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _op = __webpack_require__(20);\n\n var _op2 = _interopRequireDefault(_op);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _code = __webpack_require__(13);\n\n var _code2 = _interopRequireDefault(_code);\n\n var _cursor = __webpack_require__(24);\n\n var _cursor2 = _interopRequireDefault(_cursor);\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n var _break = __webpack_require__(16);\n\n var _break2 = _interopRequireDefault(_break);\n\n var _clone = __webpack_require__(21);\n\n var _clone2 = _interopRequireDefault(_clone);\n\n var _deepEqual = __webpack_require__(11);\n\n var _deepEqual2 = _interopRequireDefault(_deepEqual);\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var ASCII = /^[ -~]*$/;\n\n var 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\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\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\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\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\n if (key == null) return index;\n\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n\n scrollLength += length;\n }\n\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op[\"delete\"] === 'number') {\n _this.scroll.deleteAt(index, op[\"delete\"]);\n\n return index;\n }\n\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n 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 this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n\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\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 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 var lines = [],\n leaves = [];\n\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _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\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\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 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\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\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _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 var oldDelta = this.delta;\n\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\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\n if (!change || !(0, _deepEqual2[\"default\"])(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n\n return change;\n }\n }]);\n\n return Editor;\n }();\n\n function combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n\n return merged;\n }, {});\n }\n\n function 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({\n image: op.attributes.image\n }, attributes);\n }\n\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2[\"default\"])(op);\n\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\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\n return delta.push(op);\n }, new _quillDelta2[\"default\"]());\n }\n\n exports[\"default\"] = Editor;\n /***/\n },\n /* 15 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.Range = undefined;\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _clone = __webpack_require__(21);\n\n var _clone2 = _interopRequireDefault(_clone);\n\n var _deepEqual = __webpack_require__(11);\n\n var _deepEqual2 = _interopRequireDefault(_deepEqual);\n\n var _emitter3 = __webpack_require__(8);\n\n var _emitter4 = _interopRequireDefault(_emitter3);\n\n var _logger = __webpack_require__(10);\n\n var _logger2 = _interopRequireDefault(_logger);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var debug = (0, _logger2[\"default\"])('quill:selection');\n\n var Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n };\n\n var Selection = 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); // savedRange is last non-null range\n\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\n var _native = _this.getNativeRange();\n\n if (_native == null) return;\n if (_native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n\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\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n\n _this3.update(_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\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2[\"default\"].find(nativeRange.start.node, false);\n\n if (blot == null) return; // TODO Give blot ability to not split\n\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\n this.cursor.attach();\n }\n\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n\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\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n var range = document.createRange();\n\n if (length > 0) {\n range.setStart(node, offset);\n\n var _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 if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\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\n if (!range[\"native\"].collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2[\"default\"].find(node, true);\n\n var index = blot.offset(_this4.scroll);\n\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\n var range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n \"native\": nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\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\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\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 args.push(node, offset);\n });\n\n if (args.length < 2) {\n args = args.concat(args);\n }\n\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _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\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\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n\n var selection = document.getSelection();\n if (selection == null) return;\n\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var _native2 = (this.getNativeRange() || {})[\"native\"];\n\n if (_native2 == null || force || startNode !== _native2.startContainer || startOffset !== _native2.startOffset || endNode !== _native2.endContainer || endOffset !== _native2.endOffset) {\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough 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\n debug.info('setRange', range);\n\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4[\"default\"].sources.USER;\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\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\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\n var args = [_emitter4[\"default\"].events.SELECTION_CHANGE, (0, _clone2[\"default\"])(this.lastRange), (0, _clone2[\"default\"])(oldRange), source];\n\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4[\"default\"].events.EDITOR_CHANGE].concat(args));\n\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\n function contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n } // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n\n\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n\n return parent.contains(descendant);\n }\n\n exports.Range = Range;\n exports[\"default\"] = Selection;\n /***/\n },\n /* 16 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Break.blotName = 'break';\n Break.tagName = 'BR';\n exports[\"default\"] = Break;\n /***/\n },\n /* 17 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var linked_list_1 = __webpack_require__(44);\n\n var shadow_1 = __webpack_require__(30);\n\n var Registry = __webpack_require__(1);\n\n var ContainerBlot =\n /** @class */\n function (_super) {\n __extends(ContainerBlot, _super);\n\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n\n _this.build();\n\n return _this;\n }\n\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n\n ContainerBlot.prototype.build = function () {\n var _this = this;\n\n this.children = new linked_list_1[\"default\"](); // Need to be reversed for if DOM nodes already in order\n\n [].slice.call(this.domNode.childNodes).reverse().forEach(function (node) {\n try {\n var child = makeBlot(node);\n\n _this.insertBefore(child, _this.children.head || undefined);\n } catch (err) {\n if (err instanceof Registry.ParchmentError) return;else throw err;\n }\n });\n };\n\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n return [child, offset];\n } else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n } else {\n return [null, -1];\n }\n };\n\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) {\n index = 0;\n }\n\n if (length === void 0) {\n length = Number.MAX_VALUE;\n }\n\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n descendants.push(child);\n }\n\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n\n lengthLeft -= length;\n });\n return descendants;\n };\n\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n\n _super.prototype.detach.call(this);\n };\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\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (child) {\n child.insertAt(offset, value, def);\n } else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null && !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\n childBlot.insertInto(this, refBlot);\n };\n\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\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 } else {\n this.remove();\n }\n }\n };\n\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var _a = this.children.find(index, inclusive),\n child = _a[0],\n offset = _a[1];\n\n var position = [[this, index]];\n\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n } else if (child != null) {\n position.push([child, offset]);\n }\n\n return position;\n };\n\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n\n _super.prototype.replace.call(this, target);\n };\n\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) return this;\n if (index === this.length()) return this.next;\n }\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\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null && // @ts-ignore\n node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n\n var blot = Registry.find(node);\n if (blot == null) return;\n\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes.filter(function (node) {\n return node.parentNode == _this.domNode;\n }).sort(function (a, b) {\n if (a === b) return 0;\n\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n\n return -1;\n }).forEach(function (node) {\n var refBlot = null;\n\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n\n var blot = makeBlot(node);\n\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n\n return ContainerBlot;\n }(shadow_1[\"default\"]);\n\n function makeBlot(node) {\n var blot = Registry.find(node);\n\n if (blot == null) {\n try {\n blot = Registry.create(node);\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\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n\n blot.attach();\n }\n }\n\n return blot;\n }\n\n exports[\"default\"] = ContainerBlot;\n /***/\n },\n /* 18 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var attributor_1 = __webpack_require__(12);\n\n var store_1 = __webpack_require__(31);\n\n var container_1 = __webpack_require__(17);\n\n var Registry = __webpack_require__(1);\n\n var FormatBlot =\n /** @class */\n function (_super) {\n __extends(FormatBlot, _super);\n\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n\n _this.attributes = new store_1[\"default\"](_this.domNode);\n return _this;\n }\n\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n\n return undefined;\n };\n\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n\n if (format instanceof attributor_1[\"default\"]) {\n this.attributes.attribute(format, value);\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\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n\n return wrapper;\n };\n\n return FormatBlot;\n }(container_1[\"default\"]);\n\n exports[\"default\"] = FormatBlot;\n /***/\n },\n /* 19 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var shadow_1 = __webpack_require__(30);\n\n var Registry = __webpack_require__(1);\n\n var LeafBlot =\n /** @class */\n function (_super) {\n __extends(LeafBlot, _super);\n\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LeafBlot.value = function (domNode) {\n return true;\n };\n\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n\n return -1;\n };\n\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0) offset += 1;\n return [this.parent.domNode, offset];\n };\n\n LeafBlot.prototype.value = function () {\n var _a;\n\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n }(shadow_1[\"default\"]);\n\n exports[\"default\"] = LeafBlot;\n /***/\n },\n /* 20 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var equal = __webpack_require__(11);\n\n var extend = __webpack_require__(3);\n\n var lib = {\n attributes: {\n compose: function compose(a, b, keepNull) {\n if (_typeof2(a) !== 'object') a = {};\n if (_typeof2(b) !== 'object') b = {};\n var attributes = extend(true, {}, b);\n\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n\n return copy;\n }, {});\n }\n\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n diff: function diff(a, b) {\n if (_typeof2(a) !== 'object') a = {};\n if (_typeof2(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\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n transform: function transform(a, b, priority) {\n if (_typeof2(a) !== 'object') return b;\n if (_typeof2(b) !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n\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\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n iterator: function iterator(ops) {\n return new Iterator(ops);\n },\n length: function length(op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n };\n\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n\n ;\n\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n\n Iterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp);\n\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n\n if (typeof nextOp['delete'] === 'number') {\n return {\n 'delete': length\n };\n } else {\n var retOp = {};\n\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n\n return retOp;\n }\n } else {\n return {\n retain: Infinity\n };\n }\n };\n\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n };\n\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n\n return 'retain';\n };\n\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n\n module.exports = lib;\n /***/\n },\n /* 21 */\n\n /***/\n function (module, exports) {\n var clone = function () {\n 'use strict';\n\n function _instanceof(obj, type) {\n return type != null && obj instanceof type;\n }\n\n var nativeMap;\n\n try {\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 nativeMap() {};\n }\n\n var nativeSet;\n\n try {\n nativeSet = Set;\n } catch (_) {\n nativeSet = function nativeSet() {};\n }\n\n var nativePromise;\n\n try {\n nativePromise = Promise;\n } catch (_) {\n nativePromise = function nativePromise() {};\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 */\n\n\n function clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (_typeof2(circular) === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n } // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n\n\n var allParents = [];\n var allChildren = [];\n var useBuffer = typeof Buffer != 'undefined';\n if (typeof circular == 'undefined') circular = true;\n if (typeof depth == 'undefined') depth = Infinity; // recurse this function so we don't reset allParents and allChildren\n\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null) return null;\n if (depth === 0) return parent;\n var child;\n var proto;\n\n if (_typeof2(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\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 } 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\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\n var valueChild = _clone(value, depth - 1);\n\n child.set(keyChild, valueChild);\n });\n }\n\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function (value) {\n var entryChild = _clone(value, depth - 1);\n\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n\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\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n\n child[symbol] = _clone(parent[symbol], depth - 1);\n\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\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n\n if (descriptor && descriptor.enumerable) {\n continue;\n }\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 * 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 */\n\n\n clone.clonePrototype = function clonePrototype(parent) {\n if (parent === null) return null;\n\n var c = function c() {};\n\n c.prototype = parent;\n return new c();\n }; // private utility functions\n\n\n function __objToStr(o) {\n return Object.prototype.toString.call(o);\n }\n\n clone.__objToStr = __objToStr;\n\n function __isDate(o) {\n return _typeof2(o) === 'object' && __objToStr(o) === '[object Date]';\n }\n\n clone.__isDate = __isDate;\n\n function __isArray(o) {\n return _typeof2(o) === 'object' && __objToStr(o) === '[object Array]';\n }\n\n clone.__isArray = __isArray;\n\n function __isRegExp(o) {\n return _typeof2(o) === 'object' && __objToStr(o) === '[object RegExp]';\n }\n\n clone.__isRegExp = __isRegExp;\n\n function __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 }\n\n clone.__getRegExpFlags = __getRegExpFlags;\n return clone;\n }();\n\n if (_typeof2(module) === 'object' && module.exports) {\n module.exports = clone;\n }\n /***/\n\n },\n /* 22 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _emitter = __webpack_require__(8);\n\n var _emitter2 = _interopRequireDefault(_emitter);\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n var _break = __webpack_require__(16);\n\n var _break2 = _interopRequireDefault(_break);\n\n var _code = __webpack_require__(13);\n\n var _code2 = _interopRequireDefault(_code);\n\n var _container = __webpack_require__(25);\n\n var _container2 = _interopRequireDefault(_container);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n function isLine(blot) {\n return blot instanceof _block2[\"default\"] || blot instanceof _block.BlockEmbed;\n }\n\n var 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\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n } // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n\n\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n\n _this.optimize();\n\n _this.enable();\n\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\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\n if (first instanceof _code2[\"default\"]) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n\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\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\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\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n\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\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\n this.appendChild(blot);\n\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2[\"default\"].create(value, def);\n\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\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\n wrapper.appendChild(blot);\n blot = wrapper;\n }\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\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\n lengthLeft -= length;\n });\n return lines;\n };\n\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch === true) return;\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n\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\n if (typeof mutations === 'string') {\n source = mutations;\n }\n\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2[\"default\"].events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n\n\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\n Scroll.blotName = 'scroll';\n Scroll.className = 'ql-editor';\n Scroll.tagName = 'DIV';\n Scroll.defaultChild = 'block';\n Scroll.allowedChildren = [_block2[\"default\"], _block.BlockEmbed, _container2[\"default\"]];\n exports[\"default\"] = Scroll;\n /***/\n },\n /* 23 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SHORTKEY = exports[\"default\"] = undefined;\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _clone = __webpack_require__(21);\n\n var _clone2 = _interopRequireDefault(_clone);\n\n var _deepEqual = __webpack_require__(11);\n\n var _deepEqual2 = _interopRequireDefault(_deepEqual);\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _op = __webpack_require__(20);\n\n var _op2 = _interopRequireDefault(_op);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _logger = __webpack_require__(10);\n\n var _logger2 = _interopRequireDefault(_logger);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var debug = (0, _logger2[\"default\"])('quill:keyboard');\n var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\n var 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\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n\n return binding.key === (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\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n\n _this.addBinding({\n key: Keyboard.keys.ENTER,\n shiftKey: null\n }, handleEnter);\n\n _this.addBinding({\n key: Keyboard.keys.ENTER,\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, function () {});\n\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE\n }, {\n collapsed: true\n }, handleBackspace);\n\n _this.addBinding({\n key: Keyboard.keys.DELETE\n }, {\n collapsed: true\n }, handleDelete);\n } else {\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, handleBackspace);\n\n _this.addBinding({\n key: Keyboard.keys.DELETE\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, handleDelete);\n }\n\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE\n }, {\n collapsed: false\n }, handleDeleteRange);\n\n _this.addBinding({\n key: Keyboard.keys.DELETE\n }, {\n collapsed: false\n }, handleDeleteRange);\n\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE,\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, handleBackspace);\n\n _this.listen();\n\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 var binding = normalize(key);\n\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n\n if (typeof context === 'function') {\n context = {\n handler: context\n };\n }\n\n if (typeof handler === 'function') {\n handler = {\n handler: handler\n };\n }\n\n 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\n var range = _this2.quill.getSelection();\n\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\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\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\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n }(_module2[\"default\"]);\n\n Keyboard.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 Keyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: 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\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: {\n list: 'checked'\n },\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(), {\n list: 'checked'\n });\n var delta = new _quillDelta2[\"default\"]().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\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, {\n header: null\n });\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: {\n list: false\n },\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\n switch (context.prefix.trim()) {\n case '[]':\n case '[ ]':\n value = 'unchecked';\n break;\n\n case '[x]':\n value = 'checked';\n break;\n\n case '-':\n case '*':\n value = 'bullet';\n break;\n\n default:\n value = 'ordered';\n }\n\n this.quill.insertText(range.index, ' ', _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, {\n list: value\n });\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, {\n 'code-block': null\n })[\"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\n function 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\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\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\n return false;\n }), _ref3;\n }\n\n function 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\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 } // Check for astral symbols\n\n\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\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2[\"default\"].sources.USER);\n }\n\n this.quill.focus();\n }\n\n function handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n 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\n this.quill.deleteText(range.index, length, _quill2[\"default\"].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2[\"default\"].sources.USER);\n }\n }\n\n function handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2[\"default\"].attributes.diff(lastFormats, firstFormats) || {};\n }\n\n this.quill.deleteText(range, _quill2[\"default\"].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2[\"default\"].sources.USER);\n }\n\n this.quill.setSelection(range.index, _quill2[\"default\"].sources.SILENT);\n this.quill.focus();\n }\n\n function 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\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\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2[\"default\"].sources.USER); // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n\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\n _this3.quill.format(name, context.format[name], _quill2[\"default\"].sources.USER);\n });\n }\n\n function makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler: function handler(range) {\n var CodeBlock = _parchment2[\"default\"].query('code-block');\n\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\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\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\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\n function 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\n function normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({\n key: binding\n });\n }\n\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2[\"default\"])(binding, false);\n }\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\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n\n return binding;\n }\n\n exports[\"default\"] = Keyboard;\n exports.SHORTKEY = SHORTKEY;\n /***/\n },\n /* 24 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _text = __webpack_require__(7);\n\n var _text2 = _interopRequireDefault(_text);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n _this.domNode.appendChild(_this.textNode);\n\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\n var target = this,\n index = 0;\n\n while (target != null && target.statics.scope !== _parchment2[\"default\"].Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\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\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\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 } // Link format will insert text outside of anchor tag\n\n\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n\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\n this.remove();\n\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 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\n Cursor.blotName = 'cursor';\n Cursor.className = 'ql-cursor';\n Cursor.tagName = 'span';\n Cursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n exports[\"default\"] = Cursor;\n /***/\n },\n /* 25 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Container.allowedChildren = [_block2[\"default\"], _block.BlockEmbed, Container];\n exports[\"default\"] = Container;\n /***/\n },\n /* 26 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n var ColorClass = new _parchment2[\"default\"].Attributor.Class('color', 'ql-color', {\n scope: _parchment2[\"default\"].Scope.INLINE\n });\n var ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2[\"default\"].Scope.INLINE\n });\n exports.ColorAttributor = ColorAttributor;\n exports.ColorClass = ColorClass;\n exports.ColorStyle = ColorStyle;\n /***/\n },\n /* 27 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sanitize = exports[\"default\"] = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n Link.blotName = 'link';\n Link.tagName = 'A';\n Link.SANITIZED_URL = 'about:blank';\n Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\n function _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n }\n\n exports[\"default\"] = Link;\n exports.sanitize = _sanitize;\n /***/\n },\n /* 28 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _keyboard = __webpack_require__(23);\n\n var _keyboard2 = _interopRequireDefault(_keyboard);\n\n var _dropdown = __webpack_require__(107);\n\n var _dropdown2 = _interopRequireDefault(_dropdown);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var optionsCounter = 0;\n\n function toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n }\n\n var 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 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\n break;\n // Allows the \"Escape\" key to close the picker\n\n case _keyboard2[\"default\"].keys.ESCAPE:\n _this.escape();\n\n event.preventDefault();\n break;\n\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'); // Toggle aria-expanded and aria-hidden to make the picker accessible\n\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 item.classList.add('ql-picker-item');\n\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\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\n event.preventDefault();\n break;\n // Allows the \"Escape\" key to close the picker\n\n case _keyboard2[\"default\"].keys.ESCAPE:\n _this2.escape();\n\n event.preventDefault();\n break;\n\n default:\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'); // Don't want screen readers to read this until options are visible\n\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1'; // Need a unique id for aria-controls\n\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n this.options = options;\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n\n options.appendChild(item);\n\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; // Close menu and return focus to trigger label\n\n\n this.close(); // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n\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 var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n\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\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\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\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n\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\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\n exports[\"default\"] = Picker;\n /***/\n },\n /* 29 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n var _break = __webpack_require__(16);\n\n var _break2 = _interopRequireDefault(_break);\n\n var _container = __webpack_require__(25);\n\n var _container2 = _interopRequireDefault(_container);\n\n var _cursor = __webpack_require__(24);\n\n var _cursor2 = _interopRequireDefault(_cursor);\n\n var _embed = __webpack_require__(35);\n\n var _embed2 = _interopRequireDefault(_embed);\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n var _scroll = __webpack_require__(22);\n\n var _scroll2 = _interopRequireDefault(_scroll);\n\n var _text = __webpack_require__(7);\n\n var _text2 = _interopRequireDefault(_text);\n\n var _clipboard = __webpack_require__(55);\n\n var _clipboard2 = _interopRequireDefault(_clipboard);\n\n var _history = __webpack_require__(42);\n\n var _history2 = _interopRequireDefault(_history);\n\n var _keyboard = __webpack_require__(23);\n\n var _keyboard2 = _interopRequireDefault(_keyboard);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\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 '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\n exports[\"default\"] = _quill2[\"default\"];\n /***/\n },\n /* 30 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var Registry = __webpack_require__(1);\n\n var ShadowBlot =\n /** @class */\n function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode; // @ts-ignore\n\n this.domNode[Registry.DATA_KEY] = {\n blot: this\n };\n }\n\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function get() {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n\n var node;\n\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n } else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n } else {\n node = document.createElement(this.tagName[0]);\n }\n } else {\n node = document.createElement(this.tagName);\n }\n\n if (this.className) {\n node.classList.add(this.className);\n }\n\n return node;\n };\n\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null) this.parent.removeChild(this); // @ts-ignore\n\n delete this.domNode[Registry.DATA_KEY];\n };\n\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\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\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\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) {\n refBlot = null;\n }\n\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n\n if (this.domNode.parentNode != parentBlot.domNode || this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n\n this.parent = parentBlot;\n this.attach();\n };\n\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) {\n root = this.parent;\n }\n\n if (this.parent == null || this == root) return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\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\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n\n this.detach();\n };\n\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null) return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\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\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n\n ShadowBlot.prototype.update = function (mutations, context) {// Nothing to do by default\n };\n\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n\n wrapper.appendChild(this);\n return wrapper;\n };\n\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n }();\n\n exports[\"default\"] = ShadowBlot;\n /***/\n },\n /* 31 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var attributor_1 = __webpack_require__(12);\n\n var class_1 = __webpack_require__(32);\n\n var style_1 = __webpack_require__(33);\n\n var Registry = __webpack_require__(1);\n\n var AttributorStore =\n /** @class */\n function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n } else {\n delete this.attributes[attribute.attrName];\n }\n }\n } else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n\n AttributorStore.prototype.build = function () {\n var _this = this;\n\n this.attributes = {};\n var 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.concat(classes).concat(styles).forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n\n if (attr instanceof attributor_1[\"default\"]) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n\n target.format(key, value);\n });\n };\n\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n\n AttributorStore.prototype.values = function () {\n var _this = this;\n\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n\n return AttributorStore;\n }();\n\n exports[\"default\"] = AttributorStore;\n /***/\n },\n /* 32 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var attributor_1 = __webpack_require__(12);\n\n function match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n }\n\n var ClassAttributor =\n /** @class */\n function (_super) {\n __extends(ClassAttributor, _super);\n\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).join('-');\n });\n };\n\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n\n return this.canAdd(node, value) ? value : '';\n };\n\n return ClassAttributor;\n }(attributor_1[\"default\"]);\n\n exports[\"default\"] = ClassAttributor;\n /***/\n },\n /* 33 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var attributor_1 = __webpack_require__(12);\n\n function camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n }\n\n var StyleAttributor =\n /** @class */\n function (_super) {\n __extends(StyleAttributor, _super);\n\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) return false; // @ts-ignore\n\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n\n return StyleAttributor;\n }(attributor_1[\"default\"]);\n\n exports[\"default\"] = StyleAttributor;\n /***/\n },\n /* 34 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var 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\n Theme.DEFAULTS = {\n modules: {}\n };\n Theme.themes = {\n 'default': Theme\n };\n exports[\"default\"] = Theme;\n /***/\n },\n /* 35 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _text = __webpack_require__(7);\n\n var _text2 = _interopRequireDefault(_text);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var GUARD_TEXT = \"\\uFEFF\";\n\n var 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\n _this.contentNode.setAttribute('contenteditable', false);\n\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\n _this.domNode.appendChild(_this.leftGuard);\n\n _this.domNode.appendChild(_this.contentNode);\n\n _this.domNode.appendChild(_this.rightGuard);\n\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(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\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\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n }(_parchment2[\"default\"].Embed);\n\n exports[\"default\"] = Embed;\n /***/\n },\n /* 36 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n var config = {\n scope: _parchment2[\"default\"].Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n };\n var AlignAttribute = new _parchment2[\"default\"].Attributor.Attribute('align', 'align', config);\n var AlignClass = new _parchment2[\"default\"].Attributor.Class('align', 'ql-align', config);\n var AlignStyle = new _parchment2[\"default\"].Attributor.Style('align', 'text-align', config);\n exports.AlignAttribute = AlignAttribute;\n exports.AlignClass = AlignClass;\n exports.AlignStyle = AlignStyle;\n /***/\n },\n /* 37 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.BackgroundStyle = exports.BackgroundClass = undefined;\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _color = __webpack_require__(26);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n var BackgroundClass = new _parchment2[\"default\"].Attributor.Class('background', 'ql-bg', {\n scope: _parchment2[\"default\"].Scope.INLINE\n });\n var BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2[\"default\"].Scope.INLINE\n });\n exports.BackgroundClass = BackgroundClass;\n exports.BackgroundStyle = BackgroundStyle;\n /***/\n },\n /* 38 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n var config = {\n scope: _parchment2[\"default\"].Scope.BLOCK,\n whitelist: ['rtl']\n };\n var DirectionAttribute = new _parchment2[\"default\"].Attributor.Attribute('direction', 'dir', config);\n var DirectionClass = new _parchment2[\"default\"].Attributor.Class('direction', 'ql-direction', config);\n var DirectionStyle = new _parchment2[\"default\"].Attributor.Style('direction', 'direction', config);\n exports.DirectionAttribute = DirectionAttribute;\n exports.DirectionClass = DirectionClass;\n exports.DirectionStyle = DirectionStyle;\n /***/\n },\n /* 39 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.FontClass = exports.FontStyle = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var config = {\n scope: _parchment2[\"default\"].Scope.INLINE,\n whitelist: ['serif', 'monospace']\n };\n var FontClass = new _parchment2[\"default\"].Attributor.Class('font', 'ql-font', config);\n\n var 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\n var FontStyle = new FontStyleAttributor('font', 'font-family', config);\n exports.FontStyle = FontStyle;\n exports.FontClass = FontClass;\n /***/\n },\n /* 40 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SizeStyle = exports.SizeClass = undefined;\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n var SizeClass = new _parchment2[\"default\"].Attributor.Class('size', 'ql-size', {\n scope: _parchment2[\"default\"].Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n });\n var SizeStyle = new _parchment2[\"default\"].Attributor.Style('size', 'font-size', {\n scope: _parchment2[\"default\"].Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n });\n exports.SizeClass = SizeClass;\n exports.SizeStyle = SizeStyle;\n /***/\n },\n /* 41 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n module.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\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getLastChangeIndex = exports[\"default\"] = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n _this.clear();\n\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\n if (!_this.options.userOnly || source === _quill2[\"default\"].sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n\n _this.quill.keyboard.addBinding({\n key: 'Z',\n shortKey: true\n }, _this.undo.bind(_this));\n\n _this.quill.keyboard.addBinding({\n key: 'Z',\n shortKey: true,\n shiftKey: true\n }, _this.redo.bind(_this));\n\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({\n key: 'Y',\n shortKey: true\n }, _this.redo.bind(_this));\n }\n\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n 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 = {\n undo: [],\n redo: []\n };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\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\n History.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n };\n\n function endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2[\"default\"].query(attr, _parchment2[\"default\"].Scope.BLOCK) != null;\n });\n }\n\n return false;\n }\n\n function 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\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n\n return changeIndex;\n }\n\n exports[\"default\"] = History;\n exports.getLastChangeIndex = getLastChangeIndex;\n /***/\n },\n /* 43 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.BaseTooltip = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _emitter = __webpack_require__(8);\n\n var _emitter2 = _interopRequireDefault(_emitter);\n\n var _keyboard = __webpack_require__(23);\n\n var _keyboard2 = _interopRequireDefault(_keyboard);\n\n var _theme = __webpack_require__(34);\n\n var _theme2 = _interopRequireDefault(_theme);\n\n var _colorPicker = __webpack_require__(59);\n\n var _colorPicker2 = _interopRequireDefault(_colorPicker);\n\n var _iconPicker = __webpack_require__(60);\n\n var _iconPicker2 = _interopRequireDefault(_iconPicker);\n\n var _picker = __webpack_require__(28);\n\n var _picker2 = _interopRequireDefault(_picker);\n\n var _tooltip = __webpack_require__(61);\n\n var _tooltip2 = _interopRequireDefault(_tooltip);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var ALIGNS = [false, 'center', 'right', 'justify'];\n var 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 var FONTS = [false, 'serif', 'monospace'];\n var HEADERS = ['1', '2', '3', false];\n var SIZES = ['small', false, 'large', 'huge'];\n\n var 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\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\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\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\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\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\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\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\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\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\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\n return new _picker2[\"default\"](select);\n }\n });\n\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n\n this.quill.on(_emitter2[\"default\"].events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n }(_theme2[\"default\"]);\n\n BaseTheme.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\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\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n\n _this3.quill.updateContents(new _quillDelta2[\"default\"]().retain(range.index)[\"delete\"](range.length).insert({\n image: e.target.result\n }), _emitter2[\"default\"].sources.USER);\n\n _this3.quill.setSelection(range.index + 1, _emitter2[\"default\"].sources.SILENT);\n\n fileInput.value = \"\";\n };\n\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n });\n\n var 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\n _this4.listen();\n\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\n event.preventDefault();\n } else if (_keyboard2[\"default\"].match(event, 'escape')) {\n _this5.cancel();\n\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 this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\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\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n\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\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n\n case 'video':\n {\n value = extractVideoUrl(value);\n }\n // eslint-disable-next-line no-fallthrough\n\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n\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\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2[\"default\"].sources.USER);\n }\n\n this.quill.setSelection(index + 2, _emitter2[\"default\"].sources.USER);\n }\n\n break;\n }\n\n default:\n }\n\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n }(_tooltip2[\"default\"]);\n\n function 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\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\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\n return url;\n }\n\n function fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n values.forEach(function (value) {\n var option = document.createElement('option');\n\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n\n select.appendChild(option);\n });\n }\n\n exports.BaseTooltip = BaseTooltip;\n exports[\"default\"] = BaseTheme;\n /***/\n },\n /* 44 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var LinkedList =\n /** @class */\n function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n LinkedList.prototype.append = function () {\n var nodes = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n\n this.insertBefore(nodes[0], null);\n\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n\n LinkedList.prototype.contains = function (node) {\n var cur,\n next = this.iterator();\n\n while (cur = next()) {\n if (cur === node) return true;\n }\n\n return false;\n };\n\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node) return;\n node.next = refNode;\n\n if (refNode != null) {\n node.prev = refNode.prev;\n\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n\n refNode.prev = node;\n\n if (refNode === this.head) {\n this.head = node;\n }\n } else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n } else {\n node.prev = null;\n this.head = this.tail = node;\n }\n\n this.length += 1;\n };\n\n LinkedList.prototype.offset = function (target) {\n var index = 0,\n cur = this.head;\n\n while (cur != null) {\n if (cur === target) return index;\n index += cur.length();\n cur = cur.next;\n }\n\n return -1;\n };\n\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node)) return;\n if (node.prev != null) node.prev.next = node.next;\n if (node.next != null) node.next.prev = node.prev;\n if (node === this.head) this.head = node.next;\n if (node === this.tail) this.tail = node.prev;\n this.length -= 1;\n };\n\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) {\n curNode = this.head;\n } // TODO use yield when we can\n\n\n return function () {\n var ret = curNode;\n if (curNode != null) curNode = curNode.next;\n return ret;\n };\n };\n\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var cur,\n next = this.iterator();\n\n while (cur = next()) {\n var length = cur.length();\n\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) {\n return [cur, index];\n }\n\n index -= length;\n }\n\n return [null, 0];\n };\n\n LinkedList.prototype.forEach = function (callback) {\n var cur,\n next = this.iterator();\n\n while (cur = next()) {\n callback(cur);\n }\n };\n\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0) return;\n\n var _a = this.find(index),\n startNode = _a[0],\n offset = _a[1];\n\n var cur,\n curIndex = index - offset,\n next = this.iterator(startNode);\n\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n } else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n\n curIndex += curLength;\n }\n };\n\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur,\n next = this.iterator();\n\n while (cur = next()) {\n memo = callback(memo, cur);\n }\n\n return memo;\n };\n\n return LinkedList;\n }();\n\n exports[\"default\"] = LinkedList;\n /***/\n },\n /* 45 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var container_1 = __webpack_require__(17);\n\n var Registry = __webpack_require__(1);\n\n var OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n };\n var MAX_OPTIMIZE_ITERATIONS = 100;\n\n var ScrollBlot =\n /** @class */\n function (_super) {\n __extends(ScrollBlot, _super);\n\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n\n _this.attach();\n\n return _this;\n }\n\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n\n this.observer.disconnect();\n };\n\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n } else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n\n _super.prototype.insertAt.call(this, index, value, def);\n };\n\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n\n if (mutations === void 0) {\n mutations = [];\n }\n\n if (context === void 0) {\n context = {};\n }\n\n _super.prototype.optimize.call(this, context); // We must modify mutations directly, cannot make copy and then modify\n\n\n var records = [].slice.call(this.observer.takeRecords()); // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n\n while (records.length > 0) {\n mutations.push(records.pop());\n } // TODO use WeakMap\n\n\n var mark = function mark(blot, markParent) {\n if (markParent === void 0) {\n markParent = true;\n }\n\n if (blot == null || blot === _this) return;\n if (blot.domNode.parentNode == null) return; // @ts-ignore\n\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n\n if (markParent) mark(blot.parent);\n };\n\n var optimize = function optimize(blot) {\n // Post-order traversal\n if ( // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null || // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n\n if (blot instanceof container_1[\"default\"]) {\n blot.children.forEach(optimize);\n }\n\n blot.optimize(context);\n };\n\n var remaining = mutations;\n\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null) return;\n\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\n if (child instanceof container_1[\"default\"]) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n }\n };\n\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n if (context === void 0) {\n context = {};\n }\n\n mutations = mutations || this.observer.takeRecords(); // TODO use WeakMap\n\n mutations.map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null) return null; // @ts-ignore\n\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n } else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n }).forEach(function (blot) {\n if (blot == null || blot === _this || //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null) return; // @ts-ignore\n\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n }); // @ts-ignore\n\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\n this.optimize(mutations, context);\n };\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\"]);\n\n exports[\"default\"] = ScrollBlot;\n /***/\n },\n /* 46 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var format_1 = __webpack_require__(18);\n\n var Registry = __webpack_require__(1); // Shallow object comparison\n\n\n function isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) return false; // @ts-ignore\n\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop]) return false;\n }\n\n return true;\n }\n\n var InlineBlot =\n /** @class */\n function (_super) {\n __extends(InlineBlot, _super);\n\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName) return undefined;\n return _super.formats.call(this, domNode);\n };\n\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1[\"default\"])) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n\n _this.attributes.copy(child);\n });\n this.unwrap();\n } else {\n _super.prototype.format.call(this, name, value);\n }\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 } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n var formats = this.formats();\n\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n\n var next = this.next;\n\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n }(format_1[\"default\"]);\n\n exports[\"default\"] = InlineBlot;\n /***/\n },\n /* 47 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var format_1 = __webpack_require__(18);\n\n var Registry = __webpack_require__(1);\n\n var BlockBlot =\n /** @class */\n function (_super) {\n __extends(BlockBlot, _super);\n\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName) return undefined;\n return _super.formats.call(this, domNode);\n };\n\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n } else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n } else {\n _super.prototype.format.call(this, name, value);\n }\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 } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n } else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n } else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n }(format_1[\"default\"]);\n\n exports[\"default\"] = BlockBlot;\n /***/\n },\n /* 48 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var leaf_1 = __webpack_require__(19);\n\n var EmbedBlot =\n /** @class */\n function (_super) {\n __extends(EmbedBlot, _super);\n\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n\n return EmbedBlot;\n }(leaf_1[\"default\"]);\n\n exports[\"default\"] = EmbedBlot;\n /***/\n },\n /* 49 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var leaf_1 = __webpack_require__(19);\n\n var Registry = __webpack_require__(1);\n\n var TextBlot =\n /** @class */\n function (_super) {\n __extends(TextBlot, _super);\n\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n\n TextBlot.value = function (domNode) {\n var text = domNode.data; // @ts-ignore\n\n if (text['normalize']) text = text['normalize']();\n return text;\n };\n\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n\n return -1;\n };\n\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n } else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.text = this.statics.value(this.domNode);\n\n if (this.text.length === 0) {\n this.remove();\n } else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n return [this.domNode, index];\n };\n\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) return this;\n if (index === this.length()) return this.next;\n }\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\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n\n TextBlot.prototype.value = function () {\n return this.text;\n };\n\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n }(leaf_1[\"default\"]);\n\n exports[\"default\"] = TextBlot;\n /***/\n },\n /* 50 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var elem = document.createElement('div');\n elem.classList.toggle('test-class', false);\n\n if (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n\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\n if (!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\n if (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n }\n\n if (!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\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\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\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n\n return undefined;\n }\n });\n }\n\n document.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false); // Disable automatic linkifying in IE11\n\n document.execCommand(\"autoUrlDetect\", false, false);\n });\n /***/\n },\n /* 51 */\n\n /***/\n function (module, exports) {\n /**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\n var DIFF_DELETE = -1;\n var DIFF_INSERT = 1;\n var DIFF_EQUAL = 0;\n /**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\n\n function 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\n return [];\n } // Check cursor_pos within bounds\n\n\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n } // Trim off common prefix (speedup).\n\n\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength); // Trim off common suffix (speedup).\n\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength); // Compute the diff on the middle block.\n\n var diffs = diff_compute_(text1, text2); // Restore the prefix and suffix.\n\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n\n diff_cleanupMerge(diffs);\n\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\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 */\n\n function diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)]]; // Swap insertions for deletions if diff is reversed.\n\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n } // Check to see if the problem can be split in two.\n\n\n var hm = diff_halfMatch_(text1, text2);\n\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4]; // Send both pairs off for separate processing.\n\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b); // Merge the results.\n\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n }\n\n ;\n /**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\n\n function diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length); // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length; // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n\n var front = delta % 2 != 0; // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n\n if (k1 == -d || k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1]) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n\n var y1 = x1 - k1;\n\n while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n\n v1[k1_offset] = x1;\n\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n } // Walk the reverse path one step.\n\n\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n\n if (k2 == -d || k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1]) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n\n var y2 = x2 - k2;\n\n while (x2 < text1_length && y2 < text2_length && text1.charAt(text1_length - x2 - 1) == text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n\n v2[k2_offset] = x2;\n\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset; // Mirror x2 onto top-left coordinate system.\n\n x2 = text1_length - x2;\n\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n } // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n\n\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n ;\n /**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\n\n function diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y); // Compute both diffs serially.\n\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n return diffs.concat(diffsb);\n }\n\n ;\n /**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\n\n function diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n } // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n\n\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n return pointermid;\n }\n\n ;\n /**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\n\n function diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n } // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n\n\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n return pointermid;\n }\n\n ;\n /**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\n\n function diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n\n\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i), shorttext.substring(0, j));\n\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n } // First check if the second quarter is the seed for a half-match.\n\n\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4)); // Check again based on the third quarter.\n\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n } // A half-match was found, sort out the return data.\n\n\n var text1_a, text1_b, text2_a, text2_b;\n\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n }\n\n ;\n /**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\n\n function diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n\n case DIFF_EQUAL:\n // 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\n if (commonlength !== 0) {\n if (pointer - count_delete - count_insert > 0 && diffs[pointer - count_delete - count_insert - 1][0] == DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n } // Factor out any common suffixies.\n\n\n commonlength = diff_commonSuffix(text_insert, text_delete);\n\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n } // Delete the offending records and add the merged ones.\n\n\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert, count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete, count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert, count_delete + count_insert, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n }\n\n pointer = pointer - count_delete - count_insert + (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\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n } // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n\n\n var changes = false;\n pointer = 1; // Intentionally ignore the first and last element (don't need checking).\n\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n\n pointer++;\n } // If shifts were made, the diff needs reordering and another shift sweep.\n\n\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n }\n\n ;\n var diff = diff_main;\n diff.INSERT = DIFF_INSERT;\n diff.DELETE = DIFF_DELETE;\n diff.EQUAL = DIFF_EQUAL;\n module.exports = diff;\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 */\n\n function cursor_normalize_diff(diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n\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(); // split d into two diff changes\n\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\n throw new Error('cursor_pos is out of bounds!');\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 */\n\n\n function 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\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\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 * 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 */\n\n\n function fix_emoji(diffs) {\n var compact = false;\n\n var starts_with_pair_end = function starts_with_pair_end(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n };\n\n var ends_with_pair_start = function ends_with_pair_start(str) {\n return str.charCodeAt(str.length - 1) >= 0xD800 && str.charCodeAt(str.length - 1) <= 0xDBFF;\n };\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]) && diffs[i - 1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i - 1][1]) && diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\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 diffs[i - 2][1] = diffs[i - 2][1].slice(0, -1);\n }\n }\n\n if (!compact) {\n return diffs;\n }\n\n var fixed_diffs = [];\n\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\n return fixed_diffs;\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 */\n\n\n function 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\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\n return diffs;\n }\n /***/\n\n },\n /* 52 */\n\n /***/\n function (module, exports) {\n exports = module.exports = typeof Object.keys === 'function' ? Object.keys : shim;\n exports.shim = shim;\n\n function shim(obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n }\n /***/\n\n },\n /* 53 */\n\n /***/\n function (module, exports) {\n var supportsArgumentsClass = function () {\n return Object.prototype.toString.call(arguments);\n }() == '[object Arguments]';\n\n exports = module.exports = supportsArgumentsClass ? supported : unsupported;\n exports.supported = supported;\n\n function supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n }\n\n ;\n exports.unsupported = unsupported;\n\n function unsupported(object) {\n return object && _typeof2(object) == 'object' && typeof object.length == 'number' && Object.prototype.hasOwnProperty.call(object, 'callee') && !Object.prototype.propertyIsEnumerable.call(object, 'callee') || false;\n }\n\n ;\n /***/\n },\n /* 54 */\n\n /***/\n function (module, exports) {\n 'use strict';\n\n var has = Object.prototype.hasOwnProperty,\n prefix = '~';\n /**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\n\n function Events() {} //\n // We try to not inherit from `Object.prototype`. In some engines creating an\n // instance in this way is faster than calling `Object.create(null)` directly.\n // If `Object.create(null)` is not supported we prefix the event names with a\n // character to make sure that the built-in object properties are not\n // overridden or used as an attack vector.\n //\n\n\n if (Object.create) {\n Events.prototype = Object.create(null); //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n\n if (!new Events().__proto__) prefix = false;\n }\n /**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {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 */\n\n\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n }\n /**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\n\n\n function EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n /**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\n\n\n EventEmitter.prototype.eventNames = function eventNames() {\n var names = [],\n events,\n name;\n if (this._eventsCount === 0) return names;\n\n for (name in events = this._events) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n };\n /**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\n\n\n EventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event,\n available = this._events[evt];\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 * 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 */\n\n\n EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\n var listeners = this._events[evt],\n len = arguments.length,\n args,\n i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1:\n return listeners.fn.call(listeners.context), true;\n\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len - 1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length,\n j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1:\n listeners[i].fn.call(listeners[i].context);\n break;\n\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n };\n /**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\n\n\n EventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this),\n evt = prefix ? prefix + event : event;\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;else if (!this._events[evt].fn) this._events[evt].push(listener);else this._events[evt] = [this._events[evt], listener];\n return this;\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 */\n\n\n EventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true),\n evt = prefix ? prefix + event : event;\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;else if (!this._events[evt].fn) this._events[evt].push(listener);else this._events[evt] = [this._events[evt], listener];\n return this;\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 */\n\n\n EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n } //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n\n\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n }\n\n return this;\n };\n /**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\n\n\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n }; //\n // Alias methods names because people roll like that.\n //\n\n\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.addListener = EventEmitter.prototype.on; //\n // This function doesn't apply anymore.\n //\n\n EventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n }; //\n // Expose the prefix.\n //\n\n\n EventEmitter.prefixed = prefix; //\n // Allow `EventEmitter` to be imported as module namespace.\n //\n\n EventEmitter.EventEmitter = EventEmitter; //\n // Expose the module.\n //\n\n if ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n }\n /***/\n\n },\n /* 55 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports[\"default\"] = undefined;\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _extend2 = __webpack_require__(3);\n\n var _extend3 = _interopRequireDefault(_extend2);\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _logger = __webpack_require__(10);\n\n var _logger2 = _interopRequireDefault(_logger);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n var _align = __webpack_require__(36);\n\n var _background = __webpack_require__(37);\n\n var _code = __webpack_require__(13);\n\n var _code2 = _interopRequireDefault(_code);\n\n var _color = __webpack_require__(26);\n\n var _direction = __webpack_require__(38);\n\n var _font = __webpack_require__(39);\n\n var _size = __webpack_require__(40);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var debug = (0, _logger2[\"default\"])('quill:clipboard');\n var DOM_KEY = '__ql-matcher';\n var 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 var ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n }, {});\n var 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\n var 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\n _this.container = _this.quill.addContainer('ql-clipboard');\n\n _this.container.setAttribute('contenteditable', true);\n\n _this.container.setAttribute('tabindex', -1);\n\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n\n return this.convert();\n }\n\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n\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); // Remove trailing newline\n\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\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\n _this2.quill.updateContents(delta, _quill2[\"default\"].sources.USER); // range.length contributes to delta.length()\n\n\n _this2.quill.setSelection(delta.length() - range.length, _quill2[\"default\"].sources.SILENT);\n\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n\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\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n\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\n Clipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n };\n\n function 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\n function 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\n function deltaEndsWith(delta, text) {\n var endText = \"\";\n\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\n return endText.slice(-1 * text.length) === text;\n }\n\n function isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n }\n\n function 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\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\n return delta.concat(childrenDelta);\n }, new _quillDelta2[\"default\"]());\n } else {\n return new _quillDelta2[\"default\"]();\n }\n }\n\n function matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n }\n\n function matchAttributor(node, delta) {\n var attributes = _parchment2[\"default\"].Attributor.Attribute.keys(node);\n\n var classes = _parchment2[\"default\"].Attributor.Class.keys(node);\n\n var styles = _parchment2[\"default\"].Attributor.Style.keys(node);\n\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2[\"default\"].query(name, _parchment2[\"default\"].Scope.ATTRIBUTE);\n\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n\n attr = STYLE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n\n return delta;\n }\n\n function matchBlot(node, delta) {\n var match = _parchment2[\"default\"].query(node);\n\n if (match == null) return delta;\n\n if (match.prototype instanceof _parchment2[\"default\"].Embed) {\n var embed = {};\n var value = match.value(node);\n\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\n return delta;\n }\n\n function matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n return delta;\n }\n\n function matchIgnore() {\n return new _quillDelta2[\"default\"]();\n }\n\n function matchIndent(node, delta) {\n var match = _parchment2[\"default\"].query(node);\n\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n\n var indent = -1,\n parent = node.parentNode;\n\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2[\"default\"].query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n\n parent = parent.parentNode;\n }\n\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2[\"default\"]().retain(delta.length() - 1).retain(1, {\n indent: indent\n }));\n }\n\n function 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\n return delta;\n }\n\n function 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\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n\n return delta;\n }\n\n function matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2[\"default\"]().insert('\\t').concat(delta);\n }\n\n return delta;\n }\n\n function matchText(node, delta) {\n var text = node.data; // Word represents empty line with  \n\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\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\n return match.length < 1 && collapse ? ' ' : match;\n };\n\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n\n return delta.insert(text);\n }\n\n exports[\"default\"] = Clipboard;\n exports.matchAttributor = matchAttributor;\n exports.matchBlot = matchBlot;\n exports.matchNewline = matchNewline;\n exports.matchSpacing = matchSpacing;\n exports.matchText = matchText;\n /***/\n },\n /* 56 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n Bold.blotName = 'bold';\n Bold.tagName = ['STRONG', 'B'];\n exports[\"default\"] = Bold;\n /***/\n },\n /* 57 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.addControls = exports[\"default\"] = undefined;\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _quillDelta = __webpack_require__(2);\n\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _logger = __webpack_require__(10);\n\n var _logger2 = _interopRequireDefault(_logger);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var debug = (0, _logger2[\"default\"])('quill:toolbar');\n\n var 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\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\n _this.container.classList.add('ql-toolbar');\n\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\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\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\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\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\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\n if (_parchment2[\"default\"].query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n\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\n e.preventDefault();\n }\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\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\n _this2.update(range);\n }); // TODO use weakmap\n\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\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\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n\n if (option == null) {\n input.value = ''; // TODO make configurable?\n\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\n Toolbar.DEFAULTS = {};\n\n function addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n\n if (value != null) {\n input.value = value;\n }\n\n container.appendChild(input);\n }\n\n function addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\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\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\n function 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\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n\n input.appendChild(option);\n });\n container.appendChild(input);\n }\n\n Toolbar.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\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\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\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\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\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\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 exports[\"default\"] = Toolbar;\n exports.addControls = addControls;\n /***/\n },\n /* 58 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 59 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _picker = __webpack_require__(28);\n\n var _picker2 = _interopRequireDefault(_picker);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n _this.container.classList.add('ql-color-picker');\n\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\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\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n\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\n exports[\"default\"] = ColorPicker;\n /***/\n },\n /* 60 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _picker = __webpack_require__(28);\n\n var _picker2 = _interopRequireDefault(_picker);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n _this.selectItem(_this.defaultItem);\n\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\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n }(_picker2[\"default\"]);\n\n exports[\"default\"] = IconPicker;\n /***/\n },\n /* 61 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var 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\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\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; // root.scrollTop should be 0 if scrollContainer !== root\n\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\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\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\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\n exports[\"default\"] = Tooltip;\n /***/\n },\n /* 62 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n var _emitter = __webpack_require__(8);\n\n var _emitter2 = _interopRequireDefault(_emitter);\n\n var _base = __webpack_require__(43);\n\n var _base2 = _interopRequireDefault(_base);\n\n var _link = __webpack_require__(27);\n\n var _link2 = _interopRequireDefault(_link);\n\n var _selection = __webpack_require__(15);\n\n var _icons = __webpack_require__(41);\n\n var _icons2 = _interopRequireDefault(_icons);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var TOOLBAR_CONFIG = [[{\n header: ['1', '2', '3', false]\n }], ['bold', 'italic', 'underline', 'link'], [{\n list: 'ordered'\n }, {\n list: 'bullet'\n }], ['clean']];\n\n var 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\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\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({\n key: 'K',\n shortKey: true\n }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n }(_base2[\"default\"]);\n\n SnowTheme.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\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\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\n var 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\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\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\n _this3.restoreFocus();\n\n _this3.quill.formatText(range, 'link', false, _emitter2[\"default\"].sources.USER);\n\n delete _this3.linkRange;\n }\n\n event.preventDefault();\n\n _this3.hide();\n });\n this.quill.on(_emitter2[\"default\"].events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n\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\n var preview = _link2[\"default\"].formats(link.domNode);\n\n _this3.preview.textContent = preview;\n\n _this3.preview.setAttribute('href', preview);\n\n _this3.show();\n\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n\n return;\n }\n } else {\n delete _this3.linkRange;\n }\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\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n }(_base.BaseTooltip);\n\n SnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n exports[\"default\"] = SnowTheme;\n /***/\n },\n /* 63 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _core = __webpack_require__(29);\n\n var _core2 = _interopRequireDefault(_core);\n\n var _align = __webpack_require__(36);\n\n var _direction = __webpack_require__(38);\n\n var _indent = __webpack_require__(64);\n\n var _blockquote = __webpack_require__(65);\n\n var _blockquote2 = _interopRequireDefault(_blockquote);\n\n var _header = __webpack_require__(66);\n\n var _header2 = _interopRequireDefault(_header);\n\n var _list = __webpack_require__(67);\n\n var _list2 = _interopRequireDefault(_list);\n\n var _background = __webpack_require__(37);\n\n var _color = __webpack_require__(26);\n\n var _font = __webpack_require__(39);\n\n var _size = __webpack_require__(40);\n\n var _bold = __webpack_require__(56);\n\n var _bold2 = _interopRequireDefault(_bold);\n\n var _italic = __webpack_require__(68);\n\n var _italic2 = _interopRequireDefault(_italic);\n\n var _link = __webpack_require__(27);\n\n var _link2 = _interopRequireDefault(_link);\n\n var _script = __webpack_require__(69);\n\n var _script2 = _interopRequireDefault(_script);\n\n var _strike = __webpack_require__(70);\n\n var _strike2 = _interopRequireDefault(_strike);\n\n var _underline = __webpack_require__(71);\n\n var _underline2 = _interopRequireDefault(_underline);\n\n var _image = __webpack_require__(72);\n\n var _image2 = _interopRequireDefault(_image);\n\n var _video = __webpack_require__(73);\n\n var _video2 = _interopRequireDefault(_video);\n\n var _code = __webpack_require__(13);\n\n var _code2 = _interopRequireDefault(_code);\n\n var _formula = __webpack_require__(74);\n\n var _formula2 = _interopRequireDefault(_formula);\n\n var _syntax = __webpack_require__(75);\n\n var _syntax2 = _interopRequireDefault(_syntax);\n\n var _toolbar = __webpack_require__(57);\n\n var _toolbar2 = _interopRequireDefault(_toolbar);\n\n var _icons = __webpack_require__(41);\n\n var _icons2 = _interopRequireDefault(_icons);\n\n var _picker = __webpack_require__(28);\n\n var _picker2 = _interopRequireDefault(_picker);\n\n var _colorPicker = __webpack_require__(59);\n\n var _colorPicker2 = _interopRequireDefault(_colorPicker);\n\n var _iconPicker = __webpack_require__(60);\n\n var _iconPicker2 = _interopRequireDefault(_iconPicker);\n\n var _tooltip = __webpack_require__(61);\n\n var _tooltip2 = _interopRequireDefault(_tooltip);\n\n var _bubble = __webpack_require__(108);\n\n var _bubble2 = _interopRequireDefault(_bubble);\n\n var _snow = __webpack_require__(62);\n\n var _snow2 = _interopRequireDefault(_snow);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n _core2[\"default\"].register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\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 '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 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n 'formats/blockquote': _blockquote2[\"default\"],\n 'formats/code-block': _code2[\"default\"],\n 'formats/header': _header2[\"default\"],\n 'formats/list': _list2[\"default\"],\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 'formats/image': _image2[\"default\"],\n 'formats/video': _video2[\"default\"],\n 'formats/list/item': _list.ListItem,\n 'modules/formula': _formula2[\"default\"],\n 'modules/syntax': _syntax2[\"default\"],\n 'modules/toolbar': _toolbar2[\"default\"],\n 'themes/bubble': _bubble2[\"default\"],\n 'themes/snow': _snow2[\"default\"],\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\n exports[\"default\"] = _core2[\"default\"];\n /***/\n },\n /* 64 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.IndentClass = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n var IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2[\"default\"].Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n });\n exports.IndentClass = IndentClass;\n /***/\n },\n /* 65 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Blockquote.blotName = 'blockquote';\n Blockquote.tagName = 'blockquote';\n exports[\"default\"] = Blockquote;\n /***/\n },\n /* 66 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Header.blotName = 'header';\n Header.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n exports[\"default\"] = Header;\n /***/\n },\n /* 67 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.ListItem = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _block = __webpack_require__(4);\n\n var _block2 = _interopRequireDefault(_block);\n\n var _container = __webpack_require__(25);\n\n var _container2 = _interopRequireDefault(_container);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\n ListItem.blotName = 'list-item';\n ListItem.tagName = 'LI';\n\n var 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\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n\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\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\n var format = _this2.statics.formats(domNode);\n\n var blot = _parchment2[\"default\"].find(e.target);\n\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\n var next = this.next;\n\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\n target.moveChildren(item);\n this.appendChild(item);\n }\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\n List.blotName = 'list';\n List.scope = _parchment2[\"default\"].Scope.BLOCK_BLOT;\n List.tagName = ['OL', 'UL'];\n List.defaultChild = 'list-item';\n List.allowedChildren = [ListItem];\n exports.ListItem = ListItem;\n exports[\"default\"] = List;\n /***/\n },\n /* 68 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _bold = __webpack_require__(56);\n\n var _bold2 = _interopRequireDefault(_bold);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Italic.blotName = 'italic';\n Italic.tagName = ['EM', 'I'];\n exports[\"default\"] = Italic;\n /***/\n },\n /* 69 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Script.blotName = 'script';\n Script.tagName = ['SUB', 'SUP'];\n exports[\"default\"] = Script;\n /***/\n },\n /* 70 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Strike.blotName = 'strike';\n Strike.tagName = 'S';\n exports[\"default\"] = Strike;\n /***/\n },\n /* 71 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _inline = __webpack_require__(6);\n\n var _inline2 = _interopRequireDefault(_inline);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\n Underline.blotName = 'underline';\n Underline.tagName = 'U';\n exports[\"default\"] = Underline;\n /***/\n },\n /* 72 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _link = __webpack_require__(27);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var ATTRIBUTES = ['alt', 'height', 'width'];\n\n var 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\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n }, {\n key: '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\n Image.blotName = 'image';\n Image.tagName = 'IMG';\n exports[\"default\"] = Image;\n /***/\n },\n /* 73 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _block = __webpack_require__(4);\n\n var _link = __webpack_require__(27);\n\n var _link2 = _interopRequireDefault(_link);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var ATTRIBUTES = ['height', 'width'];\n\n var 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\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\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\n Video.blotName = 'video';\n Video.className = 'ql-video';\n Video.tagName = 'IFRAME';\n exports[\"default\"] = Video;\n /***/\n },\n /* 74 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.FormulaBlot = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _embed = __webpack_require__(35);\n\n var _embed2 = _interopRequireDefault(_embed);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\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\n FormulaBlot.blotName = 'formula';\n FormulaBlot.className = 'ql-formula';\n FormulaBlot.tagName = 'SPAN';\n\n var 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\n return _this2;\n }\n\n return Formula;\n }(_module2[\"default\"]);\n\n exports.FormulaBlot = FormulaBlot;\n exports[\"default\"] = Formula;\n /***/\n },\n /* 75 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.CodeToken = exports.CodeBlock = undefined;\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _parchment = __webpack_require__(0);\n\n var _parchment2 = _interopRequireDefault(_parchment);\n\n var _quill = __webpack_require__(5);\n\n var _quill2 = _interopRequireDefault(_quill);\n\n var _module = __webpack_require__(9);\n\n var _module2 = _interopRequireDefault(_module);\n\n var _code = __webpack_require__(13);\n\n var _code2 = _interopRequireDefault(_code);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var 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\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\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\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n }(_code2[\"default\"]);\n\n SyntaxCodeBlock.className = 'ql-syntax';\n var CodeToken = new _parchment2[\"default\"].Attributor.Class('token', 'hljs', {\n scope: _parchment2[\"default\"].Scope.INLINE\n });\n\n var 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\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\n var timer = null;\n\n _this2.quill.on(_quill2[\"default\"].events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n\n timer = null;\n }, _this2.options.interval);\n });\n\n _this2.highlight();\n\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\n if (range != null) {\n this.quill.setSelection(range, _quill2[\"default\"].sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n }(_module2[\"default\"]);\n\n Syntax.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 exports.CodeBlock = SyntaxCodeBlock;\n exports.CodeToken = CodeToken;\n exports[\"default\"] = Syntax;\n /***/\n },\n /* 76 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 77 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 78 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 79 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 80 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 81 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 82 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 83 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 84 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 85 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 86 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 87 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 88 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 89 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 90 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 91 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 92 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 93 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 94 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 95 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 96 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 97 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 98 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 99 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 100 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 101 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 102 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 103 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 104 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 105 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 106 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 107 */\n\n /***/\n function (module, exports) {\n module.exports = \" \";\n /***/\n },\n /* 108 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = exports.BubbleTooltip = undefined;\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _extend = __webpack_require__(3);\n\n var _extend2 = _interopRequireDefault(_extend);\n\n var _emitter = __webpack_require__(8);\n\n var _emitter2 = _interopRequireDefault(_emitter);\n\n var _base = __webpack_require__(43);\n\n var _base2 = _interopRequireDefault(_base);\n\n var _selection = __webpack_require__(15);\n\n var _icons = __webpack_require__(41);\n\n var _icons2 = _interopRequireDefault(_icons);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{\n header: 1\n }, {\n header: 2\n }, 'blockquote']];\n\n var 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\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\n BubbleTheme.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\n var 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\n if (range != null && range.length > 0 && source === _emitter2[\"default\"].sources.USER) {\n _this2.show(); // Lock our width so we will expand beyond our offsetParent boundaries\n\n\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n\n var lines = _this2.quill.getLines(range.index, range.length);\n\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n\n var index = _this2.quill.getIndex(lastLine);\n\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\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\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\n var range = _this3.quill.getSelection();\n\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\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\n BubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n exports.BubbleTooltip = BubbleTooltip;\n exports[\"default\"] = BubbleTheme;\n /***/\n },\n /* 109 */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(63);\n /***/\n }\n /******/\n ])[\"default\"]\n );\n});","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\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 } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\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 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | 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 = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | 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] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\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\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\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 } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\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 i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\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\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\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 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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\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\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","module.exports = /[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/;","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n/**\n * new Ruler()\n **/\n\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = []; // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n\n this.__cache__ = null;\n} ////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n// Find rule index by name\n//\n\n\nRuler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n\n return -1;\n}; // Build rules lookup cache\n//\n\n\nRuler.prototype.__compile__ = function () {\n var self = this;\n var chains = ['']; // collect unique names\n\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) {\n return;\n }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) {\n return;\n }\n\n if (chain && rule.alt.indexOf(chain) < 0) {\n return;\n }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\n\n\nRuler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n\n var opt = options || {};\n\n if (index === -1) {\n throw new Error('Parser rule not found: ' + name);\n }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\n\n\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n\n var opt = options || {};\n\n if (index === -1) {\n throw new Error('Parser rule not found: ' + beforeName);\n }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\n\n\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n\n var opt = options || {};\n\n if (index === -1) {\n throw new Error('Parser rule not found: ' + afterName);\n }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\n\n\nRuler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\n\n\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) {\n list = [list];\n }\n\n var result = []; // Search by name and enable\n\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) {\n return;\n }\n\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n this.__cache__ = null;\n return result;\n};\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\n\n\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) {\n list = [list];\n }\n\n this.__rules__.forEach(function (rule) {\n rule.enabled = false;\n });\n\n this.enable(list, ignoreInvalid);\n};\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\n\n\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) {\n list = [list];\n }\n\n var result = []; // Search by name and disable\n\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) {\n return;\n }\n\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n this.__cache__ = null;\n return result;\n};\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\n\n\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n } // Chain can be empty, if rules disabled. But we still have to return Array.\n\n\n return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;","// Token class\n'use strict';\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\n\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n\n this.tag = tag;\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n\n this.attrs = null;\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n\n this.map = null;\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n\n this.nesting = nesting;\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n\n this.level = 0;\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n\n this.children = null;\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n\n this.content = '';\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n\n this.markup = '';\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n\n this.info = '';\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n\n this.meta = null;\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n\n this.block = false;\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n\n this.hidden = false;\n}\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\n\n\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) {\n return -1;\n }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) {\n return i;\n }\n }\n\n return -1;\n};\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\n\n\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [attrData];\n }\n};\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\n\n\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [name, value];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\n\n\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name),\n value = null;\n\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n\n return value;\n};\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\n\n\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([name, value]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\nmodule.exports = Token;","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {}\n","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n/*eslint quotes:0*/\n\nmodule.exports = require('entities/lib/maps/entities.json');","'use strict';\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse = require('./parse');","module.exports = /[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;","module.exports = /[\\0-\\x1F\\x7F-\\x9F]/;","module.exports = /[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;","// Regexps to match html elements\n'use strict';\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?][\\\\s\\\\S]*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;","// ~~strike through~~\n//\n'use strict'; // Insert each marker as a separate text token, and add it to delimiter list\n//\n\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i,\n scanned,\n token,\n len,\n ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) {\n return false;\n }\n\n if (marker !== 0x7E\n /* ~ */\n ) {\n return false;\n }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) {\n return false;\n }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n state.delimiters.push({\n marker: marker,\n length: 0,\n // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n return true;\n};\n\nfunction postProcess(state, delimiters) {\n var i,\n j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n max = delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E\n /* ~ */\n ) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' && state.tokens[endDelim.token - 1].content === '~') {\n loneMarkers.push(endDelim.token - 1);\n }\n } // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n\n\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n} // Walk through delimiter list and replace text tokens with tags\n//\n\n\nmodule.exports.postProcess = function strikethrough(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};","// Process *this* and _that_\n//\n'use strict'; // Insert each marker as a separate text token, and add it to delimiter list\n//\n\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i,\n scanned,\n token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) {\n return false;\n }\n\n if (marker !== 0x5F\n /* _ */\n && marker !== 0x2A\n /* * */\n ) {\n return false;\n }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n return true;\n};\n\nfunction postProcess(state, delimiters) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n max = delimiters.length;\n\n for (i = max - 1; i >= 0; i--) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F\n /* _ */\n && startDelim.marker !== 0x2A\n /* * */\n ) {\n continue;\n } // Process only opening markers\n\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end]; // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n\n isStrong = i > 0 && delimiters[i - 1].end === startDelim.end + 1 && // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker && delimiters[i - 1].token === startDelim.token - 1 && // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1;\n ch = String.fromCharCode(startDelim.marker);\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n} // Walk through delimiter list and replace text tokens with tags\n//\n\n\nmodule.exports.postProcess = function emphasis(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a