{"version":3,"sources":["webpack:///./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/api/iBeauty/Goods/generalCard.js","webpack:///./src/views/iBeauty/Goods/generalCard.vue?b1ae","webpack:///./src/views/iBeauty/Goods/Components/ShowGoodsDetail.vue?c4af","webpack:///./src/components/js/utils.js","webpack:///./src/views/iBeauty/Goods/Components/ShowGoodsDetail.vue?76a3","webpack:///src/views/iBeauty/Goods/Components/ShowGoodsDetail.vue","webpack:///./src/views/iBeauty/Goods/Components/ShowGoodsDetail.vue?1a52","webpack:///./src/views/iBeauty/Goods/Components/ShowGoodsDetail.vue","webpack:///./node_modules/base64-js/index.js","webpack:///./src/components/js/permission.js","webpack:///./src/assets/img/titlebar.png","webpack:///./src/views/iBeauty/Goods/generalCard.vue?6946","webpack:///src/views/iBeauty/Goods/generalCard.vue","webpack:///./src/views/iBeauty/Goods/generalCard.vue?3b0d","webpack:///./src/views/iBeauty/Goods/generalCard.vue","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///./src/views/iBeauty/Goods/Components/GoodsDetail.vue?946c","webpack:///./src/views/iBeauty/Goods/Components/GoodsDetail.vue?bd84","webpack:///src/views/iBeauty/Goods/Components/GoodsDetail.vue","webpack:///./src/views/iBeauty/Goods/Components/GoodsDetail.vue?97b1","webpack:///./src/views/iBeauty/Goods/Components/GoodsDetail.vue","webpack:///./node_modules/isarray/index.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","getGeneralCardCategory","params","API","getGeneralCardList","getFindCategoryAndProject","getGeneralCardProject","getGeneralCardSaleEntity","generalCardConsumeEntity","createGeneralCardCategory","updateGeneralCard","createGeneralCard","getEntityList","getGeneralCardDetails","getBase64Image","img","width","height","canvas","document","createElement","ctx","getContext","drawImage","dataURL","toDataURL","getCanvasBase64","Promise","resolve","image","Image","crossOrigin","src","onload","base64","throttle","fn","wait","pre","Date","now","context","this","args","arguments","apply","debounce","delay","timer","that","clearTimeout","setTimeout","deepClone","result","Array","key","hasOwnProperty","render","_vm","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","_l","item","index","url","_v","_s","_f","Price","OriginalText_","_e","GoodsType","Name","_t","domProps","Memo_1","staticRenderFns","editorOption","ImageList_","Memo_","dragOptions","animation","watch","ImageList","newVal","Memo","OriginalText","component","exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","Enumerable","require","permission","isPermission","from","where","PermissionCode","select","val","IsPermission","toArray","routerPermission","path","route","matcher","match","name","module","directives","rawName","value","expression","nativeOn","$event","type","_k","keyCode","handleSearch","on","model","callback","$$v","searchKey","generalCardCategoryID","ID","isUpperShelf","showAddDialog","ref","generalCardList","scopedSlots","_u","scope","row","IsAllowLargess","IsAllowSell","showEditDialog","paginations","total","page","page_size","layout","handleCurrentChange","$set","dialogTitle","dialogVisible","activeName","ruleForm_add","rules_add","slot","ValidType","Memo_change","ImageListChange","Amount","ValidDay","generalCardProjectList","ApplyNum","filterProjectName","addSetDetails","filter","data","toLowerCase","includes","generalCardSaleEntityList","defaultCheckedKeysSale","defaultExpandedKeysSale","scopeDefaultProps","generalCardConsumpEntityList","defaultCheckedKeysConsume","defaultExpandedKeysConsume","updateLoading","submitForm","showDialogVisible","Alias","GeneralCardCategory","saleDate","Remark","addScopeDialogState","filterText","generalCardProject","defaultProps","defaultCheckedKeysApplyApp","filterNode","selectApplicableItems","node","IsProject","selectedTableData","deleteSelectRow","$index","cancelAddScopeOfApp","submitAddScopeOfApp","addClassificationDialog","addClassificationRuleForm","addClassificationRuleForm_rules","cancelAddClassificationForm","submitAddClassificationForm","components","goodsDetail","showGoodsDetail","loading","generalCardCategoryList","entityList","children","label","specification","unit","GeneralCardCategoryID","cycleNumber","isGeneralCardEdit","isGeneralCardNew","computed","methods","PageNum","Object","assign","$refs","validate","valid","ProjectID","ConsumeAmount","LimitConsumeTimes","SaleStartDate","SaleEndingDate","GeneralCardSaleEntity","GeneralCardConsumeEntity","GeneralCardProject","$message","error","getMemo","Active","setAttrRecursion","forEach","PID","Child","SearchKey","list","checkedNodes","Set","addClassification","formName","resetFields","defaultCheckedKeys","$nextTick","treeRef","setCheckedKeys","state","splice","dropdownClick","handleCheckAllChange","checked","items","beforeRouteEnter","next","vm","mounted","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","write","c","rt","abs","isNaN","floor","log","LN2","root","factory","self","modules","installedModules","__webpack_require__","moduleId","l","call","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","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","find","query","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","b","__","ParchmentError","_super","message","_this","attributes","classes","tags","types","input","BlotClass","Node","TEXT_NODE","bubble","DATA_KEY","blot","parentNode","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","split","tagName","TYPE","Definitions","_i","map","Definition","blotName","attrName","keyName","className","isArray","toUpperCase","tagNames","tag","diff","equal","extend","op","NULL_CHARACTER","String","fromCharCode","Delta","ops","insert","text","newOp","keys","retain","lastOp","unshift","chop","pop","predicate","partition","passed","failed","target","reduce","initial","changeLength","elem","delete","slice","iter","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","min","thisOp","otherOp","rest","concat","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","toString","gOPD","getOwnPropertyDescriptor","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","options","newValue","writable","getProperty","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","undefined","_createClass","defineProperties","props","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","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","formats","values","attribute","BLOCK_ATTRIBUTE","format","def","endsWith","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","shift","tail","head","remove","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_slicedToArray","sliceIterator","_arr","_n","_d","done","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","debug","Quill","container","html","innerHTML","trim","classList","add","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","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","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","_this4","sources","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","left","right","getLength","_overload7","_overload8","getContents","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","getText","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","emit","_map","pos","_map2","_map3","max","_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","listeners","event","_len2","_key2","_ref","handler","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","getTime","objEquiv","isUndefinedOrNull","isBuffer","x","a","ka","kb","sort","attributeBit","ATTRIBUTE","canAdd","replace","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","bullet","_toConsumableArray","arr2","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","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","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","reject","then","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","global","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","test","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","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","preventDefault","makeEmbedArrowHandler","_ref3","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","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","parseInt","sanitize","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","element","Picker","buildPicker","style","display","togglePicker","escape","option","tabIndex","hasAttribute","selectItem","id","buildItem","selected","buildLabel","buildOptions","close","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","camelize","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","timestamp","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","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","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","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","str","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","nodeType","window","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","parseFloat","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","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","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","t","r","u","install","quillEditor","globalOptions","boundary","script","size","color","background","font","_options","_content","defaultOptions","content","disabled","Boolean","required","initialize","beforeDestroy","$el","pasteHTML","$emit","setText","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","f","beforeCreate","_injectStyles","esModule","_extends","_objectSpread","ownKeys","sym","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","pattern","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","css","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getElementsByTagName","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","visible","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastElementChild","previousElementSibling","nodeName","getRelativeScrollOffset","offsetLeft","winScroller","scrollLeft","indexOfObject","includeSelf","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","dst","isRectEqual","rect1","rect2","round","ms","cancelThrottle","scrollBy","Polymer","$","jQuery","Zepto","dom","setRect","unsetRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","easing","animated","sqrt","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","pluginEvent","sortable","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","CustomEvent","bubbles","cancelable","to","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","sum","_saveInputCheckedState","inputs","idx","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","isContentEditable","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","handleEvent","destroy","utils","is","nextTick","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","swapNodes","swapItem","n1","n2","i1","i2","p1","p2","isEqualNode","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","deselect","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","arg","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","string","isEncoding","fromArrayLike","array","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","__WEBPACK_EXTERNAL_MODULE_a352__","toStringTag","LIBRARY","$export","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","P","F","toInteger","defined","TO_STRING","at","S","unicode","anObject","sticky","$keys","enumBugKeys","O","dP","getKeys","Properties","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","exec","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","isObject","it","cof","ARG","tryGet","T","B","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","open","uid","USE_SYMBOL","$exports","INCLUDES","createDesc","toObject","ObjectProto","bitmap","MATCH","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","classof","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","A","K","k","aLen","getSymbols","isEnum","__g","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","rx","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","ch","isRegExp","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","forced","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","__webpack_exports__","insertNodeAt","removeNode","getConsole","cached","hit","regex","parentElement","fatherNode","g","px","random","addToUnscopables","step","iterated","Arguments","STARTS_WITH","$startsWith","search","currentScript","scripts","readyState","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_nonIterableRest","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","elt","elm","_computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","componentOptions","getSlot","scopedSlot","computeChildrenAndOffsets","headerOffset","footer","getComponentAttributes","$attrs","componentData","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","draggableComponent","inheritAttrs","transitionMode","noneFunctionalComponentMode","h","$slots","_computeChildrenAndOf","$scopedSlots","getTag","created","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedInList","draggedContext","futureIndex","sendEvt","onDragEnd","Vue","vuedraggable","commodityMainbeforeUpload","commodityMainRemove","file","preview_src_list","DialogPreview","OriginalText_Change","onEditorChange","isShowOriginal","isLt2M","status","getElementById","toolbarOptions"],"mappings":"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","file":"chunk-3c126173.1739001309915.js","sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","/**\r\n * Created by jerry on 2020/03/24.\r\n * 通用次卡api\r\n */\r\nimport * as API from '@/api/index'\r\n\r\nexport default {\r\n // 获取通用次卡分类列表\r\n getGeneralCardCategory: params => {\r\n return API.POST('api/generalCardCategory/all',params)\r\n },\r\n // 获取通用次卡列表\r\n getGeneralCardList: params => {\r\n return API.POST('api/generalCard/list',params)\r\n },\r\n // 获取项目分类以及分类下项目\r\n getFindCategoryAndProject: params => {\r\n return API.POST('api/generalCard/findCategoryAndProject',params)\r\n },\r\n // 获取通用次卡适用项目\r\n getGeneralCardProject: params => {\r\n return API.POST('api/generalCard/generalCardProject',params)\r\n },\r\n // 获取通用次卡销售范围\r\n getGeneralCardSaleEntity: params => {\r\n return API.POST('api/generalCard/generalCardSaleEntity',params)\r\n },\r\n // 获取通用次卡消耗范围\r\n generalCardConsumeEntity: params => {\r\n return API.POST('api/generalCard/generalCardConsumeEntity',params)\r\n },\r\n // 创建通用次卡分类\r\n createGeneralCardCategory: params => {\r\n return API.POST('api/generalCardCategory/create',params)\r\n },\r\n // 更新通用次卡信息\r\n updateGeneralCard: params => {\r\n return API.POST('api/generalCard/update',params)\r\n },\r\n // 创建通用次卡\r\n createGeneralCard:params => {\r\n return API.POST('api/generalCard/create',params)\r\n },\r\n // 新增销售范围、消耗范围 获取权限范围\r\n getEntityList:params => {\r\n return API.POST('api/entity/list',params)\r\n },\r\n // 通用次卡详情\r\n getGeneralCardDetails:params => {\r\n return API.POST('api/generalCard/getGeneralCardDetails',params)\r\n },\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalCard.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowGoodsDetail.vue?vue&type=style&index=0&lang=scss&\"","\r\nfunction getBase64Image(img, width, height) {\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.width = width ? width : img.width;\r\n canvas.height = height ? height : img.height;\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n var dataURL = canvas.toDataURL();\r\n return dataURL;\r\n}\r\n\r\n\r\nexport default {\r\n // 通过图片地址获取 base64\r\n getCanvasBase64(img) {\r\n return new Promise((resolve) => {\r\n var image = new Image();\r\n //至关重要\r\n image.crossOrigin = '';\r\n image.src = img;\r\n //至关重要\r\n if (img) {\r\n image.onload = function () {\r\n let base64 = getBase64Image(image);//将base64传给done上传处理\r\n resolve(base64);//将base64传给done上传处理\r\n //document.getElementById(\"container2\").appendChild(image);\r\n }\r\n // return deferred;//问题要让onload完成后再return sessionStorage['imgTest']\r\n }\r\n })\r\n },\r\n // 函数节流\r\n throttle(fn,wait){\r\n var pre = Date.now();\r\n wait = wait || 500;\r\n return function(){\r\n var context = this;\r\n var args = arguments;\r\n var now = Date.now();\r\n if( now - pre >= wait){\r\n fn.apply(context,args);\r\n pre = Date.now();\r\n }\r\n }\r\n },\r\n\r\n /** * 函数防抖 */\r\n debounce(fn, delay) {\r\n // 记录上一次的延时器\r\n var timer = null;\r\n delay = delay || 200;\r\n return function() {\r\n var args = arguments;\r\n var that = this;\r\n // 清除上一次延时器\r\n clearTimeout(timer)\r\n timer = setTimeout(function() {\r\n fn.apply(that,args)\r\n }, delay);\r\n }\r\n },\r\n // 深拷贝\r\n deepClone(obj) {\r\n // 判断传入目标 类型 \r\n if (typeof obj !== \"object\") {\r\n return obj;\r\n } else {\r\n var result = (obj instanceof Array) ? [] : {};\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n result[key] = this.deepClone(obj[key]);\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ShowGoodsDetail\"},[_c('div',{staticStyle:{\"width\":\"375px\",\"height\":\"580px\"}},[_c('el-image',{staticStyle:{\"display\":\"block\"},attrs:{\"src\":require('@/assets/img/titlebar.png')}}),_c('el-scrollbar',{staticStyle:{\"height\":\"580px\"}},[_c('div',{staticClass:\"border_left border_right border_bottom\"},[_c('el-carousel',{attrs:{\"height\":\"250px\",\"arrow\":\"never\"}},_vm._l((_vm.ImageList_),function(item,index){return _c('el-carousel-item',{key:index},[_c('el-image',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":item.url,\"fit\":\"fill\"}})],1)}),1),_c('el-row',{staticClass:\"pad_10\",staticStyle:{\"border-bottom\":\"5px solid #eeeeee\"}},[_c('el-col',{attrs:{\"span\":24}},[_c('span',{staticClass:\"font_15 font_weight_600 color_red\"},[_vm._v(\" ¥ \"+_vm._s(_vm._f(\"NumFormat\")(_vm.Price)))]),(_vm.isShowOriginal)?_c('span',{staticClass:\"font_12 color_gray marlt_20\",staticStyle:{\"text-decoration\":\"line-through\"}},[_vm._v(_vm._s(_vm.OriginalText_))]):_vm._e()]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_c('el-tag',{attrs:{\"type\":\"danger\",\"size\":\"small\"}},[_vm._v(_vm._s(_vm.GoodsType))]),_c('span',{staticClass:\"font_13 color_333 marlt_10\"},[_vm._v(_vm._s(_vm.Name))])],1)],1),_c('div',[_vm._t(\"info\")],2),_c('el-row',{staticClass:\"pad_10\"},[_c('el-col',{attrs:{\"span\":24},domProps:{\"innerHTML\":_vm._s(_vm.Memo_1)}},[_vm._v(\"商品详情\")])],1)],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowGoodsDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowGoodsDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShowGoodsDetail.vue?vue&type=template&id=2db32c0f&\"\nimport script from \"./ShowGoodsDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./ShowGoodsDetail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShowGoodsDetail.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","import route from \"../../router\";\r\n\r\nvar Enumerable = require(\"linq\");\r\n\r\nexport default {\r\n permission: function (permission, code) {\r\n var isPermission = Enumerable.from(permission)\r\n .where(function (i) {\r\n return i.PermissionCode == code\r\n })\r\n .select(val => val.IsPermission)\r\n .toArray()\r\n\r\n return isPermission[0] || false;\r\n },\r\n routerPermission:function(path){\r\n return route.matcher.match(path).name!=\"Home\";\r\n },\r\n}","module.exports = __webpack_public_path__ + \"img/titlebar.99a42e8f.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"content_body GeneralCard\"},[_c('div',{staticClass:\"nav_header\"},[_c('el-row',[_c('el-col',{attrs:{\"span\":20}},[_c('el-form',{attrs:{\"inline\":true,\"size\":\"small\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleSearch($event)}}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡名称\"}},[_c('el-input',{attrs:{\"clearable\":\"\",\"placeholder\":\"输入通用次名称或别名\"},on:{\"clear\":_vm.handleSearch},model:{value:(_vm.searchKey),callback:function ($$v) {_vm.searchKey=$$v},expression:\"searchKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"通用次卡分类\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择通用次卡分类\",\"clearable\":\"\",\"filterable\":\"\"},on:{\"change\":_vm.handleSearch,\"clear\":_vm.handleSearch},model:{value:(_vm.generalCardCategoryID),callback:function ($$v) {_vm.generalCardCategoryID=$$v},expression:\"generalCardCategoryID\"}},_vm._l((_vm.generalCardCategoryList),function(item){return _c('el-option',{key:item.ID,attrs:{\"label\":item.Name,\"value\":item.ID}})}),1)],1),_c('el-form-item',{attrs:{\"label\":\"是否上架\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择是否上架\",\"clearable\":\"\"},on:{\"change\":_vm.handleSearch,\"clear\":_vm.handleSearch},model:{value:(_vm.isUpperShelf),callback:function ($$v) {_vm.isUpperShelf=$$v},expression:\"isUpperShelf\"}},[_c('el-option',{attrs:{\"label\":\"是\",\"value\":true}}),_c('el-option',{attrs:{\"label\":\"否\",\"value\":false}})],1)],1),_c('el-form-item',[_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleSearch}},[_vm._v(\"搜索\")])],1)],1)],1),_c('el-col',{staticClass:\"text_right\",attrs:{\"span\":4}},[(_vm.isGeneralCardNew)?_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.showAddDialog}},[_vm._v(\"新增\")]):_vm._e()],1)],1)],1),_c('div',{staticClass:\"martp_10\"},[_c('el-table',{ref:\"multipleTable\",attrs:{\"size\":\"small\",\"data\":_vm.generalCardList}},[_c('el-table-column',{attrs:{\"prop\":\"Name\",\"label\":\"通用次卡名称\"}}),_c('el-table-column',{attrs:{\"prop\":\"Alias\",\"label\":\"通用次卡别名\"}}),_c('el-table-column',{attrs:{\"prop\":\"GeneralCardCategoryName\",\"label\":\"通用次卡分类\"}}),_c('el-table-column',{attrs:{\"prop\":\"Price\",\"label\":\"销售价格\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"¥\"+_vm._s(_vm._f(\"NumFormat\")(scope.row.Price)))]}}])}),_c('el-table-column',{attrs:{\"prop\":\"Amount\",\"label\":\"通用次卡次数\"}}),_c('el-table-column',{attrs:{\"prop\":\"ValidDayName\",\"label\":\"有效期\"}}),_c('el-table-column',{attrs:{\"label\":\"是否可以赠送\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(_vm._s(scope.row.IsAllowLargess ? \"是\" : \"否\"))]}}])}),_c('el-table-column',{attrs:{\"label\":\"是否上架\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(_vm._s(scope.row.IsAllowSell ? \"是\" : \"否\"))]}}])}),_c('el-table-column',{attrs:{\"label\":\"操作\",\"width\":\"145\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(_vm.isGeneralCardEdit)?_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showEditDialog(scope.row,'edit')}}},[_vm._v(\"编辑\")]):_vm._e(),_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showEditDialog(scope.row,'show')}}},[_vm._v(\"详情\")])]}}])})],1),(false)?_c('div',{staticClass:\"pad_15 dis_flex flex_x_between\"},[_c('div',[_c('el-dropdown',{attrs:{\"trigger\":\"click\",\"size\":\"small\"},on:{\"command\":_vm.dropdownClick}},[_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\",\"size\":\"small\"}},[_vm._v(\" 批量设置 \"),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})]),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{attrs:{\"command\":\"1\"}},[_vm._v(\"分类\")]),_c('el-dropdown-item',{attrs:{\"command\":\"2\"}},[_vm._v(\"售卖日期\")]),_c('el-dropdown-item',{attrs:{\"command\":\"3\"}},[_vm._v(\"卡有效期\")]),_c('el-dropdown-item',{attrs:{\"command\":\"4\"}},[_vm._v(\"是否上架\")]),_c('el-dropdown-item',{attrs:{\"command\":\"5\"}},[_vm._v(\"是否可以赠送\")]),_c('el-dropdown-item',{attrs:{\"command\":\"6\"}},[_vm._v(\"销售范围\")])],1)],1)],1)]):_vm._e(),_c('div',{staticClass:\"text_right pad_15\"},[(_vm.paginations.total > 0)?_c('el-pagination',{attrs:{\"background\":\"\",\"current-page\":_vm.paginations.page,\"page-size\":_vm.paginations.page_size,\"layout\":_vm.paginations.layout,\"total\":_vm.paginations.total},on:{\"current-change\":_vm.handleCurrentChange,\"update:currentPage\":function($event){return _vm.$set(_vm.paginations, \"page\", $event)},\"update:current-page\":function($event){return _vm.$set(_vm.paginations, \"page\", $event)}}}):_vm._e()],1)],1),_c('el-dialog',{attrs:{\"title\":_vm.dialogTitle,\"visible\":_vm.dialogVisible,\"close-on-click-modal\":false,\"width\":\"980px\"},on:{\"update:visible\":function($event){_vm.dialogVisible=$event}}},[_c('el-tabs',{model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"基本信息\",\"name\":\"1\"}},[_c('div',{staticClass:\"pad_15\"},[_c('el-form',{ref:\"ruleForm_add\",attrs:{\"model\":_vm.ruleForm_add,\"rules\":_vm.rules_add,\"label-width\":\"120px\",\"size\":\"small\"}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡名称\",\"prop\":\"Name\"}},[_c('el-input',{model:{value:(_vm.ruleForm_add.Name),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"Name\", $$v)},expression:\"ruleForm_add.Name\"}})],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡别名\"}},[_c('el-input',{model:{value:(_vm.ruleForm_add.Alias),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"Alias\", $$v)},expression:\"ruleForm_add.Alias\"}})],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡分类\",\"prop\":\"GeneralCardCategoryID\"}},[_c('el-select',{staticStyle:{\"position\":\"absolute\"},attrs:{\"placeholder\":\"请选择通用次卡分类\",\"clearable\":\"\",\"filterable\":\"\"},model:{value:(_vm.ruleForm_add.GeneralCardCategoryID),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"GeneralCardCategoryID\", $$v)},expression:\"ruleForm_add.GeneralCardCategoryID\"}},_vm._l((_vm.generalCardCategoryList),function(item){return _c('el-option',{key:item.ID,attrs:{\"label\":item.Name,\"value\":item.ID}})}),1)],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"卡次数\",\"prop\":\"Amount\"}},[_c('el-input',{directives:[{name:\"enter-number\",rawName:\"v-enter-number\"}],attrs:{\"type\":\"number\"},model:{value:(_vm.ruleForm_add.Amount),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"Amount\", $$v)},expression:\"ruleForm_add.Amount\"}},[_c('template',{slot:\"append\"},[_vm._v(\"次\")])],2)],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"销售价格\",\"prop\":\"Price\"}},[_c('el-input',{directives:[{name:\"positiveNumber\",rawName:\"v-positiveNumber\"}],model:{value:(_vm.ruleForm_add.Price),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"Price\", $$v)},expression:\"ruleForm_add.Price\"}},[_c('template',{slot:\"append\"},[_vm._v(\"元\")])],2)],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"售卖日期\",\"prop\":\"saleDate\"}},[_c('el-date-picker',{attrs:{\"clearable\":\"\",\"size\":\"small\",\"type\":\"daterange\",\"range-separator\":\"至\",\"start-placeholder\":\"开始日期\",\"end-placeholder\":\"结束日期\",\"unlink-panels\":\"\"},model:{value:(_vm.ruleForm_add.saleDate),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"saleDate\", $$v)},expression:\"ruleForm_add.saleDate\"}})],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"是否上架\",\"prop\":\"IsAllowSell\"}},[_c('el-radio-group',{model:{value:(_vm.ruleForm_add.IsAllowSell),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"IsAllowSell\", $$v)},expression:\"ruleForm_add.IsAllowSell\"}},[_c('el-radio',{attrs:{\"label\":true}},[_vm._v(\"是\")]),_c('el-radio',{attrs:{\"label\":false}},[_vm._v(\"否\")])],1)],1)],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"是否可赠送\",\"prop\":\"IsAllowLargess\"}},[_c('el-radio-group',{model:{value:(_vm.ruleForm_add.IsAllowLargess),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"IsAllowLargess\", $$v)},expression:\"ruleForm_add.IsAllowLargess\"}},[_c('el-radio',{attrs:{\"label\":true}},[_vm._v(\"是\")]),_c('el-radio',{attrs:{\"label\":false}},[_vm._v(\"否\")])],1)],1)],1),_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"卡有效期\",\"prop\":\"ValidType\"}},[_c('div',[_c('el-radio-group',{model:{value:(_vm.ruleForm_add.ValidType),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"ValidType\", $$v)},expression:\"ruleForm_add.ValidType\"}},[_c('el-radio',{attrs:{\"label\":3}},[_vm._v(\"永久有效\")]),_c('el-radio',{attrs:{\"label\":1}},[_vm._v(\"销售后生成\")]),_c('el-radio',{attrs:{\"label\":2}},[_vm._v(\"消耗后生成\")])],1),(_vm.ruleForm_add.ValidType != 3)?_c('span',[_c('el-input',{directives:[{name:\"enter-number\",rawName:\"v-enter-number\"},{name:\"enterNumber2\",rawName:\"v-enterNumber2\"}],staticClass:\"radio_input\",attrs:{\"type\":\"number\",\"min\":\"0\"},model:{value:(_vm.ruleForm_add.ValidDay),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"ValidDay\", $$v)},expression:\"ruleForm_add.ValidDay\"}},[_c('template',{slot:\"append\"},[_vm._v(\"天\")])],2)],1):_vm._e()],1)])],1),_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"备注信息\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":4,\"placeholder\":\"请输入备注信息\"},model:{value:(_vm.ruleForm_add.Remark),callback:function ($$v) {_vm.$set(_vm.ruleForm_add, \"Remark\", $$v)},expression:\"ruleForm_add.Remark\"}})],1)],1)],1)],1)]),_c('el-tab-pane',{attrs:{\"label\":\"详细信息\",\"name\":\"5\"}},[_c('div',{staticClass:\"dis_flex flex_dir_row\"},[_c('goodsDetail',{ref:\"goodsDetail\",attrs:{\"Memo\":_vm.ruleForm_add.Memo,\"ImageList\":_vm.ruleForm_add.ImageList,\"OriginalText\":_vm.ruleForm_add.OriginalText,\"Price\":_vm.ruleForm_add.Price,\"Name\":_vm.ruleForm_add.Name,\"isShowOriginal\":false,\"GoodsType\":\"通用次卡\"},on:{\"Memo_change\":_vm.Memo_change,\"ImageListChange\":_vm.ImageListChange}},[_c('el-row',{attrs:{\"slot\":\"info\"},slot:\"info\"},[_c('el-col',{staticClass:\"padlt_10 padrt_10\",staticStyle:{\"height\":\"40px\",\"line-height\":\"40px\"},attrs:{\"span\":24}},[_vm._v(\"商品信息\")]),_c('el-col',{staticClass:\"back_f8 pad_10\",attrs:{\"span\":24}},[_c('el-col',{attrs:{\"span\":24}},[_vm._v(\"卡次数: \"+_vm._s(_vm.ruleForm_add.Amount)+\" 次\")]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_vm._v(\"有效期: \"),(_vm.ruleForm_add.ValidType == 1)?_c('span',[_vm._v(\"购买后 \"+_vm._s(_vm.ruleForm_add.ValidDay)+\" 天内有效\")]):_vm._e(),(_vm.ruleForm_add.ValidType == 2)?_c('span',[_vm._v(\"第一次使用后 \"+_vm._s(_vm.ruleForm_add.ValidDay)+\" 天内有效\")]):_vm._e(),(_vm.ruleForm_add.ValidType == 3)?_c('span',[_vm._v(\"永久有效\")]):_vm._e()]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_vm._v(\"适用项目: 适用共 \"+_vm._s(_vm.generalCardProjectList.length)+\" 个项目 \"),_c('span',{staticStyle:{\"color\":\"#FF8D66\"}},[_vm._v(\"查看详情\")])]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_vm._v(\"适用门店: 适用共 \"+_vm._s(_vm.ruleForm_add.ApplyNum)+\" 家门店 \"),_c('span',{staticStyle:{\"color\":\"#FF8D66\"}},[_vm._v(\"查看门店\")])])],1)],1)],1)],1)]),_c('el-tab-pane',{attrs:{\"label\":\"适用项目\",\"name\":\"4\"}},[_c('el-row',{staticClass:\"marbm_10\",attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-input',{attrs:{\"placeholder\":\"输入项目名称搜索\",\"size\":\"small\",\"clearable\":\"\"},model:{value:(_vm.filterProjectName),callback:function ($$v) {_vm.filterProjectName=$$v},expression:\"filterProjectName\"}})],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.addSetDetails}},[_vm._v(\"配置适用项目\")])],1)],1),_c('el-table',{attrs:{\"size\":\"small\",\"data\":_vm.generalCardProjectList.filter(\n function (data) { return !_vm.filterProjectName ||\n data.Name.toLowerCase().includes(\n _vm.filterProjectName.toLowerCase()\n ); }\n ),\"max-height\":\"400\"}},[_c('el-table-column',{attrs:{\"prop\":\"Name\",\"label\":\"项目名称\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"prop\":\"ProjectCategoryName\",\"label\":\"项目分类\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"prop\":\"Price\",\"label\":\"项目销售价格\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"prop\":\"ConsumeAmount\",\"label\":\"耗卡次数\",\"sortable\":\"\"}},[_c('template',{slot:\"header\"},[_vm._v(\" 耗卡次数 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"通用次卡消耗项目时,项目需要耗掉多少次。\")]),_c('el-button',{staticStyle:{\"color\":\"#DCDFE6\",\"padding\":\"0\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1)],2),_c('el-table-column',{attrs:{\"prop\":\"LimitConsumeTimes\",\"label\":\"最高消耗次数\",\"sortable\":\"\"}},[_c('template',{slot:\"header\"},[_vm._v(\" 最高消耗次数 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"通用次卡消耗项目时,项目最多消耗次数。\")]),_c('el-button',{staticStyle:{\"color\":\"#DCDFE6\",\"padding\":\"0\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1)],2)],1)],1),_c('el-tab-pane',{attrs:{\"label\":\"销售范围\",\"name\":\"2\"}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_vm._v(\" 销售范围 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"适用于同级所有节点,则只需勾选父节点。\")]),_c('p',[_vm._v(\"比如:适用于所有节点,只需勾选“顶级/第一个”节点。\")]),_c('el-button',{staticStyle:{\"color\":\"#dcdfe6\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1),_c('el-scrollbar',{staticClass:\"el-scrollbar_height\"},[_c('el-tree',{ref:\"treeSale\",attrs:{\"expand-on-click-node\":false,\"check-on-click-node\":true,\"check-strictly\":true,\"data\":_vm.generalCardSaleEntityList,\"show-checkbox\":\"\",\"node-key\":\"ID\",\"default-checked-keys\":_vm.defaultCheckedKeysSale,\"default-expanded-keys\":_vm.defaultExpandedKeysSale,\"props\":_vm.scopeDefaultProps}})],1)],1),_c('el-tab-pane',{attrs:{\"label\":\"消耗范围\",\"name\":\"3\"}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_vm._v(\" 消耗范围 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"适用于同级所有节点,则只需勾选父节点。\")]),_c('p',[_vm._v(\"比如:适用于所有节点,只需勾选“顶级/第一个”节点。\")]),_c('el-button',{staticStyle:{\"color\":\"#dcdfe6\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1),_c('el-scrollbar',{staticClass:\"el-scrollbar_height\"},[_c('el-tree',{ref:\"treeConsume\",attrs:{\"expand-on-click-node\":false,\"check-on-click-node\":true,\"check-strictly\":true,\"data\":_vm.generalCardConsumpEntityList,\"show-checkbox\":\"\",\"node-key\":\"ID\",\"default-checked-keys\":_vm.defaultCheckedKeysConsume,\"default-expanded-keys\":_vm.defaultExpandedKeysConsume,\"props\":_vm.scopeDefaultProps}})],1)],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"size\":\"small\"},on:{\"click\":function($event){_vm.dialogVisible = false}}},[_vm._v(\"取 消\")]),_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"size\":\"small\",\"type\":\"primary\",\"loading\":_vm.updateLoading},on:{\"click\":function($event){return _vm.submitForm('ruleForm_add')}}},[_vm._v(\"保 存\")])],1)],1),_c('el-dialog',{attrs:{\"title\":_vm.dialogTitle,\"visible\":_vm.showDialogVisible,\"width\":\"980px\"},on:{\"update:visible\":function($event){_vm.showDialogVisible=$event}}},[_c('el-tabs',{model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"基本信息\",\"name\":\"1\"}},[_c('div',{staticClass:\"pad_15\"},[_c('el-form',{staticClass:\"generalShow\",attrs:{\"label-width\":\"150px\",\"size\":\"small\"}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡名称:\"}},[_c('span',[_vm._v(_vm._s(_vm.ruleForm_add.Name))])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡别名:\"}},[_c('span',[_vm._v(_vm._s(_vm.ruleForm_add.Alias))])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"通用次卡分类:\"}},[_c('span',[_vm._v(_vm._s(_vm.GeneralCardCategory))])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"卡次数:\"}},[_c('span',[_vm._v(_vm._s(_vm.ruleForm_add.Amount)+\"次\")])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"销售价格:\"}},[_c('span',[_vm._v(_vm._s(_vm.ruleForm_add.Price)+\"元\")])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"售卖日期:\"}},[_c('span',[_vm._v(_vm._s(_vm.saleDate))])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"是否上架:\"}},[(_vm.ruleForm_add.IsAllowSell)?_c('span',[_vm._v(\"是\")]):_c('span',[_vm._v(\"否\")])])],1),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"是否可赠送:\"}},[(_vm.ruleForm_add.IsAllowLargess)?_c('span',[_vm._v(\"是\")]):_c('span',[_vm._v(\"否\")])])],1),_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"卡有效期:\"}},[(_vm.ruleForm_add.ValidType==3)?_c('span',[_vm._v(\"永久有效\")]):(_vm.ruleForm_add.ValidType==1)?_c('span',[_vm._v(\"销售后生成\"+_vm._s(_vm.ruleForm_add.ValidDay)+\"天\")]):_c('span',[_vm._v(\"消耗后生成\"+_vm._s(_vm.ruleForm_add.ValidDay)+\"天\")])])],1),_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"备注信息:\"}},[_c('span',[_vm._v(_vm._s(_vm.ruleForm_add.Remark))])])],1)],1)],1)]),_c('el-tab-pane',{attrs:{\"label\":\"详细信息\",\"name\":\"2\"}},[_c('div',{staticClass:\"dis_flex flex_x_center\"},[_c('showGoodsDetail',{ref:\"ShowGoodsDetail\",attrs:{\"Memo\":_vm.ruleForm_add.Memo,\"ImageList\":_vm.ruleForm_add.ImageList,\"OriginalText\":_vm.ruleForm_add.OriginalText,\"Price\":_vm.ruleForm_add.Price,\"Name\":_vm.ruleForm_add.Name,\"isShowOriginal\":false,\"GoodsType\":\"通用次卡\"}},[_c('el-row',{attrs:{\"slot\":\"info\"},slot:\"info\"},[_c('el-col',{staticClass:\"padlt_10 padrt_10\",staticStyle:{\"height\":\"40px\",\"line-height\":\"40px\"},attrs:{\"span\":24}},[_vm._v(\"商品信息\")]),_c('el-col',{staticClass:\"back_f8 pad_10\",attrs:{\"span\":24}},[_c('el-col',{attrs:{\"span\":24}},[_vm._v(\"卡次数: \"+_vm._s(_vm.ruleForm_add.Amount)+\" 次\")]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_vm._v(\"有效期: \"),(_vm.ruleForm_add.ValidType == 1)?_c('span',[_vm._v(\"购买后 \"+_vm._s(_vm.ruleForm_add.ValidDay)+\" 天内有效\")]):_vm._e(),(_vm.ruleForm_add.ValidType == 2)?_c('span',[_vm._v(\"第一次使用后 \"+_vm._s(_vm.ruleForm_add.ValidDay)+\" 天内有效\")]):_vm._e(),(_vm.ruleForm_add.ValidType == 3)?_c('span',[_vm._v(\"永久有效\")]):_vm._e()]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_vm._v(\"适用项目: 适用共 \"+_vm._s(_vm.generalCardProjectList.length)+\" 个项目 \"),_c('span',{staticStyle:{\"color\":\"#FF8D66\"}},[_vm._v(\"查看详情\")])]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_vm._v(\"适用门店: 适用共 \"+_vm._s(_vm.ruleForm_add.ApplyNum)+\" 家门店 \"),_c('span',{staticStyle:{\"color\":\"#FF8D66\"}},[_vm._v(\"查看门店\")])])],1)],1)],1)],1)]),_c('el-tab-pane',{attrs:{\"label\":\"适用项目\",\"name\":\"4\"}},[_c('el-row',{staticClass:\"marbm_10\",attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-input',{attrs:{\"placeholder\":\"输入项目名称搜索\",\"size\":\"small\",\"clearable\":\"\"},model:{value:(_vm.filterProjectName),callback:function ($$v) {_vm.filterProjectName=$$v},expression:\"filterProjectName\"}})],1),_c('el-col',{attrs:{\"span\":12}})],1),_c('el-table',{attrs:{\"size\":\"small\",\"data\":_vm.generalCardProjectList.filter(\n function (data) { return !_vm.filterProjectName ||\n data.Name.toLowerCase().includes(\n _vm.filterProjectName.toLowerCase()\n ); }\n ),\"max-height\":\"400\"}},[_c('el-table-column',{attrs:{\"prop\":\"Name\",\"label\":\"项目名称\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"prop\":\"ProjectCategoryName\",\"label\":\"项目分类\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"prop\":\"Price\",\"label\":\"项目销售价格\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"prop\":\"ConsumeAmount\",\"label\":\"耗卡次数\",\"sortable\":\"\"}},[_c('template',{slot:\"header\"},[_vm._v(\" 耗卡次数 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"通用次卡消耗项目时,项目需要耗掉多少次。\")]),_c('el-button',{staticStyle:{\"color\":\"#ffffff\",\"padding\":\"0\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1)],2),_c('el-table-column',{attrs:{\"prop\":\"LimitConsumeTimes\",\"label\":\"最高消耗次数\",\"sortable\":\"\"}},[_c('template',{slot:\"header\"},[_vm._v(\" 最高消耗次数 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"通用次卡消耗项目时,项目最多消耗次数。\")]),_c('el-button',{staticStyle:{\"color\":\"#ffffff\",\"padding\":\"0\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1)],2)],1)],1)],1)],1),_c('el-dialog',{attrs:{\"visible\":_vm.addScopeDialogState,\"width\":\"900px\"},on:{\"update:visible\":function($event){_vm.addScopeDialogState=$event}}},[_c('template',{slot:\"title\"},[_c('span',[_vm._v(\"配置通用次卡适用项目\")])]),[_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_c('el-input',{attrs:{\"placeholder\":\"输入关键字进行搜索\",\"size\":\"small\",\"clearable\":\"\"},model:{value:(_vm.filterText),callback:function ($$v) {_vm.filterText=$$v},expression:\"filterText\"}}),_c('el-scrollbar',{staticClass:\"el-scrollbar_height\"},[_c('el-tree',{ref:\"treeRef\",staticClass:\"filter-tree\",attrs:{\"data\":_vm.generalCardProject,\"show-checkbox\":\"\",\"node-key\":\"PID\",\"accordion\":\"\",\"highlight-current\":\"\",\"props\":_vm.defaultProps,\"default-checked-keys\":_vm.defaultCheckedKeysApplyApp,\"filter-node-method\":_vm.filterNode},on:{\"check\":_vm.selectApplicableItems},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var node = ref.node;\n var data = ref.data;\nreturn _c('span',{},[_c('span',[_vm._v(_vm._s(data.Name))]),(!data.IsProject)?_c('el-tag',{staticClass:\"marlt_5\",attrs:{\"type\":\"info\",\"size\":\"mini\"}},[_vm._v(\"分类\")]):_vm._e()],1)}}])})],1)],1),_c('el-col',{staticClass:\"border_left\",attrs:{\"span\":16}},[_c('el-table',{attrs:{\"size\":\"small\",\"data\":_vm.selectedTableData.filter(\n function (data) { return !_vm.filterText ||\n data.Name.toLowerCase().includes(_vm.filterText.toLowerCase()); }\n ),\"max-height\":\"500px\"}},[_c('el-table-column',{attrs:{\"prop\":\"Name\",\"label\":\"项目名称\"}}),_c('el-table-column',{attrs:{\"prop\":\"Price\",\"label\":\"销售价格\"}}),_c('el-table-column',{attrs:{\"label\":\"耗卡次数\",\"width\":\"135px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{directives:[{name:\"enter-number\",rawName:\"v-enter-number\"}],attrs:{\"type\":\"text\",\"size\":\"small\"},model:{value:(scope.row.ConsumeAmount),callback:function ($$v) {_vm.$set(scope.row, \"ConsumeAmount\", $$v)},expression:\"scope.row.ConsumeAmount\"}},[_c('template',{slot:\"append\"},[_vm._v(\"次\")])],2)]}}])},[_c('template',{slot:\"header\"},[_vm._v(\" 耗卡次数 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"通用次卡消耗项目时,项目需要耗掉多少次。\")]),_c('el-button',{staticStyle:{\"color\":\"#DCDFE6\",\"padding\":\"0\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1)],2),_c('el-table-column',{attrs:{\"label\":\"最高消耗次数\",\"width\":\"135px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{directives:[{name:\"enter-number\",rawName:\"v-enter-number\"}],attrs:{\"type\":\"text\",\"size\":\"small\"},model:{value:(scope.row.LimitConsumeTimes),callback:function ($$v) {_vm.$set(scope.row, \"LimitConsumeTimes\", $$v)},expression:\"scope.row.LimitConsumeTimes\"}},[_c('template',{slot:\"append\"},[_vm._v(\"次\")])],2)]}}])},[_c('template',{slot:\"header\"},[_vm._v(\" 最高消耗次数 \"),_c('el-popover',{attrs:{\"placement\":\"top-start\",\"width\":\"200\",\"trigger\":\"hover\"}},[_c('p',[_vm._v(\"通用次卡消耗项目时,项目最多消耗次数。\")]),_c('p',[_vm._v(\"0表示不限制消耗次数。\")]),_c('el-button',{staticStyle:{\"color\":\"#DCDFE6\",\"padding\":\"0\"},attrs:{\"slot\":\"reference\",\"type\":\"text\",\"icon\":\"el-icon-info\"},slot:\"reference\"})],1)],1)],2),_c('el-table-column',{attrs:{\"label\":\"操作\",\"width\":\"80px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"danger\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.deleteSelectRow(scope.row, scope.$index)}}},[_vm._v(\"删除\")])]}}])})],1)],1)],1)],_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"size\":\"small\"},on:{\"click\":_vm.cancelAddScopeOfApp}},[_vm._v(\"取 消\")]),_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.submitAddScopeOfApp}},[_vm._v(\"确 认\")])],1)],2),_c('el-dialog',{attrs:{\"title\":\"添加分类\",\"visible\":_vm.addClassificationDialog,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.addClassificationDialog=$event}}},[_c('el-form',{ref:\"addClassificationRuleForm\",staticClass:\"demo-ruleForm\",attrs:{\"model\":_vm.addClassificationRuleForm,\"rules\":_vm.addClassificationRuleForm_rules,\"label-width\":\"100px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":\"分类名称\",\"prop\":\"Name\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入分类名称\"},model:{value:(_vm.addClassificationRuleForm.Name),callback:function ($$v) {_vm.$set(_vm.addClassificationRuleForm, \"Name\", $$v)},expression:\"addClassificationRuleForm.Name\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"size\":\"small\"},on:{\"click\":function($event){return _vm.cancelAddClassificationForm('addClassificationRuleForm')}}},[_vm._v(\"取 消\")]),_c('el-button',{directives:[{name:\"prevent-click\",rawName:\"v-prevent-click\"}],attrs:{\"type\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.submitAddClassificationForm('addClassificationRuleForm')}}},[_vm._v(\"确 定\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalCard.vue?vue&type=template&id=4911770f&\"\nimport script from \"./generalCard.vue?vue&type=script&lang=js&\"\nexport * from \"./generalCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalCard.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\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}])});","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoodsDetail.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"GoodsDetail\"},[_c('div',{staticClass:\"dis_flex flex_dir_row\"},[_c('div',{staticStyle:{\"width\":\"375px\",\"height\":\"580px\"}},[_c('el-image',{staticStyle:{\"display\":\"block\"},attrs:{\"src\":require('@/assets/img/titlebar.png')}}),_c('el-scrollbar',{staticStyle:{\"height\":\"580px\"}},[_c('div',{staticClass:\"border_left border_right border_bottom\"},[_c('el-carousel',{attrs:{\"height\":\"250px\",\"arrow\":\"never\"}},_vm._l((_vm.ImageList_),function(item,index){return _c('el-carousel-item',{key:index},[_c('el-image',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":item.url,\"fit\":\"fill\"}})],1)}),1),_c('el-row',{staticClass:\"pad_10\",staticStyle:{\"border-bottom\":\"5px solid #eeeeee\"}},[_c('el-col',{attrs:{\"span\":24}},[_c('span',{staticClass:\"font_15 font_weight_600 color_red\"},[_vm._v(\" ¥ \"+_vm._s(_vm._f(\"NumFormat\")(_vm.Price)))]),(_vm.isShowOriginal)?_c('span',{staticClass:\"font_12 color_gray marlt_20\",staticStyle:{\"text-decoration\":\"line-through\"}},[_vm._v(_vm._s(_vm.OriginalText_))]):_vm._e()]),_c('el-col',{staticClass:\"martp_5\",attrs:{\"span\":24}},[_c('el-tag',{attrs:{\"type\":\"danger\",\"size\":\"small\"}},[_vm._v(_vm._s(_vm.GoodsType))]),_c('span',{staticClass:\"font_13 color_333 marlt_10\"},[_vm._v(_vm._s(_vm.Name))])],1)],1),_c('div',[_vm._t(\"info\")],2),_c('el-row',{staticClass:\"pad_10\"},[_c('el-col',{staticClass:\"ql-editor\",attrs:{\"span\":24},domProps:{\"innerHTML\":_vm._s(_vm.Memo_1)}},[_vm._v(\"商品详情\")])],1)],1)])],1),_c('div',{staticClass:\"marlt_10 flex_box\"},[_c('el-scrollbar',{staticClass:\"el-scrollbar_height\",staticStyle:{\"height\":\"580px\"}},[_c('el-form',{attrs:{\"label-width\":\"120px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":\"商品主图:\"}},[_c('div',{staticClass:\"switchBox pad_0_10 dis_flex flex_x_between flex_y_center\"},[_c('span',[_vm._v(\"主图\"),_c('span',{staticClass:\"marlt_10 color_999\"},[_vm._v(\"最多上传五张,建议尺寸710*278px\")])])]),_c('el-upload',{staticClass:\"avatar-uploader\",attrs:{\"limit\":5,\"list-type\":\"picture-card\",\"action\":\"#\",\"file-list\":_vm.ImageList_,\"before-upload\":_vm.commodityMainbeforeUpload,\"on-remove\":_vm.commodityMainRemove},scopedSlots:_vm._u([{key:\"file\",fn:function(ref){\nvar file = ref.file;\nreturn _c('div',{staticStyle:{\"height\":\"100px\",\"widht\":\"100px\"}},[_c('el-image',{staticClass:\"el-upload-list__item-thumbnail\",attrs:{\"id\":file.uid,\"src\":file.url,\"preview-src-list\":_vm.preview_src_list,\"z-index\":9999,\"fit\":\"cover\"}}),_c('span',{staticClass:\"el-upload-list__item-actions\"},[_c('span',{staticClass:\"el-upload-list__item-preview\",on:{\"click\":function($event){return _vm.DialogPreview(file)}}},[_c('i',{staticClass:\"el-icon-zoom-in\"})]),_c('span',{staticClass:\"el-upload-list__item-preview\",on:{\"click\":function($event){return _vm.commodityMainRemove(file)}}},[_c('i',{staticClass:\"el-icon-delete\"})])])],1)}}])},[_c('i',{staticClass:\"el-icon-plus avatar-uploader-icon\"})])],1),(_vm.isShowOriginal)?_c('el-form-item',{attrs:{\"label\":\"划线价格:\"}},[_c('el-input',{attrs:{\"size\":\"small\"},on:{\"change\":_vm.OriginalText_Change},model:{value:(_vm.OriginalText_),callback:function ($$v) {_vm.OriginalText_=$$v},expression:\"OriginalText_\"}})],1):_vm._e(),_c('el-form-item',{attrs:{\"label\":\"商品详情:\"}},[_c('quill-editor',{ref:\"myTextEditor\",staticStyle:{\"width\":\"90%\",\"height\":\"400px\"},attrs:{\"options\":_vm.editorOption},on:{\"change\":function($event){return _vm.onEditorChange($event)}},model:{value:(_vm.Memo_),callback:function ($$v) {_vm.Memo_=$$v},expression:\"Memo_\"}})],1)],1)],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoodsDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GoodsDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GoodsDetail.vue?vue&type=template&id=1969eee4&\"\nimport script from \"./GoodsDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./GoodsDetail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GoodsDetail.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"sourceRoot":""}