{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///./src/shared/helpers/documentHelper.js","webpack:///./src/services/ValidationService.js","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///./src/shared/helpers/inputHelpers.js","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./src/views/pages/company/index/formBasic/tabs/Basic.vue?235b","webpack:///src/views/pages/company/index/formBasic/tabs/Basic.vue","webpack:///./src/views/pages/company/index/formBasic/tabs/Basic.vue?b5a0","webpack:///./src/views/pages/company/index/formBasic/tabs/Basic.vue","webpack:///./node_modules/vue-quill-editor/node_modules/quill/dist/quill.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["BaseItemGroup","extend","name","provide","expansionPanels","this","props","accordion","Boolean","disabled","flat","hover","focusable","inset","popout","readonly","tile","computed","classes","options","call","created","$attrs","hasOwnProperty","breaking","Array","isArray","value","length","methods","updateItem","item","index","getValue","nextValue","isActive","toggleMethod","nextIsActive","VAutocomplete","delimiters","type","default","returnObject","data","editingIndex","computedCounterValue","multiple","selectedItems","internalSearch","toString","hasSlot","VSelect","isAnyValueAllowed","menuCanShow","isFocused","hasDisplayedItems","$slots","hideNoData","searchIsDirty","onInternalSearchChanged","val","delimiter","find","d","endsWith","slice","updateTags","updateMenuDimensions","genInput","input","attrs","on","paste","onPaste","genChipSelection","chip","componentOptions","listeners","dblclick","getText","selectedIndex","onChipInput","onEnterDown","e","preventDefault","getMenuIndex","$nextTick","updateSelf","onKeyDown","keyCode","ctrlKey","keyCodes","home","end","includes","left","$refs","selectionStart","enter","changeSelectedIndex","onTabDown","stopPropagation","selectItem","updateEditing","toLocaleLowerCase","setSelectedItems","internalValue","setValue","undefined","findIndex","Object","assign","splice","push","updateCombobox","isUsingSlot","$scopedSlots","selection","hasChips","menuIndex","itemToSelect","event","pastedItemText","clipboardData","_event$clipboardData","getData","findExistingIndex","clearableCallback","onlyDigits","document","replace","apiService","ApiService","ValidationService","id","email","emailExists","postRequest","User","Email","Id","then","resp","catch","error","socialNumber","userType","onlyNumbers","socialNumberExists","SocialNumber","p1","p2","v","test","i18n","t","replaceAll","cpf_test","cnpj_test","strCPF","Soma","Resto","i","parseInt","substring","cnpj","tamanho","numeros","digitos","soma","pos","charAt","resultado","date","date_parsed","includes_day","moment","year","isValid","getRequest","baseMixins","mixins","Bootable","Colorable","RegistrableInject","parentIsActive","expansionPanel","watch","immediate","handler","oldVal","isBooted","registerContent","beforeDestroy","unregisterContent","render","h","VExpandTransition","showLazyContent","setBackgroundColor","color","staticClass","directives","class","getSlot","BindsAttrs","RegistrableProvide","form","inheritAttrs","lazyValidation","inputs","watchers","errorBag","errors","values","$emit","deep","watchInput","watcher","$watch","$set","_uid","valid","shouldValidate","validate","filter","reset","forEach","resetErrorBag","setTimeout","resetValidation","register","unregister","found","unwatch","$delete","novalidate","attrs$","submit","Vue","ripple","genRipple","center","$createElement","permissionOnlyNumber","formatToDecimalNumber","valueToString","String","valueFormatted","Number","convertIntNumberInDecimal","$","uncurryThis","requireObjectCoercible","isCallable","isRegExp","getMethod","getRegExpFlags","getSubstitution","wellKnownSymbol","IS_PURE","REPLACE","$TypeError","TypeError","indexOf","stringSlice","max","Math","stringIndexOf","string","searchValue","fromIndex","target","proto","replaceValue","IS_REG_EXP","flags","replacer","searchString","functionalReplace","searchLength","advanceBy","replacement","O","position","endOfLastMatch","result","_vm","_h","_c","_self","VForm","ref","$event","checkForm","VTextField","$t","required","model","company","callback","$$v","expression","VRow","VCol","rawName","email_valid","_v","_s","VRadioGroup","reportByPowerBI","VRadio","Pbi","PowerBiReportId","VAlert","staticStyle","_e","keyPowerBI","VExpansionPanels","VExpansionPanel","VExpansionPanelHeader","VExpansionPanelContent","ReservedQuotas","parseFloat","partnersLoading","partners","$tc","handlePartnerMinValue","partnerSelected","currency","handleMinValue","CurrencyEnum","BRL","minAllocationValueBRL","USD","minAllocationValueUS","VSlider","ESG","StockOptions","AdhesionContractClickSignlKey","$i18n","locale","NewsletterSubscriptionClickSignlKey","CommitmentTermAnvilUrl","InvestmentProxyPJAnvilUrl","InvestmentProxyPFAnvilUrl","CommitmentTermText","InvestmentProxyPJText","InvestmentProxyPFText","VCombobox","vehiclesOptions","vehiclesSelected","DetailsVideo","categories","scopedSlots","_u","key","fn","translateCategoryOption","pipeline_category_changed","roundsEnv","pipelineIndexOptions","PipelineCategory","Base64Banner","VImg","Banner","show_photo","setImageBanner","Base64Logo","Logo","setImageLogo","VCard","VBtn","loading","$router","go","staticRenderFns","components","quillEditor","gs","vs","company_id","edit","Name","CNPJ","Address","Phone","Website","CategoryId","IsDetailsPlaylist","Showcased","CompanyInvestmentVehicles","currencyOptions","text","CompanyAllocationMinValues","money","decimal","thousands","prefix","precision","masked","company_prop","OriginalIndex","OriginalCategory","companyInvestmentVehicles","getMinValuesNoPartner","remove_investment_vehicle","add_investment_vehicle","Nire","Cnpj","CompanyId","get_pipeline_index_options","getPartnerB2b","get_partners","initialize_translatable_field","field","path","checkBox_changed","s","list","isJson","str","JSON","reader","get_categories","email_error_msg","minValue","PartnerB2bId","Currency","MinValue","obj","putRequest","getAllVehicles","setVehiclesSelected","vehicles","companyId","InvestmentVehicleId","component","root","factory","module","exports","self","modules","installedModules","__webpack_require__","moduleId","l","m","c","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","p","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","query","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","b","__","constructor","ParchmentError","_super","message","_this","Error","attributes","tags","types","match","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","parentNode","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","split","tagName","TYPE","Definitions","_i","arguments","map","Definition","blotName","attrName","keyName","className","toUpperCase","tagNames","tag","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","newOp","keys","retain","lastOp","unshift","chop","pop","predicate","partition","passed","failed","reduce","initial","changeLength","elem","delete","start","Infinity","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","min","thisOp","otherOp","rest","concat","strings","prep","join","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","offset","nextType","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","writable","getProperty","src","copy","copyIsArray","clone","BlockEmbed","bubbleFormats","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_get","receiver","Function","desc","parent","getPrototypeOf","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","apply","domNode","formats","attribute","BLOCK_ATTRIBUTE","format","def","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","shift","children","tail","head","remove","context","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_d","done","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","debug","Quill","container","html","innerHTML","trim","classList","add","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","theme","keyboard","addModule","clipboard","history","init","events","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","source","mutations","range","lastRange","modify","update","contents","convert","setContents","clear","placeholder","readOnly","disable","limit","level","imports","overwrite","warn","startsWith","refNode","createElement","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","_this4","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","right","width","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","contains","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","import","themeConfig","config","moduleNames","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","args","emit","_map","_map2","_map3","_map4","version","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","addEventListener","_len","_key","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","log","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","method","_console","console","namespace","ns","logger","bind","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","objEquiv","isUndefinedOrNull","isBuffer","x","a","ka","kb","sort","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","appendChild","prev","optimize","removeChild","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","image","bullet","_toConsumableArray","arr2","from","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","body","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$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","removeAllRanges","addRange","blur","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","toLowerCase","replaceWith","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","resolve","reject","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","global","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","listen","evt","binding","normalize","which","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","charCodeAt","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","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","element","Picker","select","buildPicker","style","display","label","togglePicker","escape","option","tabIndex","hasAttribute","buildItem","selected","buildLabel","buildOptions","close","trigger","Event","dispatchEvent","createEvent","initEvent","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","camelize","parts","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","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","fileInput","files","FileReader","onload","readAsDataURL","click","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","append","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","subjectString","isFinite","floor","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","j","best_common","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","len","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","pair","_pair","applyFormat","computeStyle","nodeType","window","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","clearTimeout","interval","code","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","r","u","install","globalOptions","boundary","script","size","background","font","_options","_content","defaultOptions","content","mounted","initialize","$el","pasteHTML","setText","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","f","beforeCreate","_injectStyles","esModule","_t","VInput","Loadable","ClickOutside","inverseLabel","step","thumbColor","thumbLabel","validator","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","vertical","app","thumbPressed","mouseTimeout","noClick","lazyValue","isNaN","roundValue","maxValue","trackTransition","showTicks","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","$vuetify","rtl","isDisabled","transition","trackStyles","numTicks","showThumbLabel","computedTrackColor","isDark","validationState","computedTrackFillColor","computedColor","computedThumbColor","parsed","beforeMount","consoleWarn","genDefaultSlot","genLabel","slider","genSlider","genProgress","isReadonly","themeClasses","onBlur","onSliderClick","mousedown","onSliderMouseDown","touchstart","genChildren","genTrackContainer","genSteps","genThumbContainer","onFocus","computedId","tabindex","offsetDirection","filled","valueWidth","genThumb","thumbLabelContent","genThumbLabelContent","genThumbLabel","setTextColor","getThumbContainerStyles","role","keydown","convertToUnit","VScaleTransition","origin","_e$target","domRect","touch","touches","clientY","clientX","mouseUpOptions","passiveSupported","passive","capture","mouseMoveOptions","isTouchEvent","onMouseMove","addOnceEventListener","onSliderMouseUp","parseMouseMove","isInteractive","parseKeyDown","thumb","track","trackStart","trackLength","clickOffset","clickPos","pageup","pagedown","down","up","steps","increase","multiplier","trimmedStep","decimals","round","toFixed","defaultMenuProps","VSelectMenuProps","offsetY","offsetOverflow","allowOverflow","autoSelectFirst","queryText","itemText","menuProps","noFilter","searchInput","lazySearch","computedItems","filteredItems","selectedValues","hideSelected","hasItem","currentRange","selectedItem","isSearching","allItems","getPropertyFromItem","isDirty","$_menuProps","contentClass","valueComparator","listData","items","virtualizedItems","onCopy","isMenuActive","activateMenu","setSearch","destroyed","onFilteredItemsChanged","preSelectedItem","menu","listIndex","setMenuIndex","getTiles","updateDimensions","backspace","deleteCurrentItem","curItem","getDisabled","nextIndex","nextItem","mergeData","getObjectValueByPath","autocomplete","domProps","genInputSlot","slot","genSelections","onClick","isAppendInner","onInput","badInput","validity","onSpaceDown","onUpDown","currentItem","currentItemText","setData","disableIconRotate","expandIcon","hideActions","hasMousedown","registerHeader","unregisterHeader","genIcon","icon","VIcon","VFadeTransition","$listeners","mouseup","open","GroupableFactory","groupClasses","vm","$on","detail","prevent","Rippleable","Comparable","inputValue","falseValue","trueValue","hasColor","appIsDark","isMultiple","rippleState","checked","onChange","onKeydown"],"mappings":"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,GAAGrB,EAAIS,GAAG,gBAAgB,IAAI,IAC9wGgF,EAAkB,G,4RCwYP,GACftX,0BACAuX,YACAC,8BAGA/U,gBAAA,OACAwF,sBACAwP,cACAC,cACAP,WACAQ,gBACAC,QACAnD,oBACAsB,cACA5B,YACAoC,wBACArC,mBACAI,qBACAlB,mBACAO,cACAlB,SACAoF,UACAC,UACAC,aACAC,WACAvP,WACAwP,aACAtB,YACAI,UACAmB,gBACApC,gBACAT,0BACAE,6BACAD,6BACAE,sBACAE,yBACAD,yBACAR,iCACAG,uCACA+C,qBACAC,aACAC,6BACAC,iBACA,CACAC,UACA9W,kBAEA,CACA8W,WACA9W,mBAGA+W,+BAEAC,OACAC,YACAC,cACAC,YACAC,YACAC,WAEAtM,YAAAiM,mBACA7C,mBACAC,sBACAS,iBACAzB,0BACAF,6BAGA5T,UACAiS,YADA,WACA,WACA,0BACA,GACA,4HACA1J,IAEA,yBAEAiJ,SATA,WASA,WACA,kDAGAnS,OACA2Y,oBACAC,qBACAC,wBACAjE,oBAGA7T,QA1FA,WA0FA,0JACA,iBACA,+BACA,mBACA,mBACA,iBACA,sBACA,UACA,yBAEA,2BACA,uCACA,uBAEA,kBACA,sBAGA,0BACA,gDACA,0DACA,6DACA,6DACA,sDACA,yDACA,yDACA,iEACA,wEAEA,UAGA,6BACA,0CACA,6BAIA,oBACA,qDAGA,0BACA,uCACA,0BAIA,+CACA+X,EACA,qDACA,OACA9Q,0BACApI,kCAIA,sBAzDA,+CA6DA2B,SACAwX,sBADA,WACA,WACA,mDACA,MACA,4DACA,gCAGA,aACA,cACA,sDAGA,UACA,sDAGA,2CACA,6CAIA9E,sBAtBA,WAsBA,WACA,kDAIA,kCACA,iCACA,CACA,MACA,gDACA,4DAGA,UACA,sDAGA,UACA,sDAIA,2BADA,EACA,WAEA,KAIA,0BADA,EACA,WAEA,OAKA+E,0BAzDA,SAyDAtX,GACA,6CAEAuX,uBA5DA,WA6DA,sCACA3Q,QACAmP,UACAyB,UACAC,UACAC,oCAGAnD,0BArEA,WAsEA,gEACA,8CAEA,2BACA,yDACA,o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","file":"js/chunk-61d188c4.822e602a.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n","export const onlyDigits = (document) => {\n if (document) {\n return document.replace(/[^0-9]/g,'')\n } else {\n return \"\";\n }\n}","import ApiService from \"./ApiService\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport i18n from \"../i18n\";\nimport { onlyDigits } from \"../shared/helpers/documentHelper\";\nconst apiService = new ApiService();\nexport default class ValidationService {\n constructor() {}\n\n async check_if_email_exists(id, email) {\n var emailExists = false;\n await apiService\n .postRequest(\n `user/check-email`,\n { User: { Email: email, Id: id } },\n false\n )\n .then((resp) => {})\n .catch((error) => {\n emailExists = true;\n });\n return emailExists;\n }\n async check_if_social_number_exists(\n id,\n socialNumber,\n userType,\n onlyNumbers = true\n ) {\n var socialNumberExists = false;\n await apiService\n .postRequest(\n `${userType}/check-social-number`,\n {\n Id: id,\n SocialNumber: onlyNumbers ? onlyDigits(socialNumber) : socialNumber,\n },\n false\n )\n .then((resp) => {})\n .catch((error) => {\n socialNumberExists = true;\n });\n return socialNumberExists;\n }\n passwordsMatch(p1, p2) {\n return p1 == p2;\n }\n special_required(v) {\n return /[*&$!@#?]/.test(v);\n }\n uppercase_required(v) {\n return /[A-Z]/.test(v); //|| this.$t(\"uppercase_required\");\n }\n number_required(v) {\n return /[0-9]/.test(v); //|| this.$t(\"number_required\");\n }\n lowercase_required(v) {\n return /[a-z]/.test(v); //|| this.$t(\"lowercase_required\");\n }\n phone_valid(v) {\n return v.length == \"(##) #####-####\".length;\n }\n accent_valid(v) {\n return !/[À-ÖØ-öø-ÿ]/.test(v);\n }\n email_valid(v) {\n return (\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i.test(\n v\n ) || i18n.t(\"format_invalid\")\n );\n }\n social_number_valid(v) {\n return (\n (v.replaceAll(\".\", \"\").replaceAll(\"/\", \"\").replaceAll(\"-\", \"\").length ==\n 11 &&\n this.cpf_test(\n v.replaceAll(\".\", \"\").replaceAll(\"/\", \"\").replaceAll(\"-\", \"\")\n )) ||\n (v.replaceAll(\".\", \"\").replaceAll(\"/\", \"\").replaceAll(\"-\", \"\").length ==\n 14 &&\n this.cnpj_test(\n v.replaceAll(\".\", \"\").replaceAll(\"/\", \"\").replaceAll(\"-\", \"\")\n ))\n );\n }\n cpf_test(strCPF) {\n strCPF = strCPF.replace(/\\D/g, \"\");\n var Soma;\n var Resto;\n Soma = 0;\n if (strCPF == \"00000000000\") return false;\n\n for (let i = 1; i <= 9; i++)\n Soma = Soma + parseInt(strCPF.substring(i - 1, i)) * (11 - i);\n Resto = (Soma * 10) % 11;\n if (Resto == 10 || Resto == 11) Resto = 0;\n if (Resto != parseInt(strCPF.substring(9, 10))) return false;\n Soma = 0;\n for (let i = 1; i <= 10; i++)\n Soma = Soma + parseInt(strCPF.substring(i - 1, i)) * (12 - i);\n Resto = (Soma * 10) % 11;\n\n if (Resto == 10 || Resto == 11) Resto = 0;\n if (Resto != parseInt(strCPF.substring(10, 11))) return false;\n return true;\n }\n cnpj_test(cnpj) {\n cnpj = cnpj.replace(/[^\\d]+/g, \"\");\n\n if (cnpj == \"\") return false;\n\n if (cnpj.length != 14) return false;\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj == \"00000000000000\" ||\n cnpj == \"11111111111111\" ||\n cnpj == \"22222222222222\" ||\n cnpj == \"33333333333333\" ||\n cnpj == \"44444444444444\" ||\n cnpj == \"55555555555555\" ||\n cnpj == \"66666666666666\" ||\n cnpj == \"77777777777777\" ||\n cnpj == \"88888888888888\" ||\n cnpj == \"99999999999999\"\n )\n return false;\n\n // Valida DVs\n let tamanho = cnpj.length - 2;\n let numeros = cnpj.substring(0, tamanho);\n let digitos = cnpj.substring(tamanho);\n let soma = 0;\n let pos = tamanho - 7;\n for (let i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--;\n if (pos < 2) pos = 9;\n }\n let resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n if (resultado != digitos.charAt(0)) return false;\n\n tamanho = tamanho + 1;\n numeros = cnpj.substring(0, tamanho);\n soma = 0;\n pos = tamanho - 7;\n for (let i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--;\n if (pos < 2) pos = 9;\n }\n resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n if (resultado != digitos.charAt(1)) return false;\n\n return true;\n }\n validDate(date, includes_day = true) {\n let date_parsed;\n if (includes_day) {\n date_parsed = moment(date, \"DD/MM/YYYY\");\n } else {\n date_parsed = moment(date, \"MM/YYYY\");\n }\n return () =>\n !date ||\n (date && date_parsed.year() > 1600 && date_parsed.isValid()) ||\n i18n.t(\"valid_date\");\n }\n async check_if_social_number_of_investment_vehicle_exists(socialNumber) {\n var socialNumberExists = false;\n await apiService\n .getRequest(\n `alphaInvestor/check-social-number-of-investment-vehicle?socialNumber=` +\n socialNumber\n )\n .then((resp) => {})\n .catch((error) => {\n socialNumberExists = true;\n });\n return socialNumberExists;\n }\n}\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\n ]))\n },\n})\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// no export\nfunction formatToCurrency(value) {\n const valueFormatted = value.toLocaleString(\"pt-BR\", {\n style: \"currency\",\n currency: \"BRL\",\n });\n\n return valueFormatted;\n}\n\n//all export\nexport const formatToCurrencyInInput = (value) => {\n let formatValueToNumber;\n let valueFormatted;\n\n // caso ocorra o clique no enter para previvir\n if (isNaN(value)) {\n formatValueToNumber = formatToNumberInInput(value);\n } else {\n formatValueToNumber = Number(value);\n }\n\n const formatValueToCurrency = formatToCurrency(formatValueToNumber);\n const removePrefix = formatValueToCurrency.replace(\"R$\", \"\");\n\n valueFormatted = removePrefix;\n\n return valueFormatted;\n};\n\nexport const formatToNumberInInput = (value) => {\n let valueFormatted;\n\n if (value.includes(\",00\")) {\n valueFormatted = value.replace(\",00\", \"\");\n valueFormatted = Number(valueFormatted.replace(/\\D/g, \"\"));\n } else {\n valueFormatted = Number(value.replace(/\\D/g, \"\"));\n }\n\n return valueFormatted;\n};\n\nexport const permissionOnlyNumber = (event) => {\n if (event.keyCode > 47 && event.keyCode < 58) {\n return false;\n } else {\n return true;\n }\n};\n\nexport const formatToDecimalNumber = (value) => {\n let valueToString = String(value);\n let valueFormatted = valueToString;\n\n if (valueToString.includes(\"R$\")) {\n valueFormatted = value.replace(\"R$\", \"\");\n\n valueFormatted = valueFormatted.replaceAll(\".\", \"\");\n\n valueFormatted = valueFormatted.replace(\",\", \".\");\n } else {\n valueFormatted = Number(value);\n }\n\n return Number(valueFormatted);\n};\n\nexport const convertIntNumberInDecimal = (value) => {\n let valueFormatted = value;\n const valueToString = String(value);\n\n if (!valueToString.includes(\".\")) {\n valueFormatted = value + \".00\";\n }\n\n return valueFormatted;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","import { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSlider } from 'vuetify/lib/components/VSlider';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(VForm,{ref:\"form\",staticClass:\"mt-5\",on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.checkForm()}}},[_c(VTextField,{attrs:{\"label\":_vm.$t('name'),\"rules\":[_vm.required]},model:{value:(_vm.company.Name),callback:function ($$v) {_vm.$set(_vm.company, \"Name\", $$v)},expression:\"company.Name\"}}),_c(VRow,[_c(VCol,{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c(VTextField,{directives:[{name:\"mask\",rawName:\"v-mask\",value:(['##.###.###/####-##']),expression:\"['##.###.###/####-##']\"}],attrs:{\"placeholder\":\"00.000.000/0000-00\",\"label\":_vm.$t('company_id'),\"rules\":[function (v) { return (!!v && v.length === 18) || _vm.required(); }]},model:{value:(_vm.company.CNPJ),callback:function ($$v) {_vm.$set(_vm.company, \"CNPJ\", $$v)},expression:\"company.CNPJ\"}})],1),_c(VCol,{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c(VTextField,{attrs:{\"label\":_vm.$t('phone')},model:{value:(_vm.company.Phone),callback:function ($$v) {_vm.$set(_vm.company, \"Phone\", $$v)},expression:\"company.Phone\"}})],1)],1),_c(VTextField,{attrs:{\"label\":_vm.$t('address')},model:{value:(_vm.company.Address),callback:function ($$v) {_vm.$set(_vm.company, \"Address\", $$v)},expression:\"company.Address\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('email'),\"rules\":[_vm.email_valid]},model:{value:(_vm.company.Email),callback:function ($$v) {_vm.$set(_vm.company, \"Email\", $$v)},expression:\"company.Email\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('site')},model:{value:(_vm.company.Website),callback:function ($$v) {_vm.$set(_vm.company, \"Website\", $$v)},expression:\"company.Website\"}}),_c('div',[_c('div',{staticClass:\"mt-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"report_by_powerBI\")))]),_c(VRadioGroup,{attrs:{\"center\":\"\",\"row\":\"\"},model:{value:(_vm.reportByPowerBI),callback:function ($$v) {_vm.reportByPowerBI=$$v},expression:\"reportByPowerBI\"}},[_c(VRadio,{attrs:{\"label\":_vm.$t('yes'),\"value\":true}}),_c(VRadio,{attrs:{\"label\":_vm.$t('no'),\"value\":false}})],1)],1),(!_vm.company.Pbi && _vm.reportByPowerBI && _vm.company.PowerBiReportId)?_c(VAlert,{staticStyle:{\"padding-top\":\"8px\",\"padding-bottom\":\"8px\",\"padding-left\":\"4px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"pbi_invalid_id_text\"))+\" \")]):_vm._e(),(_vm.reportByPowerBI)?_c(VTextField,{staticClass:\"mt-0 pt-2 mb-3\",attrs:{\"label\":_vm.$t('powerBI_key'),\"rules\":[_vm.required]},model:{value:(_vm.keyPowerBI),callback:function ($$v) {_vm.keyPowerBI=$$v},expression:\"keyPowerBI\"}}):_vm._e()],1),_c(VExpansionPanels,[_c(VExpansionPanel,{staticClass:\"mt-1\"},[_c(VExpansionPanelHeader,[_vm._v(\" \"+_vm._s(_vm.$t(\"company_info\"))+\" \")]),_c(VExpansionPanelContent,[_c(VTextField,{directives:[{name:\"money\",rawName:\"v-money\",value:(_vm.money),expression:\"money\"}],attrs:{\"label\":_vm.$t('revenue')},model:{value:(_vm.company.Revenue),callback:function ($$v) {_vm.$set(_vm.company, \"Revenue\", $$v)},expression:\"company.Revenue\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('reserved_quotas'),\"type\":\"number\",\"suffix\":\"%\"},on:{\"change\":function($event){_vm.company.ReservedQuotas = parseFloat(_vm.company.ReservedQuotas)}},model:{value:(_vm.company.ReservedQuotas),callback:function ($$v) {_vm.$set(_vm.company, \"ReservedQuotas\", $$v)},expression:\"company.ReservedQuotas\"}}),_c(VTextField,{directives:[{name:\"money\",rawName:\"v-money\",value:(_vm.money),expression:\"money\"}],attrs:{\"label\":_vm.$t('fundraising_value')},model:{value:(_vm.company.FundraisingValue),callback:function ($$v) {_vm.$set(_vm.company, \"FundraisingValue\", $$v)},expression:\"company.FundraisingValue\"}}),(!_vm.partnersLoading)?_c('div',[_c('p',{staticClass:\"mb-0\",staticStyle:{\"font-size\":\"11px\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"min_allocation_value\"))+\" \")]),_c(VRow,{attrs:{\"align\":\"center\"}},[_c(VCol,{attrs:{\"cols\":\"6\",\"md\":\"6\",\"lg\":\"8\"}},[_c(VSelect,{attrs:{\"items\":_vm.partners,\"item-text\":\"name\",\"hide-details\":\"\",\"dense\":\"\",\"label\":_vm.$tc('partner', 1),\"return-object\":\"\",\"outlined\":\"\"},on:{\"change\":_vm.handlePartnerMinValue},model:{value:(_vm.partnerSelected),callback:function ($$v) {_vm.partnerSelected=$$v},expression:\"partnerSelected\"}})],1),_c(VCol,{staticClass:\"mb-2\",attrs:{\"cols\":\"6\",\"md\":\"6\",\"lg\":\"2\"}},[_c(VTextField,{attrs:{\"label\":_vm.$t('min_value_required_currency', { currency: '(R$)' }),\"type\":\"number\",\"prefix\":\"R$\",\"hide-details\":\"\"},on:{\"change\":function (e) { return _vm.handleMinValue(e, _vm.CurrencyEnum.BRL); }},model:{value:(_vm.minAllocationValueBRL),callback:function ($$v) {_vm.minAllocationValueBRL=$$v},expression:\"minAllocationValueBRL\"}})],1),_c(VCol,{staticClass:\"mb-2\",attrs:{\"cols\":\"6\",\"md\":\"6\",\"lg\":\"2\"}},[_c(VTextField,{attrs:{\"label\":_vm.$t('min_value_required_currency', { currency: '(US$)' }),\"type\":\"number\",\"prefix\":\"US$\",\"hide-details\":\"\"},on:{\"change\":function (e) { return _vm.handleMinValue(e, _vm.CurrencyEnum.USD); }},model:{value:(_vm.minAllocationValueUS),callback:function ($$v) {_vm.minAllocationValueUS=$$v},expression:\"minAllocationValueUS\"}})],1)],1)],1):_vm._e(),_c(VTextField,{directives:[{name:\"money\",rawName:\"v-money\",value:(_vm.money),expression:\"money\"}],attrs:{\"label\":_vm.$t('profitability')},model:{value:(_vm.company.Profitability),callback:function ($$v) {_vm.$set(_vm.company, \"Profitability\", $$v)},expression:\"company.Profitability\"}}),_c('p',[_vm._v(_vm._s(_vm.$t(\"esg\"))+\":\")]),_c(VRow,{staticClass:\"mx-12\"},[_c('span',{staticClass:\"mt-1\"},[_vm._v(\"0\")]),_c(VSlider,{staticClass:\"mx-2\",attrs:{\"min\":\"0\",\"max\":\"5\",\"track-color\":\"#383838\",\"thumb-color\":\"primary\",\"thumb-label\":true},on:{\"change\":function($event){_vm.company.ESG = parseFloat(_vm.company.ESG)}},model:{value:(_vm.company.ESG),callback:function ($$v) {_vm.$set(_vm.company, \"ESG\", $$v)},expression:\"company.ESG\"}}),_c('span',{staticClass:\"mt-1\"},[_vm._v(\"5\")])],1)],1)],1),_c(VExpansionPanel,{staticClass:\"mt-1\"},[_c(VExpansionPanelHeader,[_vm._v(\" \"+_vm._s(_vm.$t(\"investments_docs\"))+\" \")]),_c(VExpansionPanelContent,[_c(VSelect,{attrs:{\"solo\":\"\",\"outlined\":\"\",\"items\":_vm.StockOptions,\"label\":_vm.$t('stock_type'),\"item-text\":\"Name\",\"item-value\":\"Id\",\"disabled\":!_vm.StockOptions || _vm.StockOptions.length == 0},model:{value:(_vm.company.StockTypeId),callback:function ($$v) {_vm.$set(_vm.company, \"StockTypeId\", $$v)},expression:\"company.StockTypeId\"}}),_c(VTextField,{attrs:{\"label\":_vm.$tc('adhesion_term', 1)},model:{value:(_vm.company.AdhesionContractClickSignlKey[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.AdhesionContractClickSignlKey, _vm.$i18n.locale, $$v)},expression:\"company.AdhesionContractClickSignlKey[$i18n.locale]\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('newsletter_subscription')},model:{value:(_vm.company.NewsletterSubscriptionClickSignlKey[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.NewsletterSubscriptionClickSignlKey, _vm.$i18n.locale, $$v)},expression:\"company.NewsletterSubscriptionClickSignlKey[$i18n.locale]\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('commitment_term_anvil')},model:{value:(_vm.company.CommitmentTermAnvilUrl[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.CommitmentTermAnvilUrl, _vm.$i18n.locale, $$v)},expression:\"company.CommitmentTermAnvilUrl[$i18n.locale]\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('investment_proxy_pj_anvil')},model:{value:(_vm.company.InvestmentProxyPJAnvilUrl[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.InvestmentProxyPJAnvilUrl, _vm.$i18n.locale, $$v)},expression:\"company.InvestmentProxyPJAnvilUrl[$i18n.locale]\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('investment_proxy_pf_anvil')},model:{value:(_vm.company.InvestmentProxyPFAnvilUrl[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.InvestmentProxyPFAnvilUrl, _vm.$i18n.locale, $$v)},expression:\"company.InvestmentProxyPFAnvilUrl[$i18n.locale]\"}}),_c('span',{staticStyle:{\"font-size\":\"14px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"commitment_term_text\")))]),_c('quill-editor',{ref:\"myQuillEditor\",staticClass:\"my-4\",model:{value:(_vm.company.CommitmentTermText[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.CommitmentTermText, _vm.$i18n.locale, $$v)},expression:\"company.CommitmentTermText[$i18n.locale]\"}}),_c('span',{staticStyle:{\"font-size\":\"14px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"investment_proxy_pj_text\")))]),_c('quill-editor',{ref:\"myQuillEditor\",staticClass:\"my-4\",model:{value:(_vm.company.InvestmentProxyPJText[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.InvestmentProxyPJText, _vm.$i18n.locale, $$v)},expression:\"company.InvestmentProxyPJText[$i18n.locale]\"}}),_c('span',{staticStyle:{\"font-size\":\"14px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"investment_proxy_pf_text\")))]),_c('quill-editor',{ref:\"myQuillEditor\",staticClass:\"my-4\",model:{value:(_vm.company.InvestmentProxyPFText[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.InvestmentProxyPFText, _vm.$i18n.locale, $$v)},expression:\"company.InvestmentProxyPFText[$i18n.locale]\"}})],1)],1),_c(VExpansionPanel,{staticClass:\"mt-1\"},[_c(VExpansionPanelHeader,[_vm._v(\" \"+_vm._s(_vm.$t(\"investment_vehicle\"))+\" \")]),_c(VExpansionPanelContent,[_c(VCombobox,{attrs:{\"label\":_vm.$t('select_vehicles'),\"items\":_vm.vehiclesOptions,\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\",\"solo\":\"\",\"outlined\":\"\"},model:{value:(_vm.vehiclesSelected),callback:function ($$v) {_vm.vehiclesSelected=$$v},expression:\"vehiclesSelected\"}})],1)],1),_c(VExpansionPanel,{staticClass:\"mt-1\"},[_c(VExpansionPanelHeader,[_vm._v(\" \"+_vm._s(_vm.$t(\"video_options\"))+\" \")]),_c(VExpansionPanelContent,[_c('div',{staticClass:\"mt-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"is_details_playlist\")))]),_c(VRadioGroup,{attrs:{\"center\":\"\",\"row\":\"\"},model:{value:(_vm.company.IsDetailsPlaylist),callback:function ($$v) {_vm.$set(_vm.company, \"IsDetailsPlaylist\", $$v)},expression:\"company.IsDetailsPlaylist\"}},[_c(VRadio,{attrs:{\"label\":_vm.$t('playlist'),\"value\":true}}),_c(VRadio,{attrs:{\"label\":_vm.$tc('video', 1),\"value\":false}})],1)],1),_c(VTextField,{staticClass:\"mt-0 pt-0 mb-3\",attrs:{\"label\":_vm.$t('details_video'),\"hint\":_vm.$tc('vimeo_hint', 2)},model:{value:(_vm.company.DetailsVideo[_vm.$i18n.locale]),callback:function ($$v) {_vm.$set(_vm.company.DetailsVideo, _vm.$i18n.locale, $$v)},expression:\"company.DetailsVideo[$i18n.locale]\"}})],1)],1),_c(VExpansionPanel,{staticClass:\"mt-1\"},[_c(VExpansionPanelHeader,[_vm._v(\" \"+_vm._s(_vm.$t(\"overall\"))+\" \")]),_c(VExpansionPanelContent,[_c(VSelect,{attrs:{\"solo\":\"\",\"outlined\":\"\",\"items\":_vm.categories,\"label\":_vm.$tc('category', 1),\"item-value\":\"id\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.translateCategoryOption(item))+\" \")]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.translateCategoryOption(item))+\" \")]}}]),model:{value:(_vm.company.CategoryId),callback:function ($$v) {_vm.$set(_vm.company, \"CategoryId\", $$v)},expression:\"company.CategoryId\"}}),_c('div',{staticClass:\"mt-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"is_showcased\")))]),_c(VRadioGroup,{attrs:{\"center\":\"\",\"row\":\"\"},model:{value:(_vm.company.Showcased),callback:function ($$v) {_vm.$set(_vm.company, \"Showcased\", $$v)},expression:\"company.Showcased\"}},[_c(VRadio,{attrs:{\"label\":_vm.$t('yes'),\"value\":true}}),_c(VRadio,{attrs:{\"label\":_vm.$t('no'),\"value\":false}})],1)],1),(_vm.company.Showcased)?_c('div',[_c('span',[_vm._v(_vm._s(_vm.$t(\"pipeline_category\")))]),_c(VRadioGroup,{attrs:{\"center\":\"\",\"row\":\"\"},on:{\"change\":_vm.pipeline_category_changed},model:{value:(_vm.company.PipelineCategory),callback:function ($$v) {_vm.$set(_vm.company, \"PipelineCategory\", $$v)},expression:\"company.PipelineCategory\"}},[_c(VRadio,{attrs:{\"label\":_vm.$t('ongoing_opts'),\"value\":0}}),_c(VRadio,{attrs:{\"label\":_vm.$t('portfolio_companies'),\"value\":1}}),(_vm.roundsEnv === 'FALSE')?_c(VRadio,{attrs:{\"label\":_vm.$t('exclusive_opportunities'),\"value\":2}}):_vm._e()],1),(_vm.pipelineIndexOptions.length > 0)?_c(VSelect,{attrs:{\"items\":_vm.pipelineIndexOptions[_vm.company.PipelineCategory],\"label\":_vm.$t('index'),\"outlined\":\"\"},model:{value:(_vm.company.PipelineIndex),callback:function ($$v) {_vm.$set(_vm.company, \"PipelineIndex\", $$v)},expression:\"company.PipelineIndex\"}}):_vm._e()],1):_vm._e()],1)],1),_c(VExpansionPanel,{staticClass:\"mt-1\"},[_c(VExpansionPanelHeader,[_vm._v(\" \"+_vm._s(_vm.$t(\"photo_options\"))+\" \")]),_c(VExpansionPanelContent,[_c('span',[_vm._v(_vm._s(_vm.$t(\"banner\")))]),_c('div',{staticClass:\"mt-1\"},[_c(VRow,{attrs:{\"align\":\"center\"}},[(_vm.company.Base64Banner != null)?_c(VImg,{staticClass:\"ml-3\",attrs:{\"src\":_vm.company.Base64Banner,\"max-height\":\"5rem\",\"max-width\":\"5rem\"}}):(_vm.company.Banner != null)?_c(VImg,{staticClass:\"ml-3\",attrs:{\"src\":_vm.show_photo(_vm.company.Banner),\"max-height\":\"5rem\",\"max-width\":\"5rem\"}}):_vm._e(),_c('input',{ref:\"imageBannerInput\",staticClass:\"ml-4\",attrs:{\"id\":\"imageBannerInput\",\"name\":\"imageBannerInput\",\"type\":\"file\",\"accept\":\"image/png, image/jpeg, image/bmp\"},on:{\"change\":_vm.setImageBanner}})],1)],1),_c('div',{staticClass:\"mt-2 mb-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"logo\")))]),_c('div',{staticClass:\"mt-1\"},[_c(VRow,{attrs:{\"align\":\"center\"}},[(_vm.company.Base64Logo != null)?_c(VImg,{staticClass:\"ml-3\",attrs:{\"src\":_vm.company.Base64Logo,\"max-height\":\"5rem\",\"max-width\":\"5rem\"}}):(_vm.company.Logo != null)?_c(VImg,{staticClass:\"ml-3\",attrs:{\"src\":_vm.show_photo(_vm.company.Logo),\"max-height\":\"5rem\",\"max-width\":\"5rem\"}}):_vm._e(),_c('input',{ref:\"imageLogoInput\",staticClass:\"ml-4\",attrs:{\"id\":\"imageLogoInput\",\"name\":\"imageLogoInput\",\"type\":\"file\",\"accept\":\"image/png, image/jpeg, image/bmp\"},on:{\"change\":_vm.setImageLogo}})],1)],1)])])],1)],1),_c(VCardActions,{staticClass:\"pl-0 dxa_modal_actions\"},[_c(VBtn,{staticClass:\"dxa_modal_btnSuccess\",attrs:{\"color\":\"primary\",\"min-width\":\"100\",\"loading\":_vm.loading,\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.$t(\"save\")))]),_c(VBtn,{staticClass:\"dxa_modal_btnError\",attrs:{\"color\":\"secondary\",\"min-width\":\"100\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_vm._v(_vm._s(_vm.$t(\"go_back\")))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Basic.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Basic.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Basic.vue?vue&type=template&id=6aaa9ffb&\"\nimport script from \"./Basic.vue?vue&type=script&lang=js&\"\nexport * from \"./Basic.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"quill\")):\"function\"==typeof define&&define.amd?define([\"quill\"],e):\"object\"==typeof exports?exports.VueQuillEditor=e(require(\"quill\")):t.VueQuillEditor=e(t.Quill)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var l=n[i]={i:i,l:!1,exports:{}};return t[i].call(l.exports,l,l.exports,e),l.l=!0,l.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=2)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(4),l=n.n(i),o=n(6),r=n(5),u=r(l.a,o.a,!1,null,null,null);e.default=u.exports},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.install=e.quillEditor=e.Quill=void 0;var l=n(0),o=i(l),r=n(1),u=i(r),s=window.Quill||o.default,a=function(t,e){e&&(u.default.props.globalOptions.default=function(){return e}),t.component(u.default.name,u.default)},c={Quill:s,quillEditor:u.default,install:a};e.default=c,e.Quill=s,e.quillEditor=u.default,e.install=a},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={theme:\"snow\",boundary:document.body,modules:{toolbar:[[\"bold\",\"italic\",\"underline\",\"strike\"],[\"blockquote\",\"code-block\"],[{header:1},{header:2}],[{list:\"ordered\"},{list:\"bullet\"}],[{script:\"sub\"},{script:\"super\"}],[{indent:\"-1\"},{indent:\"+1\"}],[{direction:\"rtl\"}],[{size:[\"small\",!1,\"large\",\"huge\"]}],[{header:[1,2,3,4,5,6,!1]}],[{color:[]},{background:[]}],[{font:[]}],[{align:[]}],[\"clean\"],[\"link\",\"image\",\"video\"]]},placeholder:\"Insert text here ...\",readOnly:!1}},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var l=n(0),o=i(l),r=n(3),u=i(r),s=window.Quill||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),i=1;i

\"===l&&(l=\"\"),t._content=l,t.$emit(\"input\",t._content),t.$emit(\"change\",{html:l,text:r,quill:o})}),this.$emit(\"ready\",this.quill))}},watch:{content:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},value:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},disabled:function(t,e){this.quill&&this.quill.enable(!t)}}}},function(t,e){t.exports=function(t,e,n,i,l,o){var r,u=t=t||{},s=typeof t.default;\"object\"!==s&&\"function\"!==s||(r=t,u=t.default);var a=\"function\"==typeof u?u.options:u;e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0),n&&(a.functional=!0),l&&(a._scopeId=l);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},a._ssrRegister=c):i&&(c=i),c){var d=a.functional,f=d?a.render:a.beforeCreate;d?(a._injectStyles=c,a.render=function(t,e){return c.call(e),f(t,e)}):a.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:u,options:a}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"quill-editor\"},[t._t(\"toolbar\"),t._v(\" \"),n(\"div\",{ref:\"editor\"})],2)},l=[],o={render:i,staticRenderFns:l};e.a=o}])});","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ticks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}