{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack:///./src/views/Admin/News/Index.vue?2c7e","webpack:///./src/views/Admin/News/TableMixin.js","webpack:///./src/views/Admin/News/IndexMixin.js","webpack:///./src/views/Admin/News/Create.vue?e663","webpack:///src/views/Admin/News/Create.vue","webpack:///./src/views/Admin/News/Create.vue?ab71","webpack:///./src/views/Admin/News/Create.vue","webpack:///./src/views/Admin/News/Edit.vue?7b05","webpack:///src/views/Admin/News/Edit.vue","webpack:///./src/views/Admin/News/Edit.vue?daf5","webpack:///./src/views/Admin/News/Edit.vue","webpack:///src/views/Admin/News/Index.vue","webpack:///./src/views/Admin/News/Index.vue?a28c","webpack:///./src/views/Admin/News/Index.vue","webpack:///./src/views/Admin/News/Edit.vue?7613","webpack:///./node_modules/bootstrap-vue/esm/icons/helpers/make-icon.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icons.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","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/core-js/modules/es.array.splice.js","webpack:///./node_modules/bootstrap-vue/esm/icons/helpers/icon-base.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./src/views/Admin/News/Create.vue?ecb0","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./src/views/Admin/News/Index.vue?1b85","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","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","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","vnode","config","title","undefined","trigger","placement","fallbackPlacement","container","animation","offset","html","interactive","disabled","delay","boundary","String","boundaryPadding","variant","customClass","show","hide","arg","concat","modifiers","mod","test","slice","selectedTriggers","trim","toLowerCase","split","applyTooltip","el","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","bind","componentUpdated","$nextTick","unbind","_vm","this","_h","$createElement","_c","_self","loading","_v","staticClass","on","$event","stopPropagation","createModal","pageOptions","model","callback","$$v","perPage","expression","sortOptions","scopedSlots","_u","fn","proxy","sortBy","sortDesc","domProps","currentPage","items","fields","sortDirection","filterOn","onFiltered","_s","item","text","_e","getColor","color","message","directives","rawName","hidden","toggleHidden","pos","positionUp","positionDown","open","deleteModal","totalRows","created","updated","editModal","staticRenderFns","components","BFormGroup","BFormSelect","BPagination","BInputGroup","BFormInput","BInputGroupAppend","infoModal","content","computed","f","sortable","map","label","methods","filteredItems","info","index","button","JSON","stringify","$root","$emit","resetInfoModal","mounted","getNews","url","$http","get","then","res","finally","parse","find","payload","unshift","assign","splice","response","$swal","icon","showCancelButton","confirmButtonText","cancelButtonText","confirmButton","cancelButton","buttonsStyling","result","delete","visible","val","clearForm","ref","preventDefault","handleSubmit","resetForm","formData","options","$set","BSidebar","BButton","BFormSelectOption","BFormCheckbox","quillEditor","Ripple","event","type","Boolean","required","component","BOverlay","BRow","BCol","BCard","BCardBody","BCardTitle","BTable","BSpinner","Create","Edit","filters","currency","style","formatter","format","mixins","TableMixin","IndexMixin","kebabName","iconName","iconNameClass","iconTitle","replace","svgContent","stacked","BIconBlank","BIconDash","BIconPersonFill","BIconPlus","BIconX","$","$find","addToUnscopables","arrayMethodUsesToLength","FIND","SKIPS_HOLES","USES_TO_LENGTH","proto","forced","callbackfn","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","BVPopper","localShow","attachment","getAttachment","templateType","popperConfig","_this","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","_this2","$_popper","popperCreate","handleDestroy","$once","beforeMount","updatePopper","beforeDestroy","destroyPopper","destroyed","$el","parentNode","removeChild","toUpperCase","$refs","arrowOffset","width","destroy","scheduleUpdate","renderTemplate","_this3","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","templateClasses","noninteractive","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","mouseleave","focusin","focusout","$title","innerHTML","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","BVTooltip","activeTrigger","computedId","computedDelay","math","computedTriggers","identity","sort","isWithActiveTrigger","computedTemplateData","watch","newTriggers","oldTriggers","unListen","array","listen","handleTemplateUpdate","newValue","oldValue","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","noop","getTarget","document","body","scopeId","warn","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","propsData","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","_this4","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","defaultPrevented","addAriaDescribedby","force","tip","hideEvt","prevHoverState","leave","getTargetId","isInModal","isDropdown","clearTimeout","clearInterval","desc","_this5","d","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","setTimeout","_this11","read","buffer","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","s","NaN","Infinity","Math","pow","write","c","rt","abs","isNaN","floor","log","LN2","root","factory","module","self","modules","installedModules","__webpack_require__","moduleId","l","call","getter","o","n","__esModule","property","prototype","hasOwnProperty","p","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","query","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","b","__","constructor","ParchmentError","_super","attributes","classes","tags","types","input","match","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","tagName","TYPE","Definitions","_i","Definition","blotName","attrName","keyName","className","isArray","tagNames","tag","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","newOp","retain","lastOp","chop","pop","predicate","partition","passed","failed","reduce","initial","changeLength","elem","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","min","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","toString","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","src","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","Function","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","def","endsWith","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","shift","tail","head","remove","child","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_d","done","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","error","classList","add","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","init","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","contents","convert","setContents","clear","placeholder","readOnly","limit","level","imports","path","overwrite","startsWith","refNode","setRange","_overload","_overload2","deleteText","enabled","scrollTop","scrollIntoView","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_overload3","_overload4","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","getLength","_overload7","_overload8","getContents","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","insertEmbed","_overload11","_overload12","insertText","contains","off","once","dangerouslyPasteHTML","_overload13","_overload14","removeFormat","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","userConfig","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","args","emit","_map","_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","_len2","_key2","handler","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","objEquiv","isUndefinedOrNull","isBuffer","x","a","ka","kb","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","prev","optimize","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","CONTENTS","oldText","newText","diffDelta","combined","merged","image","list","bullet","_toConsumableArray","arr2","from","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","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","_","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","resolve","reject","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","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","navigator","platform","Keyboard","_Module","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","evt","binding","normalize","which","keyCode","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","_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","Picker","select","buildPicker","display","togglePicker","escape","option","tabIndex","hasAttribute","selectItem","buildItem","selected","buildLabel","buildOptions","close","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","now","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","pickers","picker","extendToolbar","buttons","icons","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","append","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","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","matcher","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","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","marginLeft","t","r","u","install","globalOptions","script","size","background","font","_options","_content","defaultOptions","initialize","pasteHTML","setText","_compiled","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","_t","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","ACCESSORS","0","1","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","A","k","to","O","actualStart","argumentsLength","baseAttrs","viewBox","focusable","stackedAttrs","flipH","flipV","fontScale","rotate","scale","shiftH","shiftV","BVIconBase","_class","hasScale","hasTransforms","hasShift","hasContent","transforms","$inner","fontSize","xmlns","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","string","isEncoding","fromArrayLike","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","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","includes","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","_watch","CLASS_NAME","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ariaLabel","ariaLabelledby","backdrop","backdropVariant","bgVariant","bodyClass","closeLabel","footerClass","headerClass","lazy","noCloseOnBackdrop","noCloseOnEsc","noCloseOnRouteChange","noEnforceFocus","noHeader","noHeaderClose","noSlide","shadow","sidebarClass","textVariant","zIndex","renderHeaderTitle","ctx","normalizeSlot","slotScope","safeId","renderHeaderClose","renderHeader","$content","$close","renderBody","renderFooter","$footer","renderContent","$header","isOpen","renderBackdrop","onBackdropClick","inheritAttrs","transitionProps","css","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","hasTitle","$scopedSlots","$slots","hasNormalizedSlot","titleId","computedAttrs","bvAttrs","emitState","fullPath","$_returnFocusEl","listenOnRoot","handleToggle","handleSync","activated","emitSync","state","onKeydown","onTopTrapFocus","tabables","enforceFocus","onBottomTrapFocus","onBeforeEnter","onAfterEnter","onAfterLeave","$sidebar","$backdrop","$tabTrapTop","$tabTrapBottom","keydown","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","inject","bvGroup","isChecked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","_methods","buttonVariant","formRadioCheckMixin","isBtnMode","isPlain","plain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","stateClass","handleFocus","$button","$label","for","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","debounce","isFunction","functionToCheck","getType","getStyleComputedProperty","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","subtract","scrollLeft","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","divider","search","splitRegex","mergeWithPrevious","index2","transformProp","popperStyles","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","PopperUtils"],"mappings":"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","file":"js/chunk-0d9cf1b5.f2e7d8bd.js","sourcesContent":["import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","'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","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-overlay',{attrs:{\"id\":\"overlay-background\",\"show\":_vm.loading,\"variant\":\"transparent\",\"opacity\":\"1\",\"blur\":\"2px\",\"rounded\":\"sm\"}},[_c('b-card',[_c('b-card-body',[_c('b-card-title',[_vm._v(\" Opções de Seguidores \"),_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"relief-primary\"},on:{\"click\":function($event){$event.stopPropagation();_vm.createModal = true}}},[_vm._v(\" Adicionar \")])],1)],1),_c('b-row',[_c('b-col',{staticClass:\"my-1\",attrs:{\"md\":\"3\",\"sm\":\"4\"}},[_c('b-form-group',{staticClass:\"mb-0\"},[_c('label',{staticClass:\"d-inline-block text-sm-left mr-50\"},[_vm._v(\"Por Página\")]),_c('b-form-select',{staticClass:\"w-25\",attrs:{\"id\":\"perPageSelect\",\"size\":\"sm\",\"options\":_vm.pageOptions},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)],1),_c('b-col',{staticClass:\"my-1\",attrs:{\"md\":\"5\",\"sm\":\"8\"}},[_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"label\":\"Ordenar Por\",\"label-cols-sm\":\"3\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"label-for\":\"sortBySelect\"}},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-select',{staticClass:\"w-75\",attrs:{\"id\":\"sortBySelect\",\"options\":_vm.sortOptions},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\" -- Nenhum -- \")])]},proxy:true}]),model:{value:(_vm.sortBy),callback:function ($$v) {_vm.sortBy=$$v},expression:\"sortBy\"}}),_c('b-form-select',{staticClass:\"w-25\",attrs:{\"size\":\"sm\",\"disabled\":!_vm.sortBy},model:{value:(_vm.sortDesc),callback:function ($$v) {_vm.sortDesc=$$v},expression:\"sortDesc\"}},[_c('option',{domProps:{\"value\":false}},[_vm._v(\" Asc \")]),_c('option',{domProps:{\"value\":true}},[_vm._v(\" Desc \")])])],1)],1)],1),_c('b-col',{staticClass:\"my-1\",attrs:{\"md\":\"4\"}},[_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"label\":\"Buscar\",\"label-cols-sm\":\"3\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"label-for\":\"filterInput\"}},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{attrs:{\"id\":\"filterInput\",\"type\":\"search\",\"placeholder\":\"Escreva o que deseja pesquisar.\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-input-group-append',[_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\" Limpar \")])],1)],1)],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-table',{attrs:{\"striped\":\"\",\"hover\":\"\",\"responsive\":\"\",\"per-page\":_vm.perPage,\"current-page\":_vm.currentPage,\"items\":_vm.items,\"fields\":_vm.fields,\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc,\"sort-direction\":_vm.sortDirection,\"filter\":_vm.filter,\"filter-included-fields\":_vm.filterOn},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event},\"filtered\":_vm.onFiltered},scopedSlots:_vm._u([{key:\"cell(text)\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.item.text.slice(0, 25))+\" \"),(data.item.text.length > 25)?_c('span',[_vm._v(\" ... \")]):_vm._e()]}},{key:\"cell(color)\",fn:function(data){return [_c('b-button',{attrs:{\"variant\":_vm.getColor(data.item.color).color}},[_vm._v(\" \"+_vm._s(_vm.getColor(data.item.color).message)+\" \")])]}},{key:\"cell(hidden)\",fn:function(data){return [_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Ativar/Desativar'),expression:\"'Ativar/Desativar'\",modifiers:{\"hover\":true,\"top\":true}},{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon rounded-circle\",attrs:{\"variant\":data.item.hidden === 0 ? 'success' : 'danger'},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleHidden(data.item)}}},[_c('feather-icon',{attrs:{\"icon\":data.item.hidden === 0 ? 'UnlockIcon' : 'LockIcon'}})],1)]}},{key:\"cell(pos)\",fn:function(data){return [_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Subir'),expression:\"'Subir'\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"mr-1\",attrs:{\"disabled\":data.item.pos === 1 || _vm.loading,\"size\":\"sm\",\"variant\":\"relief-primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.positionUp(data.item)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"ArrowUpIcon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1),_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Descer'),expression:\"'Descer'\",modifiers:{\"hover\":true,\"top\":true}}],attrs:{\"disabled\":(data.item.pos === _vm.items.length) || _vm.loading,\"size\":\"sm\",\"variant\":\"relief-primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.positionDown(data.item)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"ArrowDownIcon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1)]}},{key:\"cell(functions)\",fn:function(data){return [_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Editar'),expression:\"'Editar'\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"mr-1\",attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.open(data.item.id)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1),_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Deletar'),expression:\"'Deletar'\",modifiers:{\"hover\":true,\"top\":true}}],attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-danger\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteModal(data.item)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"Trash2Icon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1)]}}])})],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-pagination',{staticClass:\"my-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"align\":\"center\",\"size\":\"sm\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)],1),_c('Create',{on:{\"updated\":function($event){return _vm.created($event)}},model:{value:(_vm.createModal),callback:function ($$v) {_vm.createModal=$$v},expression:\"createModal\"}}),_c('Edit',{attrs:{\"item\":_vm.item},on:{\"updated\":function($event){return _vm.updated($event)}},model:{value:(_vm.editModal),callback:function ($$v) {_vm.editModal=$$v},expression:\"editModal\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\n BFormGroup,\n BFormSelect,\n BPagination,\n BInputGroup,\n BFormInput,\n BInputGroupAppend\n} from 'bootstrap-vue'\n\nexport default {\n components: {\n BFormGroup,\n BFormSelect,\n BPagination,\n BInputGroup,\n BFormInput,\n BInputGroupAppend\n },\n data: () => ({\n items: [],\n perPage: 10,\n pageOptions: [3, 5, 10, 25, 50, 100],\n totalRows: 1,\n currentPage: 1,\n sortBy: '',\n sortDesc: false,\n sortDirection: 'asc',\n filter: null,\n filterOn: [],\n infoModal: {\n id: 'info-modal',\n title: '',\n content: ''\n }\n }),\n computed: {\n sortOptions () {\n // Create an options list from our fields\n return this.fields\n .filter(f => f.sortable)\n .map(f => ({ text: f.label, value: f.key }))\n }\n },\n methods: {\n onFiltered (filteredItems) {\n // Trigger pagination to update the number of buttons/pages due to filtering\n this.totalRows = filteredItems.length\n this.currentPage = 1\n },\n info (item, index, button) {\n this.infoModal.title = `Row index: ${index}`\n this.infoModal.content = JSON.stringify(item, null, 2)\n this.$root.$emit('bv::show::modal', this.infoModal.id, button)\n },\n resetInfoModal () {\n this.infoModal.title = ''\n this.infoModal.content = ''\n }\n }\n}\n","export default {\n data: () => ({\n loading: true,\n createModal: false,\n editModal: false,\n item: {}\n }),\n async mounted () {\n await this.getNews()\n },\n methods: {\n async getNews () {\n const url = '/admin/news'\n await this.$http\n .get(url)\n .then(res => {\n this.items = res.data\n })\n .finally(() => {\n this.loading = false\n this.totalRows = this.items.length\n })\n },\n open (id) {\n this.item = JSON.parse(\n JSON.stringify(this.items.find(item => item.id === id))\n )\n this.editModal = true\n },\n created (payload) {\n // update all position to + 1\n this.items.forEach((item, index) => {\n if (item.pos >= payload.pos) {\n this.items[index].pos++\n }\n })\n\n this.items.unshift(payload)\n },\n updated (payload) {\n Object.assign(\n this.items.find(item => item.id === payload.id),\n payload\n )\n },\n async toggleHidden (item) {\n this.loading = true\n const url = `/admin/news/set_hidden/${item.id}`\n\n await this.$http.get(url)\n .finally(() => {\n this.items.find(i => i.id === item.id).hidden = item.hidden === 0 ? 1 : 0\n this.loading = false\n })\n },\n async positionUp (item) {\n this.loading = true\n const url = `/admin/news/position_up/${item.id}`\n\n if (item.pos === 1) {\n return\n }\n\n await this.$http.get(url)\n .finally(() => {\n // this.items.find(i => i.id === item.id).pos = item.pos - 1\n // this.items.find(i => i.id === item.id).pos = item.pos\n\n // up position\n const index = this.items.indexOf(item)\n this.items[index].pos--\n this.items[index - 1].pos++\n\n this.items.splice(index, 1)\n this.items.splice(index - 1, 0, item)\n this.loading = false\n })\n },\n async positionDown (item) {\n this.loading = true\n const url = `/admin/news/position_down/${item.id}`\n\n if (item.pos === this.items.length) {\n return\n }\n\n await this.$http.get(url)\n .finally(() => {\n const index = this.items.indexOf(item)\n this.items[index].pos++\n this.items[index + 1].pos--\n\n this.items.splice(index, 1)\n this.items.splice(index + 1, 0, item)\n this.loading = false\n })\n },\n getColor (color) {\n let response = {}\n\n switch (color) {\n case 'primary':\n response = {\n message: 'Azul',\n color: 'relief-primary'\n }\n break\n\n case 'secondary':\n response = {\n message: 'Cinza',\n color: 'relief-secondary'\n }\n break\n\n case 'success':\n response = {\n message: 'Verde',\n color: 'relief-success'\n }\n break\n\n case 'danger':\n response = {\n message: 'Vermelho',\n color: 'relief-danger'\n }\n break\n\n case 'warning':\n response = {\n message: 'Laranja',\n color: 'relief-warning'\n }\n break\n\n case 'info':\n response = {\n message: 'Azul Claro',\n color: 'relief-info'\n }\n break\n\n case 'dark':\n response = {\n message: 'Escuro',\n color: 'relief-dark'\n }\n break\n\n default:\n response = {\n message: 'Nenhum Serviço',\n color: 'relief-primary'\n }\n }\n\n return response\n },\n deleteModal (item) {\n this.$swal({\n title: `Você tem certeza que deseja deletar \"${item.name}\"?`,\n text: 'Essa ação não poderá ser desfeita!',\n icon: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Sim, deletar!',\n cancelButtonText: 'Fechar',\n customClass: {\n confirmButton: 'btn btn-primary',\n cancelButton: 'btn btn-outline-danger ml-1'\n },\n buttonsStyling: false\n }).then(result => {\n if (result.value) {\n this.delete(item.id)\n }\n })\n },\n async delete (id) {\n this.loading = true\n const url = `/admin/news/${id}`\n await this.$http\n .delete(url)\n .then(() => {\n this.$swal({\n icon: 'success',\n title: 'Deletado!',\n text: 'A Opção selecionada foi deletada com sucesso!',\n customClass: {\n confirmButton: 'btn btn-success'\n }\n })\n\n this.items = this.items.filter(item => item.id !== id)\n })\n .finally(() => {\n this.loading = false\n })\n }\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-sidebar',{attrs:{\"id\":\"sidebar-task-handler\",\"sidebar-class\":\"sidebar-lg\",\"visible\":_vm.visible,\"bg-variant\":\"white\",\"shadow\":\"\",\"backdrop\":\"\",\"no-header\":\"\",\"right\":\"\",\"width\":\"800px\"},on:{\"change\":function (val) { return _vm.$emit('update:visible', val); },\"hidden\":_vm.clearForm},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hide = ref.hide;\nreturn [_c('div',{staticClass:\"\\n d-flex\\n justify-content-between\\n align-items-center\\n content-sidebar-header\\n px-2\\n py-1\\n \"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Criar Serviço \")]),_c('div',[_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",attrs:{\"icon\":\"XIcon\",\"size\":\"16\"},on:{\"click\":hide}})],1)]),_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit()},\"reset\":function($event){$event.preventDefault();return _vm.resetForm.apply(null, arguments)}}},[_c('b-form-group',{attrs:{\"label\":\"API\",\"label-for\":\"color\"}},[_c('b-form-select',{attrs:{\"id\":\"color\",\"state\":_vm.formData.color === null ? false : true,\"options\":_vm.options},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('b-form-select-option',{attrs:{\"value\":null}},[_vm._v(\"Por favor, selecione uma API!\")])]},proxy:true}],null,true),model:{value:(_vm.formData.color),callback:function ($$v) {_vm.$set(_vm.formData, \"color\", $$v)},expression:\"formData.color\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Texto\",\"label-for\":\"text\"}},[_c('quill-editor',{model:{value:(_vm.formData.text),callback:function ($$v) {_vm.$set(_vm.formData, \"text\", $$v)},expression:\"formData.text\"}})],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mr-2\",attrs:{\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\" Salvar \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(186, 191, 199, 0.15)'),expression:\"'rgba(186, 191, 199, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"type\":\"reset\",\"variant\":\"outline-secondary\"}},[_vm._v(\" Limpar \")])],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Create.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!./Create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Create.vue?vue&type=template&id=3da65004&\"\nimport script from \"./Create.vue?vue&type=script&lang=js&\"\nexport * from \"./Create.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Create.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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-sidebar',{attrs:{\"id\":\"sidebar-task-handler\",\"sidebar-class\":\"sidebar-lg\",\"visible\":_vm.visible,\"bg-variant\":\"white\",\"shadow\":\"\",\"backdrop\":\"\",\"no-header\":\"\",\"right\":\"\",\"width\":\"800px\"},on:{\"change\":function (val) { return _vm.$emit('update:visible', val); },\"hidden\":_vm.clearForm},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hide = ref.hide;\nreturn [_c('div',{staticClass:\"\\n d-flex\\n justify-content-between\\n align-items-center\\n content-sidebar-header\\n px-2\\n py-1\\n \"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Editar Serviço \")]),_c('div',[_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",attrs:{\"icon\":\"XIcon\",\"size\":\"16\"},on:{\"click\":hide}})],1)]),_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit()},\"reset\":function($event){$event.preventDefault();return _vm.resetForm.apply(null, arguments)}}},[_c('b-form-group',{attrs:{\"label\":\"API\",\"label-for\":\"service-api-name\"}},[_c('b-form-select',{attrs:{\"id\":\"service-api-name\",\"state\":_vm.item.color === null ? false : true,\"options\":_vm.options},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('b-form-select-option',{attrs:{\"value\":null}},[_vm._v(\"Por favor, selecione uma API!\")])]},proxy:true}],null,true),model:{value:(_vm.item.color),callback:function ($$v) {_vm.$set(_vm.item, \"color\", $$v)},expression:\"item.color\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"service-description\"}},[_c('quill-editor',{model:{value:(_vm.item.text),callback:function ($$v) {_vm.$set(_vm.item, \"text\", $$v)},expression:\"item.text\"}})],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mr-2\",attrs:{\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\" Salvar \")]),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(186, 191, 199, 0.15)'),expression:\"'rgba(186, 191, 199, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"type\":\"reset\",\"variant\":\"outline-secondary\"}},[_vm._v(\" Limpar \")])],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Edit.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!./Edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Edit.vue?vue&type=template&id=78ef6d78&\"\nimport script from \"./Edit.vue?vue&type=script&lang=js&\"\nexport * from \"./Edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Edit.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","\n\n\n\n\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!./Index.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!./Index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=84431912&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Index.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","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!./Edit.vue?vue&type=style&index=0&lang=scss&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { kebabCase, pascalCase, trim } from '../../utils/string';\nimport { BVIconBase, props as BVIconBaseProps } from './icon-base';\n/**\n * Icon component generator function\n *\n * @param {string} icon name (minus the leading `BIcon`)\n * @param {string} raw `innerHTML` for SVG\n * @return {VueComponent}\n */\n\nexport var makeIcon = function makeIcon(name, content) {\n // For performance reason we pre-compute some values, so that\n // they are not computed on each render of the icon component\n var kebabName = kebabCase(name);\n var iconName = \"BIcon\".concat(pascalCase(name));\n var iconNameClass = \"bi-\".concat(kebabName);\n var iconTitle = kebabName.replace(/-/g, ' ');\n var svgContent = trim(content || '');\n return /*#__PURE__*/Vue.extend({\n name: iconName,\n functional: true,\n props: _objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n }),\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n return h(BVIconBase, mergeData( // Defaults\n {\n props: {\n title: iconTitle\n },\n attrs: {\n 'aria-label': iconTitle\n }\n }, // User data\n data, // Required data\n {\n staticClass: iconNameClass,\n props: _objectSpread(_objectSpread({}, props), {}, {\n content: svgContent\n })\n }));\n }\n });\n};","// --- BEGIN AUTO-GENERATED FILE ---\n//\n// @IconsVersion: 1.2.1\n// @Generated: 2020-12-16T17:45:59.062Z\n//\n// This file is generated on each build. Do not edit this file!\n/*!\n * BootstrapVue Icons, generated from Bootstrap Icons 1.2.1\n *\n * @link https://icons.getbootstrap.com/\n * @license MIT\n * https://github.com/twbs/icons/blob/master/LICENSE.md\n */import{makeIcon}from'./helpers/make-icon';// --- BootstrapVue custom icons ---\nexport var BIconBlank=/*#__PURE__*/makeIcon('Blank','');// --- Bootstrap Icons ---\n// eslint-disable-next-line\nexport var BIconAlarm=/*#__PURE__*/makeIcon('Alarm','');// eslint-disable-next-line\nexport var BIconAlarmFill=/*#__PURE__*/makeIcon('AlarmFill','');// eslint-disable-next-line\nexport var BIconAlignBottom=/*#__PURE__*/makeIcon('AlignBottom','');// eslint-disable-next-line\nexport var BIconAlignCenter=/*#__PURE__*/makeIcon('AlignCenter','');// eslint-disable-next-line\nexport var BIconAlignEnd=/*#__PURE__*/makeIcon('AlignEnd','');// eslint-disable-next-line\nexport var BIconAlignMiddle=/*#__PURE__*/makeIcon('AlignMiddle','');// eslint-disable-next-line\nexport var BIconAlignStart=/*#__PURE__*/makeIcon('AlignStart','');// eslint-disable-next-line\nexport var BIconAlignTop=/*#__PURE__*/makeIcon('AlignTop','');// eslint-disable-next-line\nexport var BIconAlt=/*#__PURE__*/makeIcon('Alt','');// eslint-disable-next-line\nexport var BIconApp=/*#__PURE__*/makeIcon('App','');// eslint-disable-next-line\nexport var BIconAppIndicator=/*#__PURE__*/makeIcon('AppIndicator','');// eslint-disable-next-line\nexport var BIconArchive=/*#__PURE__*/makeIcon('Archive','');// eslint-disable-next-line\nexport var BIconArchiveFill=/*#__PURE__*/makeIcon('ArchiveFill','');// eslint-disable-next-line\nexport var BIconArrow90degDown=/*#__PURE__*/makeIcon('Arrow90degDown','');// eslint-disable-next-line\nexport var BIconArrow90degLeft=/*#__PURE__*/makeIcon('Arrow90degLeft','');// eslint-disable-next-line\nexport var BIconArrow90degRight=/*#__PURE__*/makeIcon('Arrow90degRight','');// eslint-disable-next-line\nexport var BIconArrow90degUp=/*#__PURE__*/makeIcon('Arrow90degUp','');// eslint-disable-next-line\nexport var BIconArrowBarDown=/*#__PURE__*/makeIcon('ArrowBarDown','');// eslint-disable-next-line\nexport var BIconArrowBarLeft=/*#__PURE__*/makeIcon('ArrowBarLeft','');// eslint-disable-next-line\nexport var BIconArrowBarRight=/*#__PURE__*/makeIcon('ArrowBarRight','');// eslint-disable-next-line\nexport var BIconArrowBarUp=/*#__PURE__*/makeIcon('ArrowBarUp','');// eslint-disable-next-line\nexport var BIconArrowClockwise=/*#__PURE__*/makeIcon('ArrowClockwise','');// eslint-disable-next-line\nexport var BIconArrowCounterclockwise=/*#__PURE__*/makeIcon('ArrowCounterclockwise','');// eslint-disable-next-line\nexport var BIconArrowDown=/*#__PURE__*/makeIcon('ArrowDown','');// eslint-disable-next-line\nexport var BIconArrowDownCircle=/*#__PURE__*/makeIcon('ArrowDownCircle','');// eslint-disable-next-line\nexport var BIconArrowDownCircleFill=/*#__PURE__*/makeIcon('ArrowDownCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeft=/*#__PURE__*/makeIcon('ArrowDownLeft','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircle=/*#__PURE__*/makeIcon('ArrowDownLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircleFill=/*#__PURE__*/makeIcon('ArrowDownLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquare=/*#__PURE__*/makeIcon('ArrowDownLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquareFill=/*#__PURE__*/makeIcon('ArrowDownLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownRight=/*#__PURE__*/makeIcon('ArrowDownRight','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircle=/*#__PURE__*/makeIcon('ArrowDownRightCircle','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircleFill=/*#__PURE__*/makeIcon('ArrowDownRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquare=/*#__PURE__*/makeIcon('ArrowDownRightSquare','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquareFill=/*#__PURE__*/makeIcon('ArrowDownRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownShort=/*#__PURE__*/makeIcon('ArrowDownShort','');// eslint-disable-next-line\nexport var BIconArrowDownSquare=/*#__PURE__*/makeIcon('ArrowDownSquare','');// eslint-disable-next-line\nexport var BIconArrowDownSquareFill=/*#__PURE__*/makeIcon('ArrowDownSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownUp=/*#__PURE__*/makeIcon('ArrowDownUp','');// eslint-disable-next-line\nexport var BIconArrowLeft=/*#__PURE__*/makeIcon('ArrowLeft','');// eslint-disable-next-line\nexport var BIconArrowLeftCircle=/*#__PURE__*/makeIcon('ArrowLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowLeftCircleFill=/*#__PURE__*/makeIcon('ArrowLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowLeftRight=/*#__PURE__*/makeIcon('ArrowLeftRight','');// eslint-disable-next-line\nexport var BIconArrowLeftShort=/*#__PURE__*/makeIcon('ArrowLeftShort','');// eslint-disable-next-line\nexport var BIconArrowLeftSquare=/*#__PURE__*/makeIcon('ArrowLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowLeftSquareFill=/*#__PURE__*/makeIcon('ArrowLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowRepeat=/*#__PURE__*/makeIcon('ArrowRepeat','');// eslint-disable-next-line\nexport var BIconArrowReturnLeft=/*#__PURE__*/makeIcon('ArrowReturnLeft','');// eslint-disable-next-line\nexport var BIconArrowReturnRight=/*#__PURE__*/makeIcon('ArrowReturnRight','');// eslint-disable-next-line\nexport var BIconArrowRight=/*#__PURE__*/makeIcon('ArrowRight','');// eslint-disable-next-line\nexport var BIconArrowRightCircle=/*#__PURE__*/makeIcon('ArrowRightCircle','');// eslint-disable-next-line\nexport var BIconArrowRightCircleFill=/*#__PURE__*/makeIcon('ArrowRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowRightShort=/*#__PURE__*/makeIcon('ArrowRightShort','');// eslint-disable-next-line\nexport var BIconArrowRightSquare=/*#__PURE__*/makeIcon('ArrowRightSquare','');// eslint-disable-next-line\nexport var BIconArrowRightSquareFill=/*#__PURE__*/makeIcon('ArrowRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUp=/*#__PURE__*/makeIcon('ArrowUp','');// eslint-disable-next-line\nexport var BIconArrowUpCircle=/*#__PURE__*/makeIcon('ArrowUpCircle','');// eslint-disable-next-line\nexport var BIconArrowUpCircleFill=/*#__PURE__*/makeIcon('ArrowUpCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeft=/*#__PURE__*/makeIcon('ArrowUpLeft','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircle=/*#__PURE__*/makeIcon('ArrowUpLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircleFill=/*#__PURE__*/makeIcon('ArrowUpLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquare=/*#__PURE__*/makeIcon('ArrowUpLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquareFill=/*#__PURE__*/makeIcon('ArrowUpLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpRight=/*#__PURE__*/makeIcon('ArrowUpRight','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircle=/*#__PURE__*/makeIcon('ArrowUpRightCircle','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircleFill=/*#__PURE__*/makeIcon('ArrowUpRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquare=/*#__PURE__*/makeIcon('ArrowUpRightSquare','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquareFill=/*#__PURE__*/makeIcon('ArrowUpRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpShort=/*#__PURE__*/makeIcon('ArrowUpShort','');// eslint-disable-next-line\nexport var BIconArrowUpSquare=/*#__PURE__*/makeIcon('ArrowUpSquare','');// eslint-disable-next-line\nexport var BIconArrowUpSquareFill=/*#__PURE__*/makeIcon('ArrowUpSquareFill','');// eslint-disable-next-line\nexport var BIconArrowsAngleContract=/*#__PURE__*/makeIcon('ArrowsAngleContract','');// eslint-disable-next-line\nexport var BIconArrowsAngleExpand=/*#__PURE__*/makeIcon('ArrowsAngleExpand','');// eslint-disable-next-line\nexport var BIconArrowsCollapse=/*#__PURE__*/makeIcon('ArrowsCollapse','');// eslint-disable-next-line\nexport var BIconArrowsExpand=/*#__PURE__*/makeIcon('ArrowsExpand','');// eslint-disable-next-line\nexport var BIconArrowsFullscreen=/*#__PURE__*/makeIcon('ArrowsFullscreen','');// eslint-disable-next-line\nexport var BIconArrowsMove=/*#__PURE__*/makeIcon('ArrowsMove','');// eslint-disable-next-line\nexport var BIconAspectRatio=/*#__PURE__*/makeIcon('AspectRatio','');// eslint-disable-next-line\nexport var BIconAspectRatioFill=/*#__PURE__*/makeIcon('AspectRatioFill','');// eslint-disable-next-line\nexport var BIconAsterisk=/*#__PURE__*/makeIcon('Asterisk','');// eslint-disable-next-line\nexport var BIconAt=/*#__PURE__*/makeIcon('At','');// eslint-disable-next-line\nexport var BIconAward=/*#__PURE__*/makeIcon('Award','');// eslint-disable-next-line\nexport var BIconAwardFill=/*#__PURE__*/makeIcon('AwardFill','');// eslint-disable-next-line\nexport var BIconBack=/*#__PURE__*/makeIcon('Back','');// eslint-disable-next-line\nexport var BIconBackspace=/*#__PURE__*/makeIcon('Backspace','');// eslint-disable-next-line\nexport var BIconBackspaceFill=/*#__PURE__*/makeIcon('BackspaceFill','');// eslint-disable-next-line\nexport var BIconBackspaceReverse=/*#__PURE__*/makeIcon('BackspaceReverse','');// eslint-disable-next-line\nexport var BIconBackspaceReverseFill=/*#__PURE__*/makeIcon('BackspaceReverseFill','');// eslint-disable-next-line\nexport var BIconBadge4k=/*#__PURE__*/makeIcon('Badge4k','');// eslint-disable-next-line\nexport var BIconBadge4kFill=/*#__PURE__*/makeIcon('Badge4kFill','');// eslint-disable-next-line\nexport var BIconBadge8k=/*#__PURE__*/makeIcon('Badge8k','');// eslint-disable-next-line\nexport var BIconBadge8kFill=/*#__PURE__*/makeIcon('Badge8kFill','');// eslint-disable-next-line\nexport var BIconBadgeAd=/*#__PURE__*/makeIcon('BadgeAd','');// eslint-disable-next-line\nexport var BIconBadgeAdFill=/*#__PURE__*/makeIcon('BadgeAdFill','');// eslint-disable-next-line\nexport var BIconBadgeCc=/*#__PURE__*/makeIcon('BadgeCc','');// eslint-disable-next-line\nexport var BIconBadgeCcFill=/*#__PURE__*/makeIcon('BadgeCcFill','');// eslint-disable-next-line\nexport var BIconBadgeHd=/*#__PURE__*/makeIcon('BadgeHd','');// eslint-disable-next-line\nexport var BIconBadgeHdFill=/*#__PURE__*/makeIcon('BadgeHdFill','');// eslint-disable-next-line\nexport var BIconBadgeTm=/*#__PURE__*/makeIcon('BadgeTm','');// eslint-disable-next-line\nexport var BIconBadgeTmFill=/*#__PURE__*/makeIcon('BadgeTmFill','');// eslint-disable-next-line\nexport var BIconBadgeVo=/*#__PURE__*/makeIcon('BadgeVo','');// eslint-disable-next-line\nexport var BIconBadgeVoFill=/*#__PURE__*/makeIcon('BadgeVoFill','');// eslint-disable-next-line\nexport var BIconBag=/*#__PURE__*/makeIcon('Bag','');// eslint-disable-next-line\nexport var BIconBagCheck=/*#__PURE__*/makeIcon('BagCheck','');// eslint-disable-next-line\nexport var BIconBagCheckFill=/*#__PURE__*/makeIcon('BagCheckFill','');// eslint-disable-next-line\nexport var BIconBagDash=/*#__PURE__*/makeIcon('BagDash','');// eslint-disable-next-line\nexport var BIconBagDashFill=/*#__PURE__*/makeIcon('BagDashFill','');// eslint-disable-next-line\nexport var BIconBagFill=/*#__PURE__*/makeIcon('BagFill','');// eslint-disable-next-line\nexport var BIconBagPlus=/*#__PURE__*/makeIcon('BagPlus','');// eslint-disable-next-line\nexport var BIconBagPlusFill=/*#__PURE__*/makeIcon('BagPlusFill','');// eslint-disable-next-line\nexport var BIconBagX=/*#__PURE__*/makeIcon('BagX','');// eslint-disable-next-line\nexport var BIconBagXFill=/*#__PURE__*/makeIcon('BagXFill','');// eslint-disable-next-line\nexport var BIconBarChart=/*#__PURE__*/makeIcon('BarChart','');// eslint-disable-next-line\nexport var BIconBarChartFill=/*#__PURE__*/makeIcon('BarChartFill','');// eslint-disable-next-line\nexport var BIconBarChartLine=/*#__PURE__*/makeIcon('BarChartLine','');// eslint-disable-next-line\nexport var BIconBarChartLineFill=/*#__PURE__*/makeIcon('BarChartLineFill','');// eslint-disable-next-line\nexport var BIconBarChartSteps=/*#__PURE__*/makeIcon('BarChartSteps','');// eslint-disable-next-line\nexport var BIconBasket=/*#__PURE__*/makeIcon('Basket','');// eslint-disable-next-line\nexport var BIconBasket2=/*#__PURE__*/makeIcon('Basket2','');// eslint-disable-next-line\nexport var BIconBasket2Fill=/*#__PURE__*/makeIcon('Basket2Fill','');// eslint-disable-next-line\nexport var BIconBasket3=/*#__PURE__*/makeIcon('Basket3','');// eslint-disable-next-line\nexport var BIconBasket3Fill=/*#__PURE__*/makeIcon('Basket3Fill','');// eslint-disable-next-line\nexport var BIconBasketFill=/*#__PURE__*/makeIcon('BasketFill','');// eslint-disable-next-line\nexport var BIconBattery=/*#__PURE__*/makeIcon('Battery','');// eslint-disable-next-line\nexport var BIconBatteryCharging=/*#__PURE__*/makeIcon('BatteryCharging','');// eslint-disable-next-line\nexport var BIconBatteryFull=/*#__PURE__*/makeIcon('BatteryFull','');// eslint-disable-next-line\nexport var BIconBatteryHalf=/*#__PURE__*/makeIcon('BatteryHalf','');// eslint-disable-next-line\nexport var BIconBell=/*#__PURE__*/makeIcon('Bell','');// eslint-disable-next-line\nexport var BIconBellFill=/*#__PURE__*/makeIcon('BellFill','');// eslint-disable-next-line\nexport var BIconBezier=/*#__PURE__*/makeIcon('Bezier','');// eslint-disable-next-line\nexport var BIconBezier2=/*#__PURE__*/makeIcon('Bezier2','');// eslint-disable-next-line\nexport var BIconBicycle=/*#__PURE__*/makeIcon('Bicycle','');// eslint-disable-next-line\nexport var BIconBinoculars=/*#__PURE__*/makeIcon('Binoculars','');// eslint-disable-next-line\nexport var BIconBinocularsFill=/*#__PURE__*/makeIcon('BinocularsFill','');// eslint-disable-next-line\nexport var BIconBlockquoteLeft=/*#__PURE__*/makeIcon('BlockquoteLeft','');// eslint-disable-next-line\nexport var BIconBlockquoteRight=/*#__PURE__*/makeIcon('BlockquoteRight','');// eslint-disable-next-line\nexport var BIconBook=/*#__PURE__*/makeIcon('Book','');// eslint-disable-next-line\nexport var BIconBookFill=/*#__PURE__*/makeIcon('BookFill','');// eslint-disable-next-line\nexport var BIconBookHalf=/*#__PURE__*/makeIcon('BookHalf','');// eslint-disable-next-line\nexport var BIconBookmark=/*#__PURE__*/makeIcon('Bookmark','');// eslint-disable-next-line\nexport var BIconBookmarkCheck=/*#__PURE__*/makeIcon('BookmarkCheck','');// eslint-disable-next-line\nexport var BIconBookmarkCheckFill=/*#__PURE__*/makeIcon('BookmarkCheckFill','');// eslint-disable-next-line\nexport var BIconBookmarkDash=/*#__PURE__*/makeIcon('BookmarkDash','');// eslint-disable-next-line\nexport var BIconBookmarkDashFill=/*#__PURE__*/makeIcon('BookmarkDashFill','');// eslint-disable-next-line\nexport var BIconBookmarkFill=/*#__PURE__*/makeIcon('BookmarkFill','');// eslint-disable-next-line\nexport var BIconBookmarkHeart=/*#__PURE__*/makeIcon('BookmarkHeart','');// eslint-disable-next-line\nexport var BIconBookmarkHeartFill=/*#__PURE__*/makeIcon('BookmarkHeartFill','');// eslint-disable-next-line\nexport var BIconBookmarkPlus=/*#__PURE__*/makeIcon('BookmarkPlus','');// eslint-disable-next-line\nexport var BIconBookmarkPlusFill=/*#__PURE__*/makeIcon('BookmarkPlusFill','');// eslint-disable-next-line\nexport var BIconBookmarkStar=/*#__PURE__*/makeIcon('BookmarkStar','');// eslint-disable-next-line\nexport var BIconBookmarkStarFill=/*#__PURE__*/makeIcon('BookmarkStarFill','');// eslint-disable-next-line\nexport var BIconBookmarkX=/*#__PURE__*/makeIcon('BookmarkX','');// eslint-disable-next-line\nexport var BIconBookmarkXFill=/*#__PURE__*/makeIcon('BookmarkXFill','');// eslint-disable-next-line\nexport var BIconBookmarks=/*#__PURE__*/makeIcon('Bookmarks','');// eslint-disable-next-line\nexport var BIconBookmarksFill=/*#__PURE__*/makeIcon('BookmarksFill','');// eslint-disable-next-line\nexport var BIconBookshelf=/*#__PURE__*/makeIcon('Bookshelf','');// eslint-disable-next-line\nexport var BIconBootstrap=/*#__PURE__*/makeIcon('Bootstrap','');// eslint-disable-next-line\nexport var BIconBootstrapFill=/*#__PURE__*/makeIcon('BootstrapFill','');// eslint-disable-next-line\nexport var BIconBootstrapReboot=/*#__PURE__*/makeIcon('BootstrapReboot','');// eslint-disable-next-line\nexport var BIconBorderStyle=/*#__PURE__*/makeIcon('BorderStyle','');// eslint-disable-next-line\nexport var BIconBorderWidth=/*#__PURE__*/makeIcon('BorderWidth','');// eslint-disable-next-line\nexport var BIconBoundingBox=/*#__PURE__*/makeIcon('BoundingBox','');// eslint-disable-next-line\nexport var BIconBoundingBoxCircles=/*#__PURE__*/makeIcon('BoundingBoxCircles','');// eslint-disable-next-line\nexport var BIconBox=/*#__PURE__*/makeIcon('Box','');// eslint-disable-next-line\nexport var BIconBoxArrowDown=/*#__PURE__*/makeIcon('BoxArrowDown','');// eslint-disable-next-line\nexport var BIconBoxArrowDownLeft=/*#__PURE__*/makeIcon('BoxArrowDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowDownRight=/*#__PURE__*/makeIcon('BoxArrowDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInDown=/*#__PURE__*/makeIcon('BoxArrowInDown','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownLeft=/*#__PURE__*/makeIcon('BoxArrowInDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownRight=/*#__PURE__*/makeIcon('BoxArrowInDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInLeft=/*#__PURE__*/makeIcon('BoxArrowInLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInRight=/*#__PURE__*/makeIcon('BoxArrowInRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInUp=/*#__PURE__*/makeIcon('BoxArrowInUp','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpLeft=/*#__PURE__*/makeIcon('BoxArrowInUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpRight=/*#__PURE__*/makeIcon('BoxArrowInUpRight','');// eslint-disable-next-line\nexport var BIconBoxArrowLeft=/*#__PURE__*/makeIcon('BoxArrowLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowRight=/*#__PURE__*/makeIcon('BoxArrowRight','');// eslint-disable-next-line\nexport var BIconBoxArrowUp=/*#__PURE__*/makeIcon('BoxArrowUp','');// eslint-disable-next-line\nexport var BIconBoxArrowUpLeft=/*#__PURE__*/makeIcon('BoxArrowUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowUpRight=/*#__PURE__*/makeIcon('BoxArrowUpRight','');// eslint-disable-next-line\nexport var BIconBoxSeam=/*#__PURE__*/makeIcon('BoxSeam','');// eslint-disable-next-line\nexport var BIconBraces=/*#__PURE__*/makeIcon('Braces','');// eslint-disable-next-line\nexport var BIconBricks=/*#__PURE__*/makeIcon('Bricks','');// eslint-disable-next-line\nexport var BIconBriefcase=/*#__PURE__*/makeIcon('Briefcase','');// eslint-disable-next-line\nexport var BIconBriefcaseFill=/*#__PURE__*/makeIcon('BriefcaseFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltHigh=/*#__PURE__*/makeIcon('BrightnessAltHigh','');// eslint-disable-next-line\nexport var BIconBrightnessAltHighFill=/*#__PURE__*/makeIcon('BrightnessAltHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltLow=/*#__PURE__*/makeIcon('BrightnessAltLow','');// eslint-disable-next-line\nexport var BIconBrightnessAltLowFill=/*#__PURE__*/makeIcon('BrightnessAltLowFill','');// eslint-disable-next-line\nexport var BIconBrightnessHigh=/*#__PURE__*/makeIcon('BrightnessHigh','');// eslint-disable-next-line\nexport var BIconBrightnessHighFill=/*#__PURE__*/makeIcon('BrightnessHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessLow=/*#__PURE__*/makeIcon('BrightnessLow','');// eslint-disable-next-line\nexport var BIconBrightnessLowFill=/*#__PURE__*/makeIcon('BrightnessLowFill','');// eslint-disable-next-line\nexport var BIconBroadcast=/*#__PURE__*/makeIcon('Broadcast','');// eslint-disable-next-line\nexport var BIconBroadcastPin=/*#__PURE__*/makeIcon('BroadcastPin','');// eslint-disable-next-line\nexport var BIconBrush=/*#__PURE__*/makeIcon('Brush','');// eslint-disable-next-line\nexport var BIconBrushFill=/*#__PURE__*/makeIcon('BrushFill','');// eslint-disable-next-line\nexport var BIconBucket=/*#__PURE__*/makeIcon('Bucket','');// eslint-disable-next-line\nexport var BIconBucketFill=/*#__PURE__*/makeIcon('BucketFill','');// eslint-disable-next-line\nexport var BIconBug=/*#__PURE__*/makeIcon('Bug','');// eslint-disable-next-line\nexport var BIconBugFill=/*#__PURE__*/makeIcon('BugFill','');// eslint-disable-next-line\nexport var BIconBuilding=/*#__PURE__*/makeIcon('Building','');// eslint-disable-next-line\nexport var BIconBullseye=/*#__PURE__*/makeIcon('Bullseye','');// eslint-disable-next-line\nexport var BIconCalculator=/*#__PURE__*/makeIcon('Calculator','');// eslint-disable-next-line\nexport var BIconCalculatorFill=/*#__PURE__*/makeIcon('CalculatorFill','');// eslint-disable-next-line\nexport var BIconCalendar=/*#__PURE__*/makeIcon('Calendar','');// eslint-disable-next-line\nexport var BIconCalendar2=/*#__PURE__*/makeIcon('Calendar2','');// eslint-disable-next-line\nexport var BIconCalendar2Check=/*#__PURE__*/makeIcon('Calendar2Check','');// eslint-disable-next-line\nexport var BIconCalendar2CheckFill=/*#__PURE__*/makeIcon('Calendar2CheckFill','');// eslint-disable-next-line\nexport var BIconCalendar2Date=/*#__PURE__*/makeIcon('Calendar2Date','');// eslint-disable-next-line\nexport var BIconCalendar2DateFill=/*#__PURE__*/makeIcon('Calendar2DateFill','');// eslint-disable-next-line\nexport var BIconCalendar2Day=/*#__PURE__*/makeIcon('Calendar2Day','');// eslint-disable-next-line\nexport var BIconCalendar2DayFill=/*#__PURE__*/makeIcon('Calendar2DayFill','');// eslint-disable-next-line\nexport var BIconCalendar2Event=/*#__PURE__*/makeIcon('Calendar2Event','');// eslint-disable-next-line\nexport var BIconCalendar2EventFill=/*#__PURE__*/makeIcon('Calendar2EventFill','');// eslint-disable-next-line\nexport var BIconCalendar2Fill=/*#__PURE__*/makeIcon('Calendar2Fill','');// eslint-disable-next-line\nexport var BIconCalendar2Minus=/*#__PURE__*/makeIcon('Calendar2Minus','');// eslint-disable-next-line\nexport var BIconCalendar2MinusFill=/*#__PURE__*/makeIcon('Calendar2MinusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Month=/*#__PURE__*/makeIcon('Calendar2Month','');// eslint-disable-next-line\nexport var BIconCalendar2MonthFill=/*#__PURE__*/makeIcon('Calendar2MonthFill','');// eslint-disable-next-line\nexport var BIconCalendar2Plus=/*#__PURE__*/makeIcon('Calendar2Plus','');// eslint-disable-next-line\nexport var BIconCalendar2PlusFill=/*#__PURE__*/makeIcon('Calendar2PlusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Range=/*#__PURE__*/makeIcon('Calendar2Range','');// eslint-disable-next-line\nexport var BIconCalendar2RangeFill=/*#__PURE__*/makeIcon('Calendar2RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar2Week=/*#__PURE__*/makeIcon('Calendar2Week','');// eslint-disable-next-line\nexport var BIconCalendar2WeekFill=/*#__PURE__*/makeIcon('Calendar2WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar2X=/*#__PURE__*/makeIcon('Calendar2X','');// eslint-disable-next-line\nexport var BIconCalendar2XFill=/*#__PURE__*/makeIcon('Calendar2XFill','');// eslint-disable-next-line\nexport var BIconCalendar3=/*#__PURE__*/makeIcon('Calendar3','');// eslint-disable-next-line\nexport var BIconCalendar3Event=/*#__PURE__*/makeIcon('Calendar3Event','');// eslint-disable-next-line\nexport var BIconCalendar3EventFill=/*#__PURE__*/makeIcon('Calendar3EventFill','');// eslint-disable-next-line\nexport var BIconCalendar3Fill=/*#__PURE__*/makeIcon('Calendar3Fill','');// eslint-disable-next-line\nexport var BIconCalendar3Range=/*#__PURE__*/makeIcon('Calendar3Range','');// eslint-disable-next-line\nexport var BIconCalendar3RangeFill=/*#__PURE__*/makeIcon('Calendar3RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar3Week=/*#__PURE__*/makeIcon('Calendar3Week','');// eslint-disable-next-line\nexport var BIconCalendar3WeekFill=/*#__PURE__*/makeIcon('Calendar3WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar4=/*#__PURE__*/makeIcon('Calendar4','');// eslint-disable-next-line\nexport var BIconCalendar4Event=/*#__PURE__*/makeIcon('Calendar4Event','');// eslint-disable-next-line\nexport var BIconCalendar4Range=/*#__PURE__*/makeIcon('Calendar4Range','');// eslint-disable-next-line\nexport var BIconCalendar4Week=/*#__PURE__*/makeIcon('Calendar4Week','');// eslint-disable-next-line\nexport var BIconCalendarCheck=/*#__PURE__*/makeIcon('CalendarCheck','');// eslint-disable-next-line\nexport var BIconCalendarCheckFill=/*#__PURE__*/makeIcon('CalendarCheckFill','');// eslint-disable-next-line\nexport var BIconCalendarDate=/*#__PURE__*/makeIcon('CalendarDate','');// eslint-disable-next-line\nexport var BIconCalendarDateFill=/*#__PURE__*/makeIcon('CalendarDateFill','');// eslint-disable-next-line\nexport var BIconCalendarDay=/*#__PURE__*/makeIcon('CalendarDay','');// eslint-disable-next-line\nexport var BIconCalendarDayFill=/*#__PURE__*/makeIcon('CalendarDayFill','');// eslint-disable-next-line\nexport var BIconCalendarEvent=/*#__PURE__*/makeIcon('CalendarEvent','');// eslint-disable-next-line\nexport var BIconCalendarEventFill=/*#__PURE__*/makeIcon('CalendarEventFill','');// eslint-disable-next-line\nexport var BIconCalendarFill=/*#__PURE__*/makeIcon('CalendarFill','');// eslint-disable-next-line\nexport var BIconCalendarMinus=/*#__PURE__*/makeIcon('CalendarMinus','');// eslint-disable-next-line\nexport var BIconCalendarMinusFill=/*#__PURE__*/makeIcon('CalendarMinusFill','');// eslint-disable-next-line\nexport var BIconCalendarMonth=/*#__PURE__*/makeIcon('CalendarMonth','');// eslint-disable-next-line\nexport var BIconCalendarMonthFill=/*#__PURE__*/makeIcon('CalendarMonthFill','');// eslint-disable-next-line\nexport var BIconCalendarPlus=/*#__PURE__*/makeIcon('CalendarPlus','');// eslint-disable-next-line\nexport var BIconCalendarPlusFill=/*#__PURE__*/makeIcon('CalendarPlusFill','');// eslint-disable-next-line\nexport var BIconCalendarRange=/*#__PURE__*/makeIcon('CalendarRange','');// eslint-disable-next-line\nexport var BIconCalendarRangeFill=/*#__PURE__*/makeIcon('CalendarRangeFill','');// eslint-disable-next-line\nexport var BIconCalendarWeek=/*#__PURE__*/makeIcon('CalendarWeek','');// eslint-disable-next-line\nexport var BIconCalendarWeekFill=/*#__PURE__*/makeIcon('CalendarWeekFill','');// eslint-disable-next-line\nexport var BIconCalendarX=/*#__PURE__*/makeIcon('CalendarX','');// eslint-disable-next-line\nexport var BIconCalendarXFill=/*#__PURE__*/makeIcon('CalendarXFill','');// eslint-disable-next-line\nexport var BIconCamera=/*#__PURE__*/makeIcon('Camera','');// eslint-disable-next-line\nexport var BIconCamera2=/*#__PURE__*/makeIcon('Camera2','');// eslint-disable-next-line\nexport var BIconCameraFill=/*#__PURE__*/makeIcon('CameraFill','');// eslint-disable-next-line\nexport var BIconCameraReels=/*#__PURE__*/makeIcon('CameraReels','');// eslint-disable-next-line\nexport var BIconCameraReelsFill=/*#__PURE__*/makeIcon('CameraReelsFill','');// eslint-disable-next-line\nexport var BIconCameraVideo=/*#__PURE__*/makeIcon('CameraVideo','');// eslint-disable-next-line\nexport var BIconCameraVideoFill=/*#__PURE__*/makeIcon('CameraVideoFill','');// eslint-disable-next-line\nexport var BIconCameraVideoOff=/*#__PURE__*/makeIcon('CameraVideoOff','');// eslint-disable-next-line\nexport var BIconCameraVideoOffFill=/*#__PURE__*/makeIcon('CameraVideoOffFill','');// eslint-disable-next-line\nexport var BIconCapslock=/*#__PURE__*/makeIcon('Capslock','');// eslint-disable-next-line\nexport var BIconCapslockFill=/*#__PURE__*/makeIcon('CapslockFill','');// eslint-disable-next-line\nexport var BIconCardChecklist=/*#__PURE__*/makeIcon('CardChecklist','');// eslint-disable-next-line\nexport var BIconCardHeading=/*#__PURE__*/makeIcon('CardHeading','');// eslint-disable-next-line\nexport var BIconCardImage=/*#__PURE__*/makeIcon('CardImage','');// eslint-disable-next-line\nexport var BIconCardList=/*#__PURE__*/makeIcon('CardList','');// eslint-disable-next-line\nexport var BIconCardText=/*#__PURE__*/makeIcon('CardText','');// eslint-disable-next-line\nexport var BIconCaretDown=/*#__PURE__*/makeIcon('CaretDown','');// eslint-disable-next-line\nexport var BIconCaretDownFill=/*#__PURE__*/makeIcon('CaretDownFill','');// eslint-disable-next-line\nexport var BIconCaretDownSquare=/*#__PURE__*/makeIcon('CaretDownSquare','');// eslint-disable-next-line\nexport var BIconCaretDownSquareFill=/*#__PURE__*/makeIcon('CaretDownSquareFill','');// eslint-disable-next-line\nexport var BIconCaretLeft=/*#__PURE__*/makeIcon('CaretLeft','');// eslint-disable-next-line\nexport var BIconCaretLeftFill=/*#__PURE__*/makeIcon('CaretLeftFill','');// eslint-disable-next-line\nexport var BIconCaretLeftSquare=/*#__PURE__*/makeIcon('CaretLeftSquare','');// eslint-disable-next-line\nexport var BIconCaretLeftSquareFill=/*#__PURE__*/makeIcon('CaretLeftSquareFill','');// eslint-disable-next-line\nexport var BIconCaretRight=/*#__PURE__*/makeIcon('CaretRight','');// eslint-disable-next-line\nexport var BIconCaretRightFill=/*#__PURE__*/makeIcon('CaretRightFill','');// eslint-disable-next-line\nexport var BIconCaretRightSquare=/*#__PURE__*/makeIcon('CaretRightSquare','');// eslint-disable-next-line\nexport var BIconCaretRightSquareFill=/*#__PURE__*/makeIcon('CaretRightSquareFill','');// eslint-disable-next-line\nexport var BIconCaretUp=/*#__PURE__*/makeIcon('CaretUp','');// eslint-disable-next-line\nexport var BIconCaretUpFill=/*#__PURE__*/makeIcon('CaretUpFill','');// eslint-disable-next-line\nexport var BIconCaretUpSquare=/*#__PURE__*/makeIcon('CaretUpSquare','');// eslint-disable-next-line\nexport var BIconCaretUpSquareFill=/*#__PURE__*/makeIcon('CaretUpSquareFill','');// eslint-disable-next-line\nexport var BIconCart=/*#__PURE__*/makeIcon('Cart','');// eslint-disable-next-line\nexport var BIconCart2=/*#__PURE__*/makeIcon('Cart2','');// eslint-disable-next-line\nexport var BIconCart3=/*#__PURE__*/makeIcon('Cart3','');// eslint-disable-next-line\nexport var BIconCart4=/*#__PURE__*/makeIcon('Cart4','');// eslint-disable-next-line\nexport var BIconCartCheck=/*#__PURE__*/makeIcon('CartCheck','');// eslint-disable-next-line\nexport var BIconCartCheckFill=/*#__PURE__*/makeIcon('CartCheckFill','');// eslint-disable-next-line\nexport var BIconCartDash=/*#__PURE__*/makeIcon('CartDash','');// eslint-disable-next-line\nexport var BIconCartDashFill=/*#__PURE__*/makeIcon('CartDashFill','');// eslint-disable-next-line\nexport var BIconCartFill=/*#__PURE__*/makeIcon('CartFill','');// eslint-disable-next-line\nexport var BIconCartPlus=/*#__PURE__*/makeIcon('CartPlus','');// eslint-disable-next-line\nexport var BIconCartPlusFill=/*#__PURE__*/makeIcon('CartPlusFill','');// eslint-disable-next-line\nexport var BIconCartX=/*#__PURE__*/makeIcon('CartX','');// eslint-disable-next-line\nexport var BIconCartXFill=/*#__PURE__*/makeIcon('CartXFill','');// eslint-disable-next-line\nexport var BIconCash=/*#__PURE__*/makeIcon('Cash','');// eslint-disable-next-line\nexport var BIconCashStack=/*#__PURE__*/makeIcon('CashStack','');// eslint-disable-next-line\nexport var BIconCast=/*#__PURE__*/makeIcon('Cast','');// eslint-disable-next-line\nexport var BIconChat=/*#__PURE__*/makeIcon('Chat','');// eslint-disable-next-line\nexport var BIconChatDots=/*#__PURE__*/makeIcon('ChatDots','');// eslint-disable-next-line\nexport var BIconChatDotsFill=/*#__PURE__*/makeIcon('ChatDotsFill','');// eslint-disable-next-line\nexport var BIconChatFill=/*#__PURE__*/makeIcon('ChatFill','');// eslint-disable-next-line\nexport var BIconChatLeft=/*#__PURE__*/makeIcon('ChatLeft','');// eslint-disable-next-line\nexport var BIconChatLeftDots=/*#__PURE__*/makeIcon('ChatLeftDots','');// eslint-disable-next-line\nexport var BIconChatLeftDotsFill=/*#__PURE__*/makeIcon('ChatLeftDotsFill','');// eslint-disable-next-line\nexport var BIconChatLeftFill=/*#__PURE__*/makeIcon('ChatLeftFill','');// eslint-disable-next-line\nexport var BIconChatLeftQuote=/*#__PURE__*/makeIcon('ChatLeftQuote','');// eslint-disable-next-line\nexport var BIconChatLeftQuoteFill=/*#__PURE__*/makeIcon('ChatLeftQuoteFill','');// eslint-disable-next-line\nexport var BIconChatLeftText=/*#__PURE__*/makeIcon('ChatLeftText','');// eslint-disable-next-line\nexport var BIconChatLeftTextFill=/*#__PURE__*/makeIcon('ChatLeftTextFill','');// eslint-disable-next-line\nexport var BIconChatQuote=/*#__PURE__*/makeIcon('ChatQuote','');// eslint-disable-next-line\nexport var BIconChatQuoteFill=/*#__PURE__*/makeIcon('ChatQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRight=/*#__PURE__*/makeIcon('ChatRight','');// eslint-disable-next-line\nexport var BIconChatRightDots=/*#__PURE__*/makeIcon('ChatRightDots','');// eslint-disable-next-line\nexport var BIconChatRightDotsFill=/*#__PURE__*/makeIcon('ChatRightDotsFill','');// eslint-disable-next-line\nexport var BIconChatRightFill=/*#__PURE__*/makeIcon('ChatRightFill','');// eslint-disable-next-line\nexport var BIconChatRightQuote=/*#__PURE__*/makeIcon('ChatRightQuote','');// eslint-disable-next-line\nexport var BIconChatRightQuoteFill=/*#__PURE__*/makeIcon('ChatRightQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRightText=/*#__PURE__*/makeIcon('ChatRightText','');// eslint-disable-next-line\nexport var BIconChatRightTextFill=/*#__PURE__*/makeIcon('ChatRightTextFill','');// eslint-disable-next-line\nexport var BIconChatSquare=/*#__PURE__*/makeIcon('ChatSquare','');// eslint-disable-next-line\nexport var BIconChatSquareDots=/*#__PURE__*/makeIcon('ChatSquareDots','');// eslint-disable-next-line\nexport var BIconChatSquareDotsFill=/*#__PURE__*/makeIcon('ChatSquareDotsFill','');// eslint-disable-next-line\nexport var BIconChatSquareFill=/*#__PURE__*/makeIcon('ChatSquareFill','');// eslint-disable-next-line\nexport var BIconChatSquareQuote=/*#__PURE__*/makeIcon('ChatSquareQuote','');// eslint-disable-next-line\nexport var BIconChatSquareQuoteFill=/*#__PURE__*/makeIcon('ChatSquareQuoteFill','');// eslint-disable-next-line\nexport var BIconChatSquareText=/*#__PURE__*/makeIcon('ChatSquareText','');// eslint-disable-next-line\nexport var BIconChatSquareTextFill=/*#__PURE__*/makeIcon('ChatSquareTextFill','');// eslint-disable-next-line\nexport var BIconChatText=/*#__PURE__*/makeIcon('ChatText','');// eslint-disable-next-line\nexport var BIconChatTextFill=/*#__PURE__*/makeIcon('ChatTextFill','');// eslint-disable-next-line\nexport var BIconCheck=/*#__PURE__*/makeIcon('Check','');// eslint-disable-next-line\nexport var BIconCheck2=/*#__PURE__*/makeIcon('Check2','');// eslint-disable-next-line\nexport var BIconCheck2All=/*#__PURE__*/makeIcon('Check2All','');// eslint-disable-next-line\nexport var BIconCheck2Circle=/*#__PURE__*/makeIcon('Check2Circle','');// eslint-disable-next-line\nexport var BIconCheck2Square=/*#__PURE__*/makeIcon('Check2Square','');// eslint-disable-next-line\nexport var BIconCheckAll=/*#__PURE__*/makeIcon('CheckAll','');// eslint-disable-next-line\nexport var BIconCheckCircle=/*#__PURE__*/makeIcon('CheckCircle','');// eslint-disable-next-line\nexport var BIconCheckCircleFill=/*#__PURE__*/makeIcon('CheckCircleFill','');// eslint-disable-next-line\nexport var BIconCheckSquare=/*#__PURE__*/makeIcon('CheckSquare','');// eslint-disable-next-line\nexport var BIconCheckSquareFill=/*#__PURE__*/makeIcon('CheckSquareFill','');// eslint-disable-next-line\nexport var BIconChevronBarContract=/*#__PURE__*/makeIcon('ChevronBarContract','');// eslint-disable-next-line\nexport var BIconChevronBarDown=/*#__PURE__*/makeIcon('ChevronBarDown','');// eslint-disable-next-line\nexport var BIconChevronBarExpand=/*#__PURE__*/makeIcon('ChevronBarExpand','');// eslint-disable-next-line\nexport var BIconChevronBarLeft=/*#__PURE__*/makeIcon('ChevronBarLeft','');// eslint-disable-next-line\nexport var BIconChevronBarRight=/*#__PURE__*/makeIcon('ChevronBarRight','');// eslint-disable-next-line\nexport var BIconChevronBarUp=/*#__PURE__*/makeIcon('ChevronBarUp','');// eslint-disable-next-line\nexport var BIconChevronCompactDown=/*#__PURE__*/makeIcon('ChevronCompactDown','');// eslint-disable-next-line\nexport var BIconChevronCompactLeft=/*#__PURE__*/makeIcon('ChevronCompactLeft','');// eslint-disable-next-line\nexport var BIconChevronCompactRight=/*#__PURE__*/makeIcon('ChevronCompactRight','');// eslint-disable-next-line\nexport var BIconChevronCompactUp=/*#__PURE__*/makeIcon('ChevronCompactUp','');// eslint-disable-next-line\nexport var BIconChevronContract=/*#__PURE__*/makeIcon('ChevronContract','');// eslint-disable-next-line\nexport var BIconChevronDoubleDown=/*#__PURE__*/makeIcon('ChevronDoubleDown','');// eslint-disable-next-line\nexport var BIconChevronDoubleLeft=/*#__PURE__*/makeIcon('ChevronDoubleLeft','');// eslint-disable-next-line\nexport var BIconChevronDoubleRight=/*#__PURE__*/makeIcon('ChevronDoubleRight','');// eslint-disable-next-line\nexport var BIconChevronDoubleUp=/*#__PURE__*/makeIcon('ChevronDoubleUp','');// eslint-disable-next-line\nexport var BIconChevronDown=/*#__PURE__*/makeIcon('ChevronDown','');// eslint-disable-next-line\nexport var BIconChevronExpand=/*#__PURE__*/makeIcon('ChevronExpand','');// eslint-disable-next-line\nexport var BIconChevronLeft=/*#__PURE__*/makeIcon('ChevronLeft','');// eslint-disable-next-line\nexport var BIconChevronRight=/*#__PURE__*/makeIcon('ChevronRight','');// eslint-disable-next-line\nexport var BIconChevronUp=/*#__PURE__*/makeIcon('ChevronUp','');// eslint-disable-next-line\nexport var BIconCircle=/*#__PURE__*/makeIcon('Circle','');// eslint-disable-next-line\nexport var BIconCircleFill=/*#__PURE__*/makeIcon('CircleFill','');// eslint-disable-next-line\nexport var BIconCircleHalf=/*#__PURE__*/makeIcon('CircleHalf','');// eslint-disable-next-line\nexport var BIconCircleSquare=/*#__PURE__*/makeIcon('CircleSquare','');// eslint-disable-next-line\nexport var BIconClipboard=/*#__PURE__*/makeIcon('Clipboard','');// eslint-disable-next-line\nexport var BIconClipboardCheck=/*#__PURE__*/makeIcon('ClipboardCheck','');// eslint-disable-next-line\nexport var BIconClipboardData=/*#__PURE__*/makeIcon('ClipboardData','');// eslint-disable-next-line\nexport var BIconClipboardMinus=/*#__PURE__*/makeIcon('ClipboardMinus','');// eslint-disable-next-line\nexport var BIconClipboardPlus=/*#__PURE__*/makeIcon('ClipboardPlus','');// eslint-disable-next-line\nexport var BIconClipboardX=/*#__PURE__*/makeIcon('ClipboardX','');// eslint-disable-next-line\nexport var BIconClock=/*#__PURE__*/makeIcon('Clock','');// eslint-disable-next-line\nexport var BIconClockFill=/*#__PURE__*/makeIcon('ClockFill','');// eslint-disable-next-line\nexport var BIconClockHistory=/*#__PURE__*/makeIcon('ClockHistory','');// eslint-disable-next-line\nexport var BIconCloud=/*#__PURE__*/makeIcon('Cloud','');// eslint-disable-next-line\nexport var BIconCloudArrowDown=/*#__PURE__*/makeIcon('CloudArrowDown','');// eslint-disable-next-line\nexport var BIconCloudArrowDownFill=/*#__PURE__*/makeIcon('CloudArrowDownFill','');// eslint-disable-next-line\nexport var BIconCloudArrowUp=/*#__PURE__*/makeIcon('CloudArrowUp','');// eslint-disable-next-line\nexport var BIconCloudArrowUpFill=/*#__PURE__*/makeIcon('CloudArrowUpFill','');// eslint-disable-next-line\nexport var BIconCloudCheck=/*#__PURE__*/makeIcon('CloudCheck','');// eslint-disable-next-line\nexport var BIconCloudCheckFill=/*#__PURE__*/makeIcon('CloudCheckFill','');// eslint-disable-next-line\nexport var BIconCloudDownload=/*#__PURE__*/makeIcon('CloudDownload','');// eslint-disable-next-line\nexport var BIconCloudDownloadFill=/*#__PURE__*/makeIcon('CloudDownloadFill','');// eslint-disable-next-line\nexport var BIconCloudFill=/*#__PURE__*/makeIcon('CloudFill','');// eslint-disable-next-line\nexport var BIconCloudMinus=/*#__PURE__*/makeIcon('CloudMinus','');// eslint-disable-next-line\nexport var BIconCloudMinusFill=/*#__PURE__*/makeIcon('CloudMinusFill','');// eslint-disable-next-line\nexport var BIconCloudPlus=/*#__PURE__*/makeIcon('CloudPlus','');// eslint-disable-next-line\nexport var BIconCloudPlusFill=/*#__PURE__*/makeIcon('CloudPlusFill','');// eslint-disable-next-line\nexport var BIconCloudSlash=/*#__PURE__*/makeIcon('CloudSlash','');// eslint-disable-next-line\nexport var BIconCloudSlashFill=/*#__PURE__*/makeIcon('CloudSlashFill','');// eslint-disable-next-line\nexport var BIconCloudUpload=/*#__PURE__*/makeIcon('CloudUpload','');// eslint-disable-next-line\nexport var BIconCloudUploadFill=/*#__PURE__*/makeIcon('CloudUploadFill','');// eslint-disable-next-line\nexport var BIconCode=/*#__PURE__*/makeIcon('Code','');// eslint-disable-next-line\nexport var BIconCodeSlash=/*#__PURE__*/makeIcon('CodeSlash','');// eslint-disable-next-line\nexport var BIconCodeSquare=/*#__PURE__*/makeIcon('CodeSquare','');// eslint-disable-next-line\nexport var BIconCollection=/*#__PURE__*/makeIcon('Collection','');// eslint-disable-next-line\nexport var BIconCollectionFill=/*#__PURE__*/makeIcon('CollectionFill','');// eslint-disable-next-line\nexport var BIconCollectionPlay=/*#__PURE__*/makeIcon('CollectionPlay','');// eslint-disable-next-line\nexport var BIconCollectionPlayFill=/*#__PURE__*/makeIcon('CollectionPlayFill','');// eslint-disable-next-line\nexport var BIconColumns=/*#__PURE__*/makeIcon('Columns','');// eslint-disable-next-line\nexport var BIconColumnsGap=/*#__PURE__*/makeIcon('ColumnsGap','');// eslint-disable-next-line\nexport var BIconCommand=/*#__PURE__*/makeIcon('Command','');// eslint-disable-next-line\nexport var BIconCompass=/*#__PURE__*/makeIcon('Compass','');// eslint-disable-next-line\nexport var BIconCompassFill=/*#__PURE__*/makeIcon('CompassFill','');// eslint-disable-next-line\nexport var BIconCone=/*#__PURE__*/makeIcon('Cone','');// eslint-disable-next-line\nexport var BIconConeStriped=/*#__PURE__*/makeIcon('ConeStriped','');// eslint-disable-next-line\nexport var BIconController=/*#__PURE__*/makeIcon('Controller','');// eslint-disable-next-line\nexport var BIconCpu=/*#__PURE__*/makeIcon('Cpu','');// eslint-disable-next-line\nexport var BIconCpuFill=/*#__PURE__*/makeIcon('CpuFill','');// eslint-disable-next-line\nexport var BIconCreditCard=/*#__PURE__*/makeIcon('CreditCard','');// eslint-disable-next-line\nexport var BIconCreditCard2Back=/*#__PURE__*/makeIcon('CreditCard2Back','');// eslint-disable-next-line\nexport var BIconCreditCard2BackFill=/*#__PURE__*/makeIcon('CreditCard2BackFill','');// eslint-disable-next-line\nexport var BIconCreditCard2Front=/*#__PURE__*/makeIcon('CreditCard2Front','');// eslint-disable-next-line\nexport var BIconCreditCard2FrontFill=/*#__PURE__*/makeIcon('CreditCard2FrontFill','');// eslint-disable-next-line\nexport var BIconCreditCardFill=/*#__PURE__*/makeIcon('CreditCardFill','');// eslint-disable-next-line\nexport var BIconCrop=/*#__PURE__*/makeIcon('Crop','');// eslint-disable-next-line\nexport var BIconCup=/*#__PURE__*/makeIcon('Cup','');// eslint-disable-next-line\nexport var BIconCupFill=/*#__PURE__*/makeIcon('CupFill','');// eslint-disable-next-line\nexport var BIconCupStraw=/*#__PURE__*/makeIcon('CupStraw','');// eslint-disable-next-line\nexport var BIconCursor=/*#__PURE__*/makeIcon('Cursor','');// eslint-disable-next-line\nexport var BIconCursorFill=/*#__PURE__*/makeIcon('CursorFill','');// eslint-disable-next-line\nexport var BIconCursorText=/*#__PURE__*/makeIcon('CursorText','');// eslint-disable-next-line\nexport var BIconDash=/*#__PURE__*/makeIcon('Dash','');// eslint-disable-next-line\nexport var BIconDashCircle=/*#__PURE__*/makeIcon('DashCircle','');// eslint-disable-next-line\nexport var BIconDashCircleFill=/*#__PURE__*/makeIcon('DashCircleFill','');// eslint-disable-next-line\nexport var BIconDashSquare=/*#__PURE__*/makeIcon('DashSquare','');// eslint-disable-next-line\nexport var BIconDashSquareFill=/*#__PURE__*/makeIcon('DashSquareFill','');// eslint-disable-next-line\nexport var BIconDiagram2=/*#__PURE__*/makeIcon('Diagram2','');// eslint-disable-next-line\nexport var BIconDiagram2Fill=/*#__PURE__*/makeIcon('Diagram2Fill','');// eslint-disable-next-line\nexport var BIconDiagram3=/*#__PURE__*/makeIcon('Diagram3','');// eslint-disable-next-line\nexport var BIconDiagram3Fill=/*#__PURE__*/makeIcon('Diagram3Fill','');// eslint-disable-next-line\nexport var BIconDiamond=/*#__PURE__*/makeIcon('Diamond','');// eslint-disable-next-line\nexport var BIconDiamondFill=/*#__PURE__*/makeIcon('DiamondFill','');// eslint-disable-next-line\nexport var BIconDiamondHalf=/*#__PURE__*/makeIcon('DiamondHalf','');// eslint-disable-next-line\nexport var BIconDice1=/*#__PURE__*/makeIcon('Dice1','');// eslint-disable-next-line\nexport var BIconDice1Fill=/*#__PURE__*/makeIcon('Dice1Fill','');// eslint-disable-next-line\nexport var BIconDice2=/*#__PURE__*/makeIcon('Dice2','');// eslint-disable-next-line\nexport var BIconDice2Fill=/*#__PURE__*/makeIcon('Dice2Fill','');// eslint-disable-next-line\nexport var BIconDice3=/*#__PURE__*/makeIcon('Dice3','');// eslint-disable-next-line\nexport var BIconDice3Fill=/*#__PURE__*/makeIcon('Dice3Fill','');// eslint-disable-next-line\nexport var BIconDice4=/*#__PURE__*/makeIcon('Dice4','');// eslint-disable-next-line\nexport var BIconDice4Fill=/*#__PURE__*/makeIcon('Dice4Fill','');// eslint-disable-next-line\nexport var BIconDice5=/*#__PURE__*/makeIcon('Dice5','');// eslint-disable-next-line\nexport var BIconDice5Fill=/*#__PURE__*/makeIcon('Dice5Fill','');// eslint-disable-next-line\nexport var BIconDice6=/*#__PURE__*/makeIcon('Dice6','');// eslint-disable-next-line\nexport var BIconDice6Fill=/*#__PURE__*/makeIcon('Dice6Fill','');// eslint-disable-next-line\nexport var BIconDisc=/*#__PURE__*/makeIcon('Disc','');// eslint-disable-next-line\nexport var BIconDiscFill=/*#__PURE__*/makeIcon('DiscFill','');// eslint-disable-next-line\nexport var BIconDiscord=/*#__PURE__*/makeIcon('Discord','');// eslint-disable-next-line\nexport var BIconDisplay=/*#__PURE__*/makeIcon('Display','');// eslint-disable-next-line\nexport var BIconDisplayFill=/*#__PURE__*/makeIcon('DisplayFill','');// eslint-disable-next-line\nexport var BIconDistributeHorizontal=/*#__PURE__*/makeIcon('DistributeHorizontal','');// eslint-disable-next-line\nexport var BIconDistributeVertical=/*#__PURE__*/makeIcon('DistributeVertical','');// eslint-disable-next-line\nexport var BIconDoorClosed=/*#__PURE__*/makeIcon('DoorClosed','');// eslint-disable-next-line\nexport var BIconDoorClosedFill=/*#__PURE__*/makeIcon('DoorClosedFill','');// eslint-disable-next-line\nexport var BIconDoorOpen=/*#__PURE__*/makeIcon('DoorOpen','');// eslint-disable-next-line\nexport var BIconDoorOpenFill=/*#__PURE__*/makeIcon('DoorOpenFill','');// eslint-disable-next-line\nexport var BIconDot=/*#__PURE__*/makeIcon('Dot','');// eslint-disable-next-line\nexport var BIconDownload=/*#__PURE__*/makeIcon('Download','');// eslint-disable-next-line\nexport var BIconDroplet=/*#__PURE__*/makeIcon('Droplet','');// eslint-disable-next-line\nexport var BIconDropletFill=/*#__PURE__*/makeIcon('DropletFill','');// eslint-disable-next-line\nexport var BIconDropletHalf=/*#__PURE__*/makeIcon('DropletHalf','');// eslint-disable-next-line\nexport var BIconEarbuds=/*#__PURE__*/makeIcon('Earbuds','');// eslint-disable-next-line\nexport var BIconEasel=/*#__PURE__*/makeIcon('Easel','');// eslint-disable-next-line\nexport var BIconEaselFill=/*#__PURE__*/makeIcon('EaselFill','');// eslint-disable-next-line\nexport var BIconEgg=/*#__PURE__*/makeIcon('Egg','');// eslint-disable-next-line\nexport var BIconEggFill=/*#__PURE__*/makeIcon('EggFill','');// eslint-disable-next-line\nexport var BIconEggFried=/*#__PURE__*/makeIcon('EggFried','');// eslint-disable-next-line\nexport var BIconEject=/*#__PURE__*/makeIcon('Eject','');// eslint-disable-next-line\nexport var BIconEjectFill=/*#__PURE__*/makeIcon('EjectFill','');// eslint-disable-next-line\nexport var BIconEmojiAngry=/*#__PURE__*/makeIcon('EmojiAngry','');// eslint-disable-next-line\nexport var BIconEmojiAngryFill=/*#__PURE__*/makeIcon('EmojiAngryFill','');// eslint-disable-next-line\nexport var BIconEmojiDizzy=/*#__PURE__*/makeIcon('EmojiDizzy','');// eslint-disable-next-line\nexport var BIconEmojiDizzyFill=/*#__PURE__*/makeIcon('EmojiDizzyFill','');// eslint-disable-next-line\nexport var BIconEmojiExpressionless=/*#__PURE__*/makeIcon('EmojiExpressionless','');// eslint-disable-next-line\nexport var BIconEmojiExpressionlessFill=/*#__PURE__*/makeIcon('EmojiExpressionlessFill','');// eslint-disable-next-line\nexport var BIconEmojiFrown=/*#__PURE__*/makeIcon('EmojiFrown','');// eslint-disable-next-line\nexport var BIconEmojiFrownFill=/*#__PURE__*/makeIcon('EmojiFrownFill','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyes=/*#__PURE__*/makeIcon('EmojiHeartEyes','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyesFill=/*#__PURE__*/makeIcon('EmojiHeartEyesFill','');// eslint-disable-next-line\nexport var BIconEmojiLaughing=/*#__PURE__*/makeIcon('EmojiLaughing','');// eslint-disable-next-line\nexport var BIconEmojiLaughingFill=/*#__PURE__*/makeIcon('EmojiLaughingFill','');// eslint-disable-next-line\nexport var BIconEmojiNeutral=/*#__PURE__*/makeIcon('EmojiNeutral','');// eslint-disable-next-line\nexport var BIconEmojiNeutralFill=/*#__PURE__*/makeIcon('EmojiNeutralFill','');// eslint-disable-next-line\nexport var BIconEmojiSmile=/*#__PURE__*/makeIcon('EmojiSmile','');// eslint-disable-next-line\nexport var BIconEmojiSmileFill=/*#__PURE__*/makeIcon('EmojiSmileFill','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDown=/*#__PURE__*/makeIcon('EmojiSmileUpsideDown','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDownFill=/*#__PURE__*/makeIcon('EmojiSmileUpsideDownFill','');// eslint-disable-next-line\nexport var BIconEmojiSunglasses=/*#__PURE__*/makeIcon('EmojiSunglasses','');// eslint-disable-next-line\nexport var BIconEmojiSunglassesFill=/*#__PURE__*/makeIcon('EmojiSunglassesFill','');// eslint-disable-next-line\nexport var BIconEmojiWink=/*#__PURE__*/makeIcon('EmojiWink','');// eslint-disable-next-line\nexport var BIconEmojiWinkFill=/*#__PURE__*/makeIcon('EmojiWinkFill','');// eslint-disable-next-line\nexport var BIconEnvelope=/*#__PURE__*/makeIcon('Envelope','');// eslint-disable-next-line\nexport var BIconEnvelopeFill=/*#__PURE__*/makeIcon('EnvelopeFill','');// eslint-disable-next-line\nexport var BIconEnvelopeOpen=/*#__PURE__*/makeIcon('EnvelopeOpen','');// eslint-disable-next-line\nexport var BIconEnvelopeOpenFill=/*#__PURE__*/makeIcon('EnvelopeOpenFill','');// eslint-disable-next-line\nexport var BIconExclamation=/*#__PURE__*/makeIcon('Exclamation','');// eslint-disable-next-line\nexport var BIconExclamationCircle=/*#__PURE__*/makeIcon('ExclamationCircle','');// eslint-disable-next-line\nexport var BIconExclamationCircleFill=/*#__PURE__*/makeIcon('ExclamationCircleFill','');// eslint-disable-next-line\nexport var BIconExclamationDiamond=/*#__PURE__*/makeIcon('ExclamationDiamond','');// eslint-disable-next-line\nexport var BIconExclamationDiamondFill=/*#__PURE__*/makeIcon('ExclamationDiamondFill','');// eslint-disable-next-line\nexport var BIconExclamationOctagon=/*#__PURE__*/makeIcon('ExclamationOctagon','');// eslint-disable-next-line\nexport var BIconExclamationOctagonFill=/*#__PURE__*/makeIcon('ExclamationOctagonFill','');// eslint-disable-next-line\nexport var BIconExclamationSquare=/*#__PURE__*/makeIcon('ExclamationSquare','');// eslint-disable-next-line\nexport var BIconExclamationSquareFill=/*#__PURE__*/makeIcon('ExclamationSquareFill','');// eslint-disable-next-line\nexport var BIconExclamationTriangle=/*#__PURE__*/makeIcon('ExclamationTriangle','');// eslint-disable-next-line\nexport var BIconExclamationTriangleFill=/*#__PURE__*/makeIcon('ExclamationTriangleFill','');// eslint-disable-next-line\nexport var BIconExclude=/*#__PURE__*/makeIcon('Exclude','');// eslint-disable-next-line\nexport var BIconEye=/*#__PURE__*/makeIcon('Eye','');// eslint-disable-next-line\nexport var BIconEyeFill=/*#__PURE__*/makeIcon('EyeFill','');// eslint-disable-next-line\nexport var BIconEyeSlash=/*#__PURE__*/makeIcon('EyeSlash','');// eslint-disable-next-line\nexport var BIconEyeSlashFill=/*#__PURE__*/makeIcon('EyeSlashFill','');// eslint-disable-next-line\nexport var BIconEyeglasses=/*#__PURE__*/makeIcon('Eyeglasses','');// eslint-disable-next-line\nexport var BIconFacebook=/*#__PURE__*/makeIcon('Facebook','');// eslint-disable-next-line\nexport var BIconFile=/*#__PURE__*/makeIcon('File','');// eslint-disable-next-line\nexport var BIconFileArrowDown=/*#__PURE__*/makeIcon('FileArrowDown','');// eslint-disable-next-line\nexport var BIconFileArrowDownFill=/*#__PURE__*/makeIcon('FileArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileArrowUp=/*#__PURE__*/makeIcon('FileArrowUp','');// eslint-disable-next-line\nexport var BIconFileArrowUpFill=/*#__PURE__*/makeIcon('FileArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileBarGraph=/*#__PURE__*/makeIcon('FileBarGraph','');// eslint-disable-next-line\nexport var BIconFileBarGraphFill=/*#__PURE__*/makeIcon('FileBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileBinary=/*#__PURE__*/makeIcon('FileBinary','');// eslint-disable-next-line\nexport var BIconFileBinaryFill=/*#__PURE__*/makeIcon('FileBinaryFill','');// eslint-disable-next-line\nexport var BIconFileBreak=/*#__PURE__*/makeIcon('FileBreak','');// eslint-disable-next-line\nexport var BIconFileBreakFill=/*#__PURE__*/makeIcon('FileBreakFill','');// eslint-disable-next-line\nexport var BIconFileCheck=/*#__PURE__*/makeIcon('FileCheck','');// eslint-disable-next-line\nexport var BIconFileCheckFill=/*#__PURE__*/makeIcon('FileCheckFill','');// eslint-disable-next-line\nexport var BIconFileCode=/*#__PURE__*/makeIcon('FileCode','');// eslint-disable-next-line\nexport var BIconFileCodeFill=/*#__PURE__*/makeIcon('FileCodeFill','');// eslint-disable-next-line\nexport var BIconFileDiff=/*#__PURE__*/makeIcon('FileDiff','');// eslint-disable-next-line\nexport var BIconFileDiffFill=/*#__PURE__*/makeIcon('FileDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmark=/*#__PURE__*/makeIcon('FileEarmark','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDown=/*#__PURE__*/makeIcon('FileEarmarkArrowDown','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDownFill=/*#__PURE__*/makeIcon('FileEarmarkArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUp=/*#__PURE__*/makeIcon('FileEarmarkArrowUp','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUpFill=/*#__PURE__*/makeIcon('FileEarmarkArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraph=/*#__PURE__*/makeIcon('FileEarmarkBarGraph','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraphFill=/*#__PURE__*/makeIcon('FileEarmarkBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinary=/*#__PURE__*/makeIcon('FileEarmarkBinary','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinaryFill=/*#__PURE__*/makeIcon('FileEarmarkBinaryFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreak=/*#__PURE__*/makeIcon('FileEarmarkBreak','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreakFill=/*#__PURE__*/makeIcon('FileEarmarkBreakFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheck=/*#__PURE__*/makeIcon('FileEarmarkCheck','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheckFill=/*#__PURE__*/makeIcon('FileEarmarkCheckFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCode=/*#__PURE__*/makeIcon('FileEarmarkCode','');// eslint-disable-next-line\nexport var BIconFileEarmarkCodeFill=/*#__PURE__*/makeIcon('FileEarmarkCodeFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiff=/*#__PURE__*/makeIcon('FileEarmarkDiff','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiffFill=/*#__PURE__*/makeIcon('FileEarmarkDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkEasel=/*#__PURE__*/makeIcon('FileEarmarkEasel','');// eslint-disable-next-line\nexport var BIconFileEarmarkEaselFill=/*#__PURE__*/makeIcon('FileEarmarkEaselFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcel=/*#__PURE__*/makeIcon('FileEarmarkExcel','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcelFill=/*#__PURE__*/makeIcon('FileEarmarkExcelFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFill=/*#__PURE__*/makeIcon('FileEarmarkFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFont=/*#__PURE__*/makeIcon('FileEarmarkFont','');// eslint-disable-next-line\nexport var BIconFileEarmarkFontFill=/*#__PURE__*/makeIcon('FileEarmarkFontFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkImage=/*#__PURE__*/makeIcon('FileEarmarkImage','');// eslint-disable-next-line\nexport var BIconFileEarmarkImageFill=/*#__PURE__*/makeIcon('FileEarmarkImageFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock=/*#__PURE__*/makeIcon('FileEarmarkLock','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2=/*#__PURE__*/makeIcon('FileEarmarkLock2','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2Fill=/*#__PURE__*/makeIcon('FileEarmarkLock2Fill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLockFill=/*#__PURE__*/makeIcon('FileEarmarkLockFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedical=/*#__PURE__*/makeIcon('FileEarmarkMedical','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedicalFill=/*#__PURE__*/makeIcon('FileEarmarkMedicalFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinus=/*#__PURE__*/makeIcon('FileEarmarkMinus','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinusFill=/*#__PURE__*/makeIcon('FileEarmarkMinusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusic=/*#__PURE__*/makeIcon('FileEarmarkMusic','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusicFill=/*#__PURE__*/makeIcon('FileEarmarkMusicFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPerson=/*#__PURE__*/makeIcon('FileEarmarkPerson','');// eslint-disable-next-line\nexport var BIconFileEarmarkPersonFill=/*#__PURE__*/makeIcon('FileEarmarkPersonFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlay=/*#__PURE__*/makeIcon('FileEarmarkPlay','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlayFill=/*#__PURE__*/makeIcon('FileEarmarkPlayFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlus=/*#__PURE__*/makeIcon('FileEarmarkPlus','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlusFill=/*#__PURE__*/makeIcon('FileEarmarkPlusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPost=/*#__PURE__*/makeIcon('FileEarmarkPost','');// eslint-disable-next-line\nexport var BIconFileEarmarkPostFill=/*#__PURE__*/makeIcon('FileEarmarkPostFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPpt=/*#__PURE__*/makeIcon('FileEarmarkPpt','');// eslint-disable-next-line\nexport var BIconFileEarmarkPptFill=/*#__PURE__*/makeIcon('FileEarmarkPptFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtext=/*#__PURE__*/makeIcon('FileEarmarkRichtext','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtextFill=/*#__PURE__*/makeIcon('FileEarmarkRichtextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuled=/*#__PURE__*/makeIcon('FileEarmarkRuled','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuledFill=/*#__PURE__*/makeIcon('FileEarmarkRuledFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlides=/*#__PURE__*/makeIcon('FileEarmarkSlides','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlidesFill=/*#__PURE__*/makeIcon('FileEarmarkSlidesFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheet=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheetFill=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkText=/*#__PURE__*/makeIcon('FileEarmarkText','');// eslint-disable-next-line\nexport var BIconFileEarmarkTextFill=/*#__PURE__*/makeIcon('FileEarmarkTextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkWord=/*#__PURE__*/makeIcon('FileEarmarkWord','');// eslint-disable-next-line\nexport var BIconFileEarmarkWordFill=/*#__PURE__*/makeIcon('FileEarmarkWordFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkX=/*#__PURE__*/makeIcon('FileEarmarkX','');// eslint-disable-next-line\nexport var BIconFileEarmarkXFill=/*#__PURE__*/makeIcon('FileEarmarkXFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkZip=/*#__PURE__*/makeIcon('FileEarmarkZip','');// eslint-disable-next-line\nexport var BIconFileEarmarkZipFill=/*#__PURE__*/makeIcon('FileEarmarkZipFill','');// eslint-disable-next-line\nexport var BIconFileEasel=/*#__PURE__*/makeIcon('FileEasel','');// eslint-disable-next-line\nexport var BIconFileEaselFill=/*#__PURE__*/makeIcon('FileEaselFill','');// eslint-disable-next-line\nexport var BIconFileExcel=/*#__PURE__*/makeIcon('FileExcel','');// eslint-disable-next-line\nexport var BIconFileExcelFill=/*#__PURE__*/makeIcon('FileExcelFill','');// eslint-disable-next-line\nexport var BIconFileFill=/*#__PURE__*/makeIcon('FileFill','');// eslint-disable-next-line\nexport var BIconFileFont=/*#__PURE__*/makeIcon('FileFont','');// eslint-disable-next-line\nexport var BIconFileFontFill=/*#__PURE__*/makeIcon('FileFontFill','');// eslint-disable-next-line\nexport var BIconFileImage=/*#__PURE__*/makeIcon('FileImage','');// eslint-disable-next-line\nexport var BIconFileImageFill=/*#__PURE__*/makeIcon('FileImageFill','');// eslint-disable-next-line\nexport var BIconFileLock=/*#__PURE__*/makeIcon('FileLock','');// eslint-disable-next-line\nexport var BIconFileLock2=/*#__PURE__*/makeIcon('FileLock2','');// eslint-disable-next-line\nexport var BIconFileLock2Fill=/*#__PURE__*/makeIcon('FileLock2Fill','');// eslint-disable-next-line\nexport var BIconFileLockFill=/*#__PURE__*/makeIcon('FileLockFill','');// eslint-disable-next-line\nexport var BIconFileMedical=/*#__PURE__*/makeIcon('FileMedical','');// eslint-disable-next-line\nexport var BIconFileMedicalFill=/*#__PURE__*/makeIcon('FileMedicalFill','');// eslint-disable-next-line\nexport var BIconFileMinus=/*#__PURE__*/makeIcon('FileMinus','');// eslint-disable-next-line\nexport var BIconFileMinusFill=/*#__PURE__*/makeIcon('FileMinusFill','');// eslint-disable-next-line\nexport var BIconFileMusic=/*#__PURE__*/makeIcon('FileMusic','');// eslint-disable-next-line\nexport var BIconFileMusicFill=/*#__PURE__*/makeIcon('FileMusicFill','');// eslint-disable-next-line\nexport var BIconFilePerson=/*#__PURE__*/makeIcon('FilePerson','');// eslint-disable-next-line\nexport var BIconFilePersonFill=/*#__PURE__*/makeIcon('FilePersonFill','');// eslint-disable-next-line\nexport var BIconFilePlay=/*#__PURE__*/makeIcon('FilePlay','');// eslint-disable-next-line\nexport var BIconFilePlayFill=/*#__PURE__*/makeIcon('FilePlayFill','');// eslint-disable-next-line\nexport var BIconFilePlus=/*#__PURE__*/makeIcon('FilePlus','');// eslint-disable-next-line\nexport var BIconFilePlusFill=/*#__PURE__*/makeIcon('FilePlusFill','');// eslint-disable-next-line\nexport var BIconFilePost=/*#__PURE__*/makeIcon('FilePost','');// eslint-disable-next-line\nexport var BIconFilePostFill=/*#__PURE__*/makeIcon('FilePostFill','');// eslint-disable-next-line\nexport var BIconFilePpt=/*#__PURE__*/makeIcon('FilePpt','');// eslint-disable-next-line\nexport var BIconFilePptFill=/*#__PURE__*/makeIcon('FilePptFill','');// eslint-disable-next-line\nexport var BIconFileRichtext=/*#__PURE__*/makeIcon('FileRichtext','');// eslint-disable-next-line\nexport var BIconFileRichtextFill=/*#__PURE__*/makeIcon('FileRichtextFill','');// eslint-disable-next-line\nexport var BIconFileRuled=/*#__PURE__*/makeIcon('FileRuled','');// eslint-disable-next-line\nexport var BIconFileRuledFill=/*#__PURE__*/makeIcon('FileRuledFill','');// eslint-disable-next-line\nexport var BIconFileSlides=/*#__PURE__*/makeIcon('FileSlides','');// eslint-disable-next-line\nexport var BIconFileSlidesFill=/*#__PURE__*/makeIcon('FileSlidesFill','');// eslint-disable-next-line\nexport var BIconFileSpreadsheet=/*#__PURE__*/makeIcon('FileSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileSpreadsheetFill=/*#__PURE__*/makeIcon('FileSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileText=/*#__PURE__*/makeIcon('FileText','');// eslint-disable-next-line\nexport var BIconFileTextFill=/*#__PURE__*/makeIcon('FileTextFill','');// eslint-disable-next-line\nexport var BIconFileWord=/*#__PURE__*/makeIcon('FileWord','');// eslint-disable-next-line\nexport var BIconFileWordFill=/*#__PURE__*/makeIcon('FileWordFill','');// eslint-disable-next-line\nexport var BIconFileX=/*#__PURE__*/makeIcon('FileX','');// eslint-disable-next-line\nexport var BIconFileXFill=/*#__PURE__*/makeIcon('FileXFill','');// eslint-disable-next-line\nexport var BIconFileZip=/*#__PURE__*/makeIcon('FileZip','');// eslint-disable-next-line\nexport var BIconFileZipFill=/*#__PURE__*/makeIcon('FileZipFill','');// eslint-disable-next-line\nexport var BIconFiles=/*#__PURE__*/makeIcon('Files','');// eslint-disable-next-line\nexport var BIconFilesAlt=/*#__PURE__*/makeIcon('FilesAlt','');// eslint-disable-next-line\nexport var BIconFilm=/*#__PURE__*/makeIcon('Film','');// eslint-disable-next-line\nexport var BIconFilter=/*#__PURE__*/makeIcon('Filter','');// eslint-disable-next-line\nexport var BIconFilterCircle=/*#__PURE__*/makeIcon('FilterCircle','');// eslint-disable-next-line\nexport var BIconFilterCircleFill=/*#__PURE__*/makeIcon('FilterCircleFill','');// eslint-disable-next-line\nexport var BIconFilterLeft=/*#__PURE__*/makeIcon('FilterLeft','');// eslint-disable-next-line\nexport var BIconFilterRight=/*#__PURE__*/makeIcon('FilterRight','');// eslint-disable-next-line\nexport var BIconFilterSquare=/*#__PURE__*/makeIcon('FilterSquare','');// eslint-disable-next-line\nexport var BIconFilterSquareFill=/*#__PURE__*/makeIcon('FilterSquareFill','');// eslint-disable-next-line\nexport var BIconFlag=/*#__PURE__*/makeIcon('Flag','');// eslint-disable-next-line\nexport var BIconFlagFill=/*#__PURE__*/makeIcon('FlagFill','');// eslint-disable-next-line\nexport var BIconFlower1=/*#__PURE__*/makeIcon('Flower1','');// eslint-disable-next-line\nexport var BIconFlower2=/*#__PURE__*/makeIcon('Flower2','');// eslint-disable-next-line\nexport var BIconFlower3=/*#__PURE__*/makeIcon('Flower3','');// eslint-disable-next-line\nexport var BIconFolder=/*#__PURE__*/makeIcon('Folder','');// eslint-disable-next-line\nexport var BIconFolder2=/*#__PURE__*/makeIcon('Folder2','');// eslint-disable-next-line\nexport var BIconFolder2Open=/*#__PURE__*/makeIcon('Folder2Open','');// eslint-disable-next-line\nexport var BIconFolderCheck=/*#__PURE__*/makeIcon('FolderCheck','');// eslint-disable-next-line\nexport var BIconFolderFill=/*#__PURE__*/makeIcon('FolderFill','');// eslint-disable-next-line\nexport var BIconFolderMinus=/*#__PURE__*/makeIcon('FolderMinus','');// eslint-disable-next-line\nexport var BIconFolderPlus=/*#__PURE__*/makeIcon('FolderPlus','');// eslint-disable-next-line\nexport var BIconFolderSymlink=/*#__PURE__*/makeIcon('FolderSymlink','');// eslint-disable-next-line\nexport var BIconFolderSymlinkFill=/*#__PURE__*/makeIcon('FolderSymlinkFill','');// eslint-disable-next-line\nexport var BIconFolderX=/*#__PURE__*/makeIcon('FolderX','');// eslint-disable-next-line\nexport var BIconFonts=/*#__PURE__*/makeIcon('Fonts','');// eslint-disable-next-line\nexport var BIconForward=/*#__PURE__*/makeIcon('Forward','');// eslint-disable-next-line\nexport var BIconForwardFill=/*#__PURE__*/makeIcon('ForwardFill','');// eslint-disable-next-line\nexport var BIconFront=/*#__PURE__*/makeIcon('Front','');// eslint-disable-next-line\nexport var BIconFullscreen=/*#__PURE__*/makeIcon('Fullscreen','');// eslint-disable-next-line\nexport var BIconFullscreenExit=/*#__PURE__*/makeIcon('FullscreenExit','');// eslint-disable-next-line\nexport var BIconFunnel=/*#__PURE__*/makeIcon('Funnel','');// eslint-disable-next-line\nexport var BIconFunnelFill=/*#__PURE__*/makeIcon('FunnelFill','');// eslint-disable-next-line\nexport var BIconGear=/*#__PURE__*/makeIcon('Gear','');// eslint-disable-next-line\nexport var BIconGearFill=/*#__PURE__*/makeIcon('GearFill','');// eslint-disable-next-line\nexport var BIconGearWide=/*#__PURE__*/makeIcon('GearWide','');// eslint-disable-next-line\nexport var BIconGearWideConnected=/*#__PURE__*/makeIcon('GearWideConnected','');// eslint-disable-next-line\nexport var BIconGem=/*#__PURE__*/makeIcon('Gem','');// eslint-disable-next-line\nexport var BIconGeo=/*#__PURE__*/makeIcon('Geo','');// eslint-disable-next-line\nexport var BIconGeoAlt=/*#__PURE__*/makeIcon('GeoAlt','');// eslint-disable-next-line\nexport var BIconGeoAltFill=/*#__PURE__*/makeIcon('GeoAltFill','');// eslint-disable-next-line\nexport var BIconGeoFill=/*#__PURE__*/makeIcon('GeoFill','');// eslint-disable-next-line\nexport var BIconGift=/*#__PURE__*/makeIcon('Gift','');// eslint-disable-next-line\nexport var BIconGiftFill=/*#__PURE__*/makeIcon('GiftFill','');// eslint-disable-next-line\nexport var BIconGithub=/*#__PURE__*/makeIcon('Github','');// eslint-disable-next-line\nexport var BIconGlobe=/*#__PURE__*/makeIcon('Globe','');// eslint-disable-next-line\nexport var BIconGlobe2=/*#__PURE__*/makeIcon('Globe2','');// eslint-disable-next-line\nexport var BIconGoogle=/*#__PURE__*/makeIcon('Google','');// eslint-disable-next-line\nexport var BIconGraphDown=/*#__PURE__*/makeIcon('GraphDown','');// eslint-disable-next-line\nexport var BIconGraphUp=/*#__PURE__*/makeIcon('GraphUp','');// eslint-disable-next-line\nexport var BIconGrid=/*#__PURE__*/makeIcon('Grid','');// eslint-disable-next-line\nexport var BIconGrid1x2=/*#__PURE__*/makeIcon('Grid1x2','');// eslint-disable-next-line\nexport var BIconGrid1x2Fill=/*#__PURE__*/makeIcon('Grid1x2Fill','');// eslint-disable-next-line\nexport var BIconGrid3x2=/*#__PURE__*/makeIcon('Grid3x2','');// eslint-disable-next-line\nexport var BIconGrid3x2Gap=/*#__PURE__*/makeIcon('Grid3x2Gap','');// eslint-disable-next-line\nexport var BIconGrid3x2GapFill=/*#__PURE__*/makeIcon('Grid3x2GapFill','');// eslint-disable-next-line\nexport var BIconGrid3x3=/*#__PURE__*/makeIcon('Grid3x3','');// eslint-disable-next-line\nexport var BIconGrid3x3Gap=/*#__PURE__*/makeIcon('Grid3x3Gap','');// eslint-disable-next-line\nexport var BIconGrid3x3GapFill=/*#__PURE__*/makeIcon('Grid3x3GapFill','');// eslint-disable-next-line\nexport var BIconGridFill=/*#__PURE__*/makeIcon('GridFill','');// eslint-disable-next-line\nexport var BIconGripHorizontal=/*#__PURE__*/makeIcon('GripHorizontal','');// eslint-disable-next-line\nexport var BIconGripVertical=/*#__PURE__*/makeIcon('GripVertical','');// eslint-disable-next-line\nexport var BIconHammer=/*#__PURE__*/makeIcon('Hammer','');// eslint-disable-next-line\nexport var BIconHandIndex=/*#__PURE__*/makeIcon('HandIndex','');// eslint-disable-next-line\nexport var BIconHandIndexThumb=/*#__PURE__*/makeIcon('HandIndexThumb','');// eslint-disable-next-line\nexport var BIconHandThumbsDown=/*#__PURE__*/makeIcon('HandThumbsDown','');// eslint-disable-next-line\nexport var BIconHandThumbsUp=/*#__PURE__*/makeIcon('HandThumbsUp','');// eslint-disable-next-line\nexport var BIconHandbag=/*#__PURE__*/makeIcon('Handbag','');// eslint-disable-next-line\nexport var BIconHandbagFill=/*#__PURE__*/makeIcon('HandbagFill','');// eslint-disable-next-line\nexport var BIconHash=/*#__PURE__*/makeIcon('Hash','');// eslint-disable-next-line\nexport var BIconHdd=/*#__PURE__*/makeIcon('Hdd','');// eslint-disable-next-line\nexport var BIconHddFill=/*#__PURE__*/makeIcon('HddFill','');// eslint-disable-next-line\nexport var BIconHddNetwork=/*#__PURE__*/makeIcon('HddNetwork','');// eslint-disable-next-line\nexport var BIconHddNetworkFill=/*#__PURE__*/makeIcon('HddNetworkFill','');// eslint-disable-next-line\nexport var BIconHddRack=/*#__PURE__*/makeIcon('HddRack','');// eslint-disable-next-line\nexport var BIconHddRackFill=/*#__PURE__*/makeIcon('HddRackFill','');// eslint-disable-next-line\nexport var BIconHddStack=/*#__PURE__*/makeIcon('HddStack','');// eslint-disable-next-line\nexport var BIconHddStackFill=/*#__PURE__*/makeIcon('HddStackFill','');// eslint-disable-next-line\nexport var BIconHeadphones=/*#__PURE__*/makeIcon('Headphones','');// eslint-disable-next-line\nexport var BIconHeadset=/*#__PURE__*/makeIcon('Headset','');// eslint-disable-next-line\nexport var BIconHeart=/*#__PURE__*/makeIcon('Heart','');// eslint-disable-next-line\nexport var BIconHeartFill=/*#__PURE__*/makeIcon('HeartFill','');// eslint-disable-next-line\nexport var BIconHeartHalf=/*#__PURE__*/makeIcon('HeartHalf','');// eslint-disable-next-line\nexport var BIconHeptagon=/*#__PURE__*/makeIcon('Heptagon','');// eslint-disable-next-line\nexport var BIconHeptagonFill=/*#__PURE__*/makeIcon('HeptagonFill','');// eslint-disable-next-line\nexport var BIconHeptagonHalf=/*#__PURE__*/makeIcon('HeptagonHalf','');// eslint-disable-next-line\nexport var BIconHexagon=/*#__PURE__*/makeIcon('Hexagon','');// eslint-disable-next-line\nexport var BIconHexagonFill=/*#__PURE__*/makeIcon('HexagonFill','');// eslint-disable-next-line\nexport var BIconHexagonHalf=/*#__PURE__*/makeIcon('HexagonHalf','');// eslint-disable-next-line\nexport var BIconHourglass=/*#__PURE__*/makeIcon('Hourglass','');// eslint-disable-next-line\nexport var BIconHourglassBottom=/*#__PURE__*/makeIcon('HourglassBottom','');// eslint-disable-next-line\nexport var BIconHourglassSplit=/*#__PURE__*/makeIcon('HourglassSplit','');// eslint-disable-next-line\nexport var BIconHourglassTop=/*#__PURE__*/makeIcon('HourglassTop','');// eslint-disable-next-line\nexport var BIconHouse=/*#__PURE__*/makeIcon('House','');// eslint-disable-next-line\nexport var BIconHouseDoor=/*#__PURE__*/makeIcon('HouseDoor','');// eslint-disable-next-line\nexport var BIconHouseDoorFill=/*#__PURE__*/makeIcon('HouseDoorFill','');// eslint-disable-next-line\nexport var BIconHouseFill=/*#__PURE__*/makeIcon('HouseFill','');// eslint-disable-next-line\nexport var BIconHr=/*#__PURE__*/makeIcon('Hr','');// eslint-disable-next-line\nexport var BIconImage=/*#__PURE__*/makeIcon('Image','');// eslint-disable-next-line\nexport var BIconImageAlt=/*#__PURE__*/makeIcon('ImageAlt','');// eslint-disable-next-line\nexport var BIconImageFill=/*#__PURE__*/makeIcon('ImageFill','');// eslint-disable-next-line\nexport var BIconImages=/*#__PURE__*/makeIcon('Images','');// eslint-disable-next-line\nexport var BIconInbox=/*#__PURE__*/makeIcon('Inbox','');// eslint-disable-next-line\nexport var BIconInboxFill=/*#__PURE__*/makeIcon('InboxFill','');// eslint-disable-next-line\nexport var BIconInboxes=/*#__PURE__*/makeIcon('Inboxes','');// eslint-disable-next-line\nexport var BIconInboxesFill=/*#__PURE__*/makeIcon('InboxesFill','');// eslint-disable-next-line\nexport var BIconInfo=/*#__PURE__*/makeIcon('Info','');// eslint-disable-next-line\nexport var BIconInfoCircle=/*#__PURE__*/makeIcon('InfoCircle','');// eslint-disable-next-line\nexport var BIconInfoCircleFill=/*#__PURE__*/makeIcon('InfoCircleFill','');// eslint-disable-next-line\nexport var BIconInfoSquare=/*#__PURE__*/makeIcon('InfoSquare','');// eslint-disable-next-line\nexport var BIconInfoSquareFill=/*#__PURE__*/makeIcon('InfoSquareFill','');// eslint-disable-next-line\nexport var BIconInputCursor=/*#__PURE__*/makeIcon('InputCursor','');// eslint-disable-next-line\nexport var BIconInputCursorText=/*#__PURE__*/makeIcon('InputCursorText','');// eslint-disable-next-line\nexport var BIconInstagram=/*#__PURE__*/makeIcon('Instagram','');// eslint-disable-next-line\nexport var BIconIntersect=/*#__PURE__*/makeIcon('Intersect','');// eslint-disable-next-line\nexport var BIconJournal=/*#__PURE__*/makeIcon('Journal','');// eslint-disable-next-line\nexport var BIconJournalAlbum=/*#__PURE__*/makeIcon('JournalAlbum','');// eslint-disable-next-line\nexport var BIconJournalArrowDown=/*#__PURE__*/makeIcon('JournalArrowDown','');// eslint-disable-next-line\nexport var BIconJournalArrowUp=/*#__PURE__*/makeIcon('JournalArrowUp','');// eslint-disable-next-line\nexport var BIconJournalBookmark=/*#__PURE__*/makeIcon('JournalBookmark','');// eslint-disable-next-line\nexport var BIconJournalBookmarkFill=/*#__PURE__*/makeIcon('JournalBookmarkFill','');// eslint-disable-next-line\nexport var BIconJournalCheck=/*#__PURE__*/makeIcon('JournalCheck','');// eslint-disable-next-line\nexport var BIconJournalCode=/*#__PURE__*/makeIcon('JournalCode','');// eslint-disable-next-line\nexport var BIconJournalMedical=/*#__PURE__*/makeIcon('JournalMedical','');// eslint-disable-next-line\nexport var BIconJournalMinus=/*#__PURE__*/makeIcon('JournalMinus','');// eslint-disable-next-line\nexport var BIconJournalPlus=/*#__PURE__*/makeIcon('JournalPlus','');// eslint-disable-next-line\nexport var BIconJournalRichtext=/*#__PURE__*/makeIcon('JournalRichtext','');// eslint-disable-next-line\nexport var BIconJournalText=/*#__PURE__*/makeIcon('JournalText','');// eslint-disable-next-line\nexport var BIconJournalX=/*#__PURE__*/makeIcon('JournalX','');// eslint-disable-next-line\nexport var BIconJournals=/*#__PURE__*/makeIcon('Journals','');// eslint-disable-next-line\nexport var BIconJoystick=/*#__PURE__*/makeIcon('Joystick','');// eslint-disable-next-line\nexport var BIconJustify=/*#__PURE__*/makeIcon('Justify','');// eslint-disable-next-line\nexport var BIconJustifyLeft=/*#__PURE__*/makeIcon('JustifyLeft','');// eslint-disable-next-line\nexport var BIconJustifyRight=/*#__PURE__*/makeIcon('JustifyRight','');// eslint-disable-next-line\nexport var BIconKanban=/*#__PURE__*/makeIcon('Kanban','');// eslint-disable-next-line\nexport var BIconKanbanFill=/*#__PURE__*/makeIcon('KanbanFill','');// eslint-disable-next-line\nexport var BIconKey=/*#__PURE__*/makeIcon('Key','');// eslint-disable-next-line\nexport var BIconKeyFill=/*#__PURE__*/makeIcon('KeyFill','');// eslint-disable-next-line\nexport var BIconKeyboard=/*#__PURE__*/makeIcon('Keyboard','');// eslint-disable-next-line\nexport var BIconKeyboardFill=/*#__PURE__*/makeIcon('KeyboardFill','');// eslint-disable-next-line\nexport var BIconLadder=/*#__PURE__*/makeIcon('Ladder','');// eslint-disable-next-line\nexport var BIconLamp=/*#__PURE__*/makeIcon('Lamp','');// eslint-disable-next-line\nexport var BIconLampFill=/*#__PURE__*/makeIcon('LampFill','');// eslint-disable-next-line\nexport var BIconLaptop=/*#__PURE__*/makeIcon('Laptop','');// eslint-disable-next-line\nexport var BIconLaptopFill=/*#__PURE__*/makeIcon('LaptopFill','');// eslint-disable-next-line\nexport var BIconLayers=/*#__PURE__*/makeIcon('Layers','');// eslint-disable-next-line\nexport var BIconLayersFill=/*#__PURE__*/makeIcon('LayersFill','');// eslint-disable-next-line\nexport var BIconLayersHalf=/*#__PURE__*/makeIcon('LayersHalf','');// eslint-disable-next-line\nexport var BIconLayoutSidebar=/*#__PURE__*/makeIcon('LayoutSidebar','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInset=/*#__PURE__*/makeIcon('LayoutSidebarInset','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInsetReverse=/*#__PURE__*/makeIcon('LayoutSidebarInsetReverse','');// eslint-disable-next-line\nexport var BIconLayoutSidebarReverse=/*#__PURE__*/makeIcon('LayoutSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutSplit=/*#__PURE__*/makeIcon('LayoutSplit','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebar=/*#__PURE__*/makeIcon('LayoutTextSidebar','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebarReverse=/*#__PURE__*/makeIcon('LayoutTextSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutTextWindow=/*#__PURE__*/makeIcon('LayoutTextWindow','');// eslint-disable-next-line\nexport var BIconLayoutTextWindowReverse=/*#__PURE__*/makeIcon('LayoutTextWindowReverse','');// eslint-disable-next-line\nexport var BIconLayoutThreeColumns=/*#__PURE__*/makeIcon('LayoutThreeColumns','');// eslint-disable-next-line\nexport var BIconLayoutWtf=/*#__PURE__*/makeIcon('LayoutWtf','');// eslint-disable-next-line\nexport var BIconLifePreserver=/*#__PURE__*/makeIcon('LifePreserver','');// eslint-disable-next-line\nexport var BIconLightning=/*#__PURE__*/makeIcon('Lightning','');// eslint-disable-next-line\nexport var BIconLightningFill=/*#__PURE__*/makeIcon('LightningFill','');// eslint-disable-next-line\nexport var BIconLink=/*#__PURE__*/makeIcon('Link','');// eslint-disable-next-line\nexport var BIconLink45deg=/*#__PURE__*/makeIcon('Link45deg','');// eslint-disable-next-line\nexport var BIconLinkedin=/*#__PURE__*/makeIcon('Linkedin','');// eslint-disable-next-line\nexport var BIconList=/*#__PURE__*/makeIcon('List','');// eslint-disable-next-line\nexport var BIconListCheck=/*#__PURE__*/makeIcon('ListCheck','');// eslint-disable-next-line\nexport var BIconListNested=/*#__PURE__*/makeIcon('ListNested','');// eslint-disable-next-line\nexport var BIconListOl=/*#__PURE__*/makeIcon('ListOl','');// eslint-disable-next-line\nexport var BIconListStars=/*#__PURE__*/makeIcon('ListStars','');// eslint-disable-next-line\nexport var BIconListTask=/*#__PURE__*/makeIcon('ListTask','');// eslint-disable-next-line\nexport var BIconListUl=/*#__PURE__*/makeIcon('ListUl','');// eslint-disable-next-line\nexport var BIconLock=/*#__PURE__*/makeIcon('Lock','');// eslint-disable-next-line\nexport var BIconLockFill=/*#__PURE__*/makeIcon('LockFill','');// eslint-disable-next-line\nexport var BIconMailbox=/*#__PURE__*/makeIcon('Mailbox','');// eslint-disable-next-line\nexport var BIconMailbox2=/*#__PURE__*/makeIcon('Mailbox2','');// eslint-disable-next-line\nexport var BIconMap=/*#__PURE__*/makeIcon('Map','');// eslint-disable-next-line\nexport var BIconMapFill=/*#__PURE__*/makeIcon('MapFill','');// eslint-disable-next-line\nexport var BIconMarkdown=/*#__PURE__*/makeIcon('Markdown','');// eslint-disable-next-line\nexport var BIconMarkdownFill=/*#__PURE__*/makeIcon('MarkdownFill','');// eslint-disable-next-line\nexport var BIconMenuApp=/*#__PURE__*/makeIcon('MenuApp','');// eslint-disable-next-line\nexport var BIconMenuAppFill=/*#__PURE__*/makeIcon('MenuAppFill','');// eslint-disable-next-line\nexport var BIconMenuButton=/*#__PURE__*/makeIcon('MenuButton','');// eslint-disable-next-line\nexport var BIconMenuButtonFill=/*#__PURE__*/makeIcon('MenuButtonFill','');// eslint-disable-next-line\nexport var BIconMenuButtonWide=/*#__PURE__*/makeIcon('MenuButtonWide','');// eslint-disable-next-line\nexport var BIconMenuButtonWideFill=/*#__PURE__*/makeIcon('MenuButtonWideFill','');// eslint-disable-next-line\nexport var BIconMenuDown=/*#__PURE__*/makeIcon('MenuDown','');// eslint-disable-next-line\nexport var BIconMenuUp=/*#__PURE__*/makeIcon('MenuUp','');// eslint-disable-next-line\nexport var BIconMic=/*#__PURE__*/makeIcon('Mic','');// eslint-disable-next-line\nexport var BIconMicFill=/*#__PURE__*/makeIcon('MicFill','');// eslint-disable-next-line\nexport var BIconMicMute=/*#__PURE__*/makeIcon('MicMute','');// eslint-disable-next-line\nexport var BIconMicMuteFill=/*#__PURE__*/makeIcon('MicMuteFill','');// eslint-disable-next-line\nexport var BIconMinecart=/*#__PURE__*/makeIcon('Minecart','');// eslint-disable-next-line\nexport var BIconMinecartLoaded=/*#__PURE__*/makeIcon('MinecartLoaded','');// eslint-disable-next-line\nexport var BIconMoon=/*#__PURE__*/makeIcon('Moon','');// eslint-disable-next-line\nexport var BIconMouse=/*#__PURE__*/makeIcon('Mouse','');// eslint-disable-next-line\nexport var BIconMouse2=/*#__PURE__*/makeIcon('Mouse2','');// eslint-disable-next-line\nexport var BIconMouse3=/*#__PURE__*/makeIcon('Mouse3','');// eslint-disable-next-line\nexport var BIconMusicNote=/*#__PURE__*/makeIcon('MusicNote','');// eslint-disable-next-line\nexport var BIconMusicNoteBeamed=/*#__PURE__*/makeIcon('MusicNoteBeamed','');// eslint-disable-next-line\nexport var BIconMusicNoteList=/*#__PURE__*/makeIcon('MusicNoteList','');// eslint-disable-next-line\nexport var BIconMusicPlayer=/*#__PURE__*/makeIcon('MusicPlayer','');// eslint-disable-next-line\nexport var BIconMusicPlayerFill=/*#__PURE__*/makeIcon('MusicPlayerFill','');// eslint-disable-next-line\nexport var BIconNewspaper=/*#__PURE__*/makeIcon('Newspaper','');// eslint-disable-next-line\nexport var BIconNodeMinus=/*#__PURE__*/makeIcon('NodeMinus','');// eslint-disable-next-line\nexport var BIconNodeMinusFill=/*#__PURE__*/makeIcon('NodeMinusFill','');// eslint-disable-next-line\nexport var BIconNodePlus=/*#__PURE__*/makeIcon('NodePlus','');// eslint-disable-next-line\nexport var BIconNodePlusFill=/*#__PURE__*/makeIcon('NodePlusFill','');// eslint-disable-next-line\nexport var BIconNut=/*#__PURE__*/makeIcon('Nut','');// eslint-disable-next-line\nexport var BIconNutFill=/*#__PURE__*/makeIcon('NutFill','');// eslint-disable-next-line\nexport var BIconOctagon=/*#__PURE__*/makeIcon('Octagon','');// eslint-disable-next-line\nexport var BIconOctagonFill=/*#__PURE__*/makeIcon('OctagonFill','');// eslint-disable-next-line\nexport var BIconOctagonHalf=/*#__PURE__*/makeIcon('OctagonHalf','');// eslint-disable-next-line\nexport var BIconOption=/*#__PURE__*/makeIcon('Option','');// eslint-disable-next-line\nexport var BIconOutlet=/*#__PURE__*/makeIcon('Outlet','');// eslint-disable-next-line\nexport var BIconPaperclip=/*#__PURE__*/makeIcon('Paperclip','');// eslint-disable-next-line\nexport var BIconParagraph=/*#__PURE__*/makeIcon('Paragraph','');// eslint-disable-next-line\nexport var BIconPatchCheck=/*#__PURE__*/makeIcon('PatchCheck','');// eslint-disable-next-line\nexport var BIconPatchCheckFll=/*#__PURE__*/makeIcon('PatchCheckFll','');// eslint-disable-next-line\nexport var BIconPatchExclamation=/*#__PURE__*/makeIcon('PatchExclamation','');// eslint-disable-next-line\nexport var BIconPatchExclamationFll=/*#__PURE__*/makeIcon('PatchExclamationFll','');// eslint-disable-next-line\nexport var BIconPatchMinus=/*#__PURE__*/makeIcon('PatchMinus','');// eslint-disable-next-line\nexport var BIconPatchMinusFll=/*#__PURE__*/makeIcon('PatchMinusFll','');// eslint-disable-next-line\nexport var BIconPatchPlus=/*#__PURE__*/makeIcon('PatchPlus','');// eslint-disable-next-line\nexport var BIconPatchPlusFll=/*#__PURE__*/makeIcon('PatchPlusFll','');// eslint-disable-next-line\nexport var BIconPatchQuestion=/*#__PURE__*/makeIcon('PatchQuestion','');// eslint-disable-next-line\nexport var BIconPatchQuestionFll=/*#__PURE__*/makeIcon('PatchQuestionFll','');// eslint-disable-next-line\nexport var BIconPause=/*#__PURE__*/makeIcon('Pause','');// eslint-disable-next-line\nexport var BIconPauseBtn=/*#__PURE__*/makeIcon('PauseBtn','');// eslint-disable-next-line\nexport var BIconPauseBtnFill=/*#__PURE__*/makeIcon('PauseBtnFill','');// eslint-disable-next-line\nexport var BIconPauseCircle=/*#__PURE__*/makeIcon('PauseCircle','');// eslint-disable-next-line\nexport var BIconPauseCircleFill=/*#__PURE__*/makeIcon('PauseCircleFill','');// eslint-disable-next-line\nexport var BIconPauseFill=/*#__PURE__*/makeIcon('PauseFill','');// eslint-disable-next-line\nexport var BIconPeace=/*#__PURE__*/makeIcon('Peace','');// eslint-disable-next-line\nexport var BIconPeaceFill=/*#__PURE__*/makeIcon('PeaceFill','');// eslint-disable-next-line\nexport var BIconPen=/*#__PURE__*/makeIcon('Pen','');// eslint-disable-next-line\nexport var BIconPenFill=/*#__PURE__*/makeIcon('PenFill','');// eslint-disable-next-line\nexport var BIconPencil=/*#__PURE__*/makeIcon('Pencil','');// eslint-disable-next-line\nexport var BIconPencilFill=/*#__PURE__*/makeIcon('PencilFill','');// eslint-disable-next-line\nexport var BIconPencilSquare=/*#__PURE__*/makeIcon('PencilSquare','');// eslint-disable-next-line\nexport var BIconPentagon=/*#__PURE__*/makeIcon('Pentagon','');// eslint-disable-next-line\nexport var BIconPentagonFill=/*#__PURE__*/makeIcon('PentagonFill','');// eslint-disable-next-line\nexport var BIconPentagonHalf=/*#__PURE__*/makeIcon('PentagonHalf','');// eslint-disable-next-line\nexport var BIconPeople=/*#__PURE__*/makeIcon('People','');// eslint-disable-next-line\nexport var BIconPeopleFill=/*#__PURE__*/makeIcon('PeopleFill','');// eslint-disable-next-line\nexport var BIconPercent=/*#__PURE__*/makeIcon('Percent','');// eslint-disable-next-line\nexport var BIconPerson=/*#__PURE__*/makeIcon('Person','');// eslint-disable-next-line\nexport var BIconPersonBadge=/*#__PURE__*/makeIcon('PersonBadge','');// eslint-disable-next-line\nexport var BIconPersonBadgeFill=/*#__PURE__*/makeIcon('PersonBadgeFill','');// eslint-disable-next-line\nexport var BIconPersonBoundingBox=/*#__PURE__*/makeIcon('PersonBoundingBox','');// eslint-disable-next-line\nexport var BIconPersonCheck=/*#__PURE__*/makeIcon('PersonCheck','');// eslint-disable-next-line\nexport var BIconPersonCheckFill=/*#__PURE__*/makeIcon('PersonCheckFill','');// eslint-disable-next-line\nexport var BIconPersonCircle=/*#__PURE__*/makeIcon('PersonCircle','');// eslint-disable-next-line\nexport var BIconPersonDash=/*#__PURE__*/makeIcon('PersonDash','');// eslint-disable-next-line\nexport var BIconPersonDashFill=/*#__PURE__*/makeIcon('PersonDashFill','');// eslint-disable-next-line\nexport var BIconPersonFill=/*#__PURE__*/makeIcon('PersonFill','');// eslint-disable-next-line\nexport var BIconPersonLinesFill=/*#__PURE__*/makeIcon('PersonLinesFill','');// eslint-disable-next-line\nexport var BIconPersonPlus=/*#__PURE__*/makeIcon('PersonPlus','');// eslint-disable-next-line\nexport var BIconPersonPlusFill=/*#__PURE__*/makeIcon('PersonPlusFill','');// eslint-disable-next-line\nexport var BIconPersonSquare=/*#__PURE__*/makeIcon('PersonSquare','');// eslint-disable-next-line\nexport var BIconPersonX=/*#__PURE__*/makeIcon('PersonX','');// eslint-disable-next-line\nexport var BIconPersonXFill=/*#__PURE__*/makeIcon('PersonXFill','');// eslint-disable-next-line\nexport var BIconPhone=/*#__PURE__*/makeIcon('Phone','');// eslint-disable-next-line\nexport var BIconPhoneFill=/*#__PURE__*/makeIcon('PhoneFill','');// eslint-disable-next-line\nexport var BIconPhoneLandscape=/*#__PURE__*/makeIcon('PhoneLandscape','');// eslint-disable-next-line\nexport var BIconPhoneLandscapeFill=/*#__PURE__*/makeIcon('PhoneLandscapeFill','');// eslint-disable-next-line\nexport var BIconPhoneVibrate=/*#__PURE__*/makeIcon('PhoneVibrate','');// eslint-disable-next-line\nexport var BIconPieChart=/*#__PURE__*/makeIcon('PieChart','');// eslint-disable-next-line\nexport var BIconPieChartFill=/*#__PURE__*/makeIcon('PieChartFill','');// eslint-disable-next-line\nexport var BIconPip=/*#__PURE__*/makeIcon('Pip','');// eslint-disable-next-line\nexport var BIconPipFill=/*#__PURE__*/makeIcon('PipFill','');// eslint-disable-next-line\nexport var BIconPlay=/*#__PURE__*/makeIcon('Play','');// eslint-disable-next-line\nexport var BIconPlayBtn=/*#__PURE__*/makeIcon('PlayBtn','');// eslint-disable-next-line\nexport var BIconPlayBtnFill=/*#__PURE__*/makeIcon('PlayBtnFill','');// eslint-disable-next-line\nexport var BIconPlayCircle=/*#__PURE__*/makeIcon('PlayCircle','');// eslint-disable-next-line\nexport var BIconPlayCircleFill=/*#__PURE__*/makeIcon('PlayCircleFill','');// eslint-disable-next-line\nexport var BIconPlayFill=/*#__PURE__*/makeIcon('PlayFill','');// eslint-disable-next-line\nexport var BIconPlug=/*#__PURE__*/makeIcon('Plug','');// eslint-disable-next-line\nexport var BIconPlugFill=/*#__PURE__*/makeIcon('PlugFill','');// eslint-disable-next-line\nexport var BIconPlus=/*#__PURE__*/makeIcon('Plus','');// eslint-disable-next-line\nexport var BIconPlusCircle=/*#__PURE__*/makeIcon('PlusCircle','');// eslint-disable-next-line\nexport var BIconPlusCircleFill=/*#__PURE__*/makeIcon('PlusCircleFill','');// eslint-disable-next-line\nexport var BIconPlusSquare=/*#__PURE__*/makeIcon('PlusSquare','');// eslint-disable-next-line\nexport var BIconPlusSquareFill=/*#__PURE__*/makeIcon('PlusSquareFill','');// eslint-disable-next-line\nexport var BIconPower=/*#__PURE__*/makeIcon('Power','');// eslint-disable-next-line\nexport var BIconPrinter=/*#__PURE__*/makeIcon('Printer','');// eslint-disable-next-line\nexport var BIconPrinterFill=/*#__PURE__*/makeIcon('PrinterFill','');// eslint-disable-next-line\nexport var BIconPuzzle=/*#__PURE__*/makeIcon('Puzzle','');// eslint-disable-next-line\nexport var BIconPuzzleFill=/*#__PURE__*/makeIcon('PuzzleFill','');// eslint-disable-next-line\nexport var BIconQuestion=/*#__PURE__*/makeIcon('Question','');// eslint-disable-next-line\nexport var BIconQuestionCircle=/*#__PURE__*/makeIcon('QuestionCircle','');// eslint-disable-next-line\nexport var BIconQuestionCircleFill=/*#__PURE__*/makeIcon('QuestionCircleFill','');// eslint-disable-next-line\nexport var BIconQuestionDiamond=/*#__PURE__*/makeIcon('QuestionDiamond','');// eslint-disable-next-line\nexport var BIconQuestionDiamondFill=/*#__PURE__*/makeIcon('QuestionDiamondFill','');// eslint-disable-next-line\nexport var BIconQuestionOctagon=/*#__PURE__*/makeIcon('QuestionOctagon','');// eslint-disable-next-line\nexport var BIconQuestionOctagonFill=/*#__PURE__*/makeIcon('QuestionOctagonFill','');// eslint-disable-next-line\nexport var BIconQuestionSquare=/*#__PURE__*/makeIcon('QuestionSquare','');// eslint-disable-next-line\nexport var BIconQuestionSquareFill=/*#__PURE__*/makeIcon('QuestionSquareFill','');// eslint-disable-next-line\nexport var BIconReceipt=/*#__PURE__*/makeIcon('Receipt','');// eslint-disable-next-line\nexport var BIconReceiptCutoff=/*#__PURE__*/makeIcon('ReceiptCutoff','');// eslint-disable-next-line\nexport var BIconReception0=/*#__PURE__*/makeIcon('Reception0','');// eslint-disable-next-line\nexport var BIconReception1=/*#__PURE__*/makeIcon('Reception1','');// eslint-disable-next-line\nexport var BIconReception2=/*#__PURE__*/makeIcon('Reception2','');// eslint-disable-next-line\nexport var BIconReception3=/*#__PURE__*/makeIcon('Reception3','');// eslint-disable-next-line\nexport var BIconReception4=/*#__PURE__*/makeIcon('Reception4','');// eslint-disable-next-line\nexport var BIconRecord=/*#__PURE__*/makeIcon('Record','');// eslint-disable-next-line\nexport var BIconRecord2=/*#__PURE__*/makeIcon('Record2','');// eslint-disable-next-line\nexport var BIconRecord2Fill=/*#__PURE__*/makeIcon('Record2Fill','');// eslint-disable-next-line\nexport var BIconRecordBtn=/*#__PURE__*/makeIcon('RecordBtn','');// eslint-disable-next-line\nexport var BIconRecordBtnFill=/*#__PURE__*/makeIcon('RecordBtnFill','');// eslint-disable-next-line\nexport var BIconRecordCircle=/*#__PURE__*/makeIcon('RecordCircle','');// eslint-disable-next-line\nexport var BIconRecordCircleFill=/*#__PURE__*/makeIcon('RecordCircleFill','');// eslint-disable-next-line\nexport var BIconRecordFill=/*#__PURE__*/makeIcon('RecordFill','');// eslint-disable-next-line\nexport var BIconReply=/*#__PURE__*/makeIcon('Reply','');// eslint-disable-next-line\nexport var BIconReplyAll=/*#__PURE__*/makeIcon('ReplyAll','');// eslint-disable-next-line\nexport var BIconReplyAllFill=/*#__PURE__*/makeIcon('ReplyAllFill','');// eslint-disable-next-line\nexport var BIconReplyFill=/*#__PURE__*/makeIcon('ReplyFill','');// eslint-disable-next-line\nexport var BIconRss=/*#__PURE__*/makeIcon('Rss','');// eslint-disable-next-line\nexport var BIconRssFill=/*#__PURE__*/makeIcon('RssFill','');// eslint-disable-next-line\nexport var BIconScissors=/*#__PURE__*/makeIcon('Scissors','');// eslint-disable-next-line\nexport var BIconScrewdriver=/*#__PURE__*/makeIcon('Screwdriver','');// eslint-disable-next-line\nexport var BIconSearch=/*#__PURE__*/makeIcon('Search','');// eslint-disable-next-line\nexport var BIconSegmentedNav=/*#__PURE__*/makeIcon('SegmentedNav','');// eslint-disable-next-line\nexport var BIconServer=/*#__PURE__*/makeIcon('Server','');// eslint-disable-next-line\nexport var BIconShare=/*#__PURE__*/makeIcon('Share','');// eslint-disable-next-line\nexport var BIconShareFill=/*#__PURE__*/makeIcon('ShareFill','');// eslint-disable-next-line\nexport var BIconShield=/*#__PURE__*/makeIcon('Shield','');// eslint-disable-next-line\nexport var BIconShieldCheck=/*#__PURE__*/makeIcon('ShieldCheck','');// eslint-disable-next-line\nexport var BIconShieldExclamation=/*#__PURE__*/makeIcon('ShieldExclamation','');// eslint-disable-next-line\nexport var BIconShieldFill=/*#__PURE__*/makeIcon('ShieldFill','');// eslint-disable-next-line\nexport var BIconShieldFillCheck=/*#__PURE__*/makeIcon('ShieldFillCheck','');// eslint-disable-next-line\nexport var BIconShieldFillExclamation=/*#__PURE__*/makeIcon('ShieldFillExclamation','');// eslint-disable-next-line\nexport var BIconShieldFillMinus=/*#__PURE__*/makeIcon('ShieldFillMinus','');// eslint-disable-next-line\nexport var BIconShieldFillPlus=/*#__PURE__*/makeIcon('ShieldFillPlus','');// eslint-disable-next-line\nexport var BIconShieldFillX=/*#__PURE__*/makeIcon('ShieldFillX','');// eslint-disable-next-line\nexport var BIconShieldLock=/*#__PURE__*/makeIcon('ShieldLock','');// eslint-disable-next-line\nexport var BIconShieldLockFill=/*#__PURE__*/makeIcon('ShieldLockFill','');// eslint-disable-next-line\nexport var BIconShieldMinus=/*#__PURE__*/makeIcon('ShieldMinus','');// eslint-disable-next-line\nexport var BIconShieldPlus=/*#__PURE__*/makeIcon('ShieldPlus','');// eslint-disable-next-line\nexport var BIconShieldShaded=/*#__PURE__*/makeIcon('ShieldShaded','');// eslint-disable-next-line\nexport var BIconShieldSlash=/*#__PURE__*/makeIcon('ShieldSlash','');// eslint-disable-next-line\nexport var BIconShieldSlashFill=/*#__PURE__*/makeIcon('ShieldSlashFill','');// eslint-disable-next-line\nexport var BIconShieldX=/*#__PURE__*/makeIcon('ShieldX','');// eslint-disable-next-line\nexport var BIconShift=/*#__PURE__*/makeIcon('Shift','');// eslint-disable-next-line\nexport var BIconShiftFill=/*#__PURE__*/makeIcon('ShiftFill','');// eslint-disable-next-line\nexport var BIconShop=/*#__PURE__*/makeIcon('Shop','');// eslint-disable-next-line\nexport var BIconShopWindow=/*#__PURE__*/makeIcon('ShopWindow','');// eslint-disable-next-line\nexport var BIconShuffle=/*#__PURE__*/makeIcon('Shuffle','');// eslint-disable-next-line\nexport var BIconSignpost=/*#__PURE__*/makeIcon('Signpost','');// eslint-disable-next-line\nexport var BIconSignpost2=/*#__PURE__*/makeIcon('Signpost2','');// eslint-disable-next-line\nexport var BIconSignpost2Fill=/*#__PURE__*/makeIcon('Signpost2Fill','');// eslint-disable-next-line\nexport var BIconSignpostFill=/*#__PURE__*/makeIcon('SignpostFill','');// eslint-disable-next-line\nexport var BIconSignpostSplit=/*#__PURE__*/makeIcon('SignpostSplit','');// eslint-disable-next-line\nexport var BIconSignpostSplitFill=/*#__PURE__*/makeIcon('SignpostSplitFill','');// eslint-disable-next-line\nexport var BIconSim=/*#__PURE__*/makeIcon('Sim','');// eslint-disable-next-line\nexport var BIconSimFill=/*#__PURE__*/makeIcon('SimFill','');// eslint-disable-next-line\nexport var BIconSkipBackward=/*#__PURE__*/makeIcon('SkipBackward','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtn=/*#__PURE__*/makeIcon('SkipBackwardBtn','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtnFill=/*#__PURE__*/makeIcon('SkipBackwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircle=/*#__PURE__*/makeIcon('SkipBackwardCircle','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircleFill=/*#__PURE__*/makeIcon('SkipBackwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardFill=/*#__PURE__*/makeIcon('SkipBackwardFill','');// eslint-disable-next-line\nexport var BIconSkipEnd=/*#__PURE__*/makeIcon('SkipEnd','');// eslint-disable-next-line\nexport var BIconSkipEndBtn=/*#__PURE__*/makeIcon('SkipEndBtn','');// eslint-disable-next-line\nexport var BIconSkipEndBtnFill=/*#__PURE__*/makeIcon('SkipEndBtnFill','');// eslint-disable-next-line\nexport var BIconSkipEndCircle=/*#__PURE__*/makeIcon('SkipEndCircle','');// eslint-disable-next-line\nexport var BIconSkipEndCircleFill=/*#__PURE__*/makeIcon('SkipEndCircleFill','');// eslint-disable-next-line\nexport var BIconSkipEndFill=/*#__PURE__*/makeIcon('SkipEndFill','');// eslint-disable-next-line\nexport var BIconSkipForward=/*#__PURE__*/makeIcon('SkipForward','');// eslint-disable-next-line\nexport var BIconSkipForwardBtn=/*#__PURE__*/makeIcon('SkipForwardBtn','');// eslint-disable-next-line\nexport var BIconSkipForwardBtnFill=/*#__PURE__*/makeIcon('SkipForwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipForwardCircle=/*#__PURE__*/makeIcon('SkipForwardCircle','');// eslint-disable-next-line\nexport var BIconSkipForwardCircleFill=/*#__PURE__*/makeIcon('SkipForwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipForwardFill=/*#__PURE__*/makeIcon('SkipForwardFill','');// eslint-disable-next-line\nexport var BIconSkipStart=/*#__PURE__*/makeIcon('SkipStart','');// eslint-disable-next-line\nexport var BIconSkipStartBtn=/*#__PURE__*/makeIcon('SkipStartBtn','');// eslint-disable-next-line\nexport var BIconSkipStartBtnFill=/*#__PURE__*/makeIcon('SkipStartBtnFill','');// eslint-disable-next-line\nexport var BIconSkipStartCircle=/*#__PURE__*/makeIcon('SkipStartCircle','');// eslint-disable-next-line\nexport var BIconSkipStartCircleFill=/*#__PURE__*/makeIcon('SkipStartCircleFill','');// eslint-disable-next-line\nexport var BIconSkipStartFill=/*#__PURE__*/makeIcon('SkipStartFill','');// eslint-disable-next-line\nexport var BIconSlack=/*#__PURE__*/makeIcon('Slack','');// eslint-disable-next-line\nexport var BIconSlash=/*#__PURE__*/makeIcon('Slash','');// eslint-disable-next-line\nexport var BIconSlashCircle=/*#__PURE__*/makeIcon('SlashCircle','');// eslint-disable-next-line\nexport var BIconSlashCircleFill=/*#__PURE__*/makeIcon('SlashCircleFill','');// eslint-disable-next-line\nexport var BIconSlashSquare=/*#__PURE__*/makeIcon('SlashSquare','');// eslint-disable-next-line\nexport var BIconSlashSquareFill=/*#__PURE__*/makeIcon('SlashSquareFill','');// eslint-disable-next-line\nexport var BIconSliders=/*#__PURE__*/makeIcon('Sliders','');// eslint-disable-next-line\nexport var BIconSmartwatch=/*#__PURE__*/makeIcon('Smartwatch','');// eslint-disable-next-line\nexport var BIconSortAlphaDown=/*#__PURE__*/makeIcon('SortAlphaDown','');// eslint-disable-next-line\nexport var BIconSortAlphaDownAlt=/*#__PURE__*/makeIcon('SortAlphaDownAlt','');// eslint-disable-next-line\nexport var BIconSortAlphaUp=/*#__PURE__*/makeIcon('SortAlphaUp','');// eslint-disable-next-line\nexport var BIconSortAlphaUpAlt=/*#__PURE__*/makeIcon('SortAlphaUpAlt','');// eslint-disable-next-line\nexport var BIconSortDown=/*#__PURE__*/makeIcon('SortDown','');// eslint-disable-next-line\nexport var BIconSortDownAlt=/*#__PURE__*/makeIcon('SortDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericDown=/*#__PURE__*/makeIcon('SortNumericDown','');// eslint-disable-next-line\nexport var BIconSortNumericDownAlt=/*#__PURE__*/makeIcon('SortNumericDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericUp=/*#__PURE__*/makeIcon('SortNumericUp','');// eslint-disable-next-line\nexport var BIconSortNumericUpAlt=/*#__PURE__*/makeIcon('SortNumericUpAlt','');// eslint-disable-next-line\nexport var BIconSortUp=/*#__PURE__*/makeIcon('SortUp','');// eslint-disable-next-line\nexport var BIconSortUpAlt=/*#__PURE__*/makeIcon('SortUpAlt','');// eslint-disable-next-line\nexport var BIconSoundwave=/*#__PURE__*/makeIcon('Soundwave','');// eslint-disable-next-line\nexport var BIconSpeaker=/*#__PURE__*/makeIcon('Speaker','');// eslint-disable-next-line\nexport var BIconSpeakerFill=/*#__PURE__*/makeIcon('SpeakerFill','');// eslint-disable-next-line\nexport var BIconSpellcheck=/*#__PURE__*/makeIcon('Spellcheck','');// eslint-disable-next-line\nexport var BIconSquare=/*#__PURE__*/makeIcon('Square','');// eslint-disable-next-line\nexport var BIconSquareFill=/*#__PURE__*/makeIcon('SquareFill','');// eslint-disable-next-line\nexport var BIconSquareHalf=/*#__PURE__*/makeIcon('SquareHalf','');// eslint-disable-next-line\nexport var BIconStar=/*#__PURE__*/makeIcon('Star','');// eslint-disable-next-line\nexport var BIconStarFill=/*#__PURE__*/makeIcon('StarFill','');// eslint-disable-next-line\nexport var BIconStarHalf=/*#__PURE__*/makeIcon('StarHalf','');// eslint-disable-next-line\nexport var BIconStickies=/*#__PURE__*/makeIcon('Stickies','');// eslint-disable-next-line\nexport var BIconStickiesFill=/*#__PURE__*/makeIcon('StickiesFill','');// eslint-disable-next-line\nexport var BIconSticky=/*#__PURE__*/makeIcon('Sticky','');// eslint-disable-next-line\nexport var BIconStickyFill=/*#__PURE__*/makeIcon('StickyFill','');// eslint-disable-next-line\nexport var BIconStop=/*#__PURE__*/makeIcon('Stop','');// eslint-disable-next-line\nexport var BIconStopBtn=/*#__PURE__*/makeIcon('StopBtn','');// eslint-disable-next-line\nexport var BIconStopBtnFill=/*#__PURE__*/makeIcon('StopBtnFill','');// eslint-disable-next-line\nexport var BIconStopCircle=/*#__PURE__*/makeIcon('StopCircle','');// eslint-disable-next-line\nexport var BIconStopCircleFill=/*#__PURE__*/makeIcon('StopCircleFill','');// eslint-disable-next-line\nexport var BIconStopFill=/*#__PURE__*/makeIcon('StopFill','');// eslint-disable-next-line\nexport var BIconStoplights=/*#__PURE__*/makeIcon('Stoplights','');// eslint-disable-next-line\nexport var BIconStoplightsFill=/*#__PURE__*/makeIcon('StoplightsFill','');// eslint-disable-next-line\nexport var BIconStopwatch=/*#__PURE__*/makeIcon('Stopwatch','');// eslint-disable-next-line\nexport var BIconStopwatchFill=/*#__PURE__*/makeIcon('StopwatchFill','');// eslint-disable-next-line\nexport var BIconSubtract=/*#__PURE__*/makeIcon('Subtract','');// eslint-disable-next-line\nexport var BIconSuitClub=/*#__PURE__*/makeIcon('SuitClub','');// eslint-disable-next-line\nexport var BIconSuitClubFill=/*#__PURE__*/makeIcon('SuitClubFill','');// eslint-disable-next-line\nexport var BIconSuitDiamond=/*#__PURE__*/makeIcon('SuitDiamond','');// eslint-disable-next-line\nexport var BIconSuitDiamondFill=/*#__PURE__*/makeIcon('SuitDiamondFill','');// eslint-disable-next-line\nexport var BIconSuitHeart=/*#__PURE__*/makeIcon('SuitHeart','');// eslint-disable-next-line\nexport var BIconSuitHeartFill=/*#__PURE__*/makeIcon('SuitHeartFill','');// eslint-disable-next-line\nexport var BIconSuitSpade=/*#__PURE__*/makeIcon('SuitSpade','');// eslint-disable-next-line\nexport var BIconSuitSpadeFill=/*#__PURE__*/makeIcon('SuitSpadeFill','');// eslint-disable-next-line\nexport var BIconSun=/*#__PURE__*/makeIcon('Sun','');// eslint-disable-next-line\nexport var BIconSunglasses=/*#__PURE__*/makeIcon('Sunglasses','');// eslint-disable-next-line\nexport var BIconTable=/*#__PURE__*/makeIcon('Table','');// eslint-disable-next-line\nexport var BIconTablet=/*#__PURE__*/makeIcon('Tablet','');// eslint-disable-next-line\nexport var BIconTabletFill=/*#__PURE__*/makeIcon('TabletFill','');// eslint-disable-next-line\nexport var BIconTabletLandscape=/*#__PURE__*/makeIcon('TabletLandscape','');// eslint-disable-next-line\nexport var BIconTabletLandscapeFill=/*#__PURE__*/makeIcon('TabletLandscapeFill','');// eslint-disable-next-line\nexport var BIconTag=/*#__PURE__*/makeIcon('Tag','');// eslint-disable-next-line\nexport var BIconTagFill=/*#__PURE__*/makeIcon('TagFill','');// eslint-disable-next-line\nexport var BIconTags=/*#__PURE__*/makeIcon('Tags','');// eslint-disable-next-line\nexport var BIconTagsFill=/*#__PURE__*/makeIcon('TagsFill','');// eslint-disable-next-line\nexport var BIconTelephone=/*#__PURE__*/makeIcon('Telephone','');// eslint-disable-next-line\nexport var BIconTelephoneFill=/*#__PURE__*/makeIcon('TelephoneFill','');// eslint-disable-next-line\nexport var BIconTelephoneForward=/*#__PURE__*/makeIcon('TelephoneForward','');// eslint-disable-next-line\nexport var BIconTelephoneForwardFill=/*#__PURE__*/makeIcon('TelephoneForwardFill','');// eslint-disable-next-line\nexport var BIconTelephoneInbound=/*#__PURE__*/makeIcon('TelephoneInbound','');// eslint-disable-next-line\nexport var BIconTelephoneInboundFill=/*#__PURE__*/makeIcon('TelephoneInboundFill','');// eslint-disable-next-line\nexport var BIconTelephoneMinus=/*#__PURE__*/makeIcon('TelephoneMinus','');// eslint-disable-next-line\nexport var BIconTelephoneMinusFill=/*#__PURE__*/makeIcon('TelephoneMinusFill','');// eslint-disable-next-line\nexport var BIconTelephoneOutbound=/*#__PURE__*/makeIcon('TelephoneOutbound','');// eslint-disable-next-line\nexport var BIconTelephoneOutboundFill=/*#__PURE__*/makeIcon('TelephoneOutboundFill','');// eslint-disable-next-line\nexport var BIconTelephonePlus=/*#__PURE__*/makeIcon('TelephonePlus','');// eslint-disable-next-line\nexport var BIconTelephonePlusFill=/*#__PURE__*/makeIcon('TelephonePlusFill','');// eslint-disable-next-line\nexport var BIconTelephoneX=/*#__PURE__*/makeIcon('TelephoneX','');// eslint-disable-next-line\nexport var BIconTelephoneXFill=/*#__PURE__*/makeIcon('TelephoneXFill','');// eslint-disable-next-line\nexport var BIconTerminal=/*#__PURE__*/makeIcon('Terminal','');// eslint-disable-next-line\nexport var BIconTerminalFill=/*#__PURE__*/makeIcon('TerminalFill','');// eslint-disable-next-line\nexport var BIconTextCenter=/*#__PURE__*/makeIcon('TextCenter','');// eslint-disable-next-line\nexport var BIconTextIndentLeft=/*#__PURE__*/makeIcon('TextIndentLeft','');// eslint-disable-next-line\nexport var BIconTextIndentRight=/*#__PURE__*/makeIcon('TextIndentRight','');// eslint-disable-next-line\nexport var BIconTextLeft=/*#__PURE__*/makeIcon('TextLeft','');// eslint-disable-next-line\nexport var BIconTextParagraph=/*#__PURE__*/makeIcon('TextParagraph','');// eslint-disable-next-line\nexport var BIconTextRight=/*#__PURE__*/makeIcon('TextRight','');// eslint-disable-next-line\nexport var BIconTextarea=/*#__PURE__*/makeIcon('Textarea','');// eslint-disable-next-line\nexport var BIconTextareaResize=/*#__PURE__*/makeIcon('TextareaResize','');// eslint-disable-next-line\nexport var BIconTextareaT=/*#__PURE__*/makeIcon('TextareaT','');// eslint-disable-next-line\nexport var BIconThermometer=/*#__PURE__*/makeIcon('Thermometer','');// eslint-disable-next-line\nexport var BIconThermometerHalf=/*#__PURE__*/makeIcon('ThermometerHalf','');// eslint-disable-next-line\nexport var BIconThreeDots=/*#__PURE__*/makeIcon('ThreeDots','');// eslint-disable-next-line\nexport var BIconThreeDotsVertical=/*#__PURE__*/makeIcon('ThreeDotsVertical','');// eslint-disable-next-line\nexport var BIconToggle2Off=/*#__PURE__*/makeIcon('Toggle2Off','');// eslint-disable-next-line\nexport var BIconToggle2On=/*#__PURE__*/makeIcon('Toggle2On','');// eslint-disable-next-line\nexport var BIconToggleOff=/*#__PURE__*/makeIcon('ToggleOff','');// eslint-disable-next-line\nexport var BIconToggleOn=/*#__PURE__*/makeIcon('ToggleOn','');// eslint-disable-next-line\nexport var BIconToggles=/*#__PURE__*/makeIcon('Toggles','');// eslint-disable-next-line\nexport var BIconToggles2=/*#__PURE__*/makeIcon('Toggles2','');// eslint-disable-next-line\nexport var BIconTools=/*#__PURE__*/makeIcon('Tools','');// eslint-disable-next-line\nexport var BIconTrash=/*#__PURE__*/makeIcon('Trash','');// eslint-disable-next-line\nexport var BIconTrash2=/*#__PURE__*/makeIcon('Trash2','');// eslint-disable-next-line\nexport var BIconTrash2Fill=/*#__PURE__*/makeIcon('Trash2Fill','');// eslint-disable-next-line\nexport var BIconTrashFill=/*#__PURE__*/makeIcon('TrashFill','');// eslint-disable-next-line\nexport var BIconTree=/*#__PURE__*/makeIcon('Tree','');// eslint-disable-next-line\nexport var BIconTreeFill=/*#__PURE__*/makeIcon('TreeFill','');// eslint-disable-next-line\nexport var BIconTriangle=/*#__PURE__*/makeIcon('Triangle','');// eslint-disable-next-line\nexport var BIconTriangleFill=/*#__PURE__*/makeIcon('TriangleFill','');// eslint-disable-next-line\nexport var BIconTriangleHalf=/*#__PURE__*/makeIcon('TriangleHalf','');// eslint-disable-next-line\nexport var BIconTrophy=/*#__PURE__*/makeIcon('Trophy','');// eslint-disable-next-line\nexport var BIconTrophyFill=/*#__PURE__*/makeIcon('TrophyFill','');// eslint-disable-next-line\nexport var BIconTruck=/*#__PURE__*/makeIcon('Truck','');// eslint-disable-next-line\nexport var BIconTruckFlatbed=/*#__PURE__*/makeIcon('TruckFlatbed','');// eslint-disable-next-line\nexport var BIconTv=/*#__PURE__*/makeIcon('Tv','');// eslint-disable-next-line\nexport var BIconTvFill=/*#__PURE__*/makeIcon('TvFill','');// eslint-disable-next-line\nexport var BIconTwitch=/*#__PURE__*/makeIcon('Twitch','');// eslint-disable-next-line\nexport var BIconTwitter=/*#__PURE__*/makeIcon('Twitter','');// eslint-disable-next-line\nexport var BIconType=/*#__PURE__*/makeIcon('Type','');// eslint-disable-next-line\nexport var BIconTypeBold=/*#__PURE__*/makeIcon('TypeBold','');// eslint-disable-next-line\nexport var BIconTypeH1=/*#__PURE__*/makeIcon('TypeH1','');// eslint-disable-next-line\nexport var BIconTypeH2=/*#__PURE__*/makeIcon('TypeH2','');// eslint-disable-next-line\nexport var BIconTypeH3=/*#__PURE__*/makeIcon('TypeH3','');// eslint-disable-next-line\nexport var BIconTypeItalic=/*#__PURE__*/makeIcon('TypeItalic','');// eslint-disable-next-line\nexport var BIconTypeStrikethrough=/*#__PURE__*/makeIcon('TypeStrikethrough','');// eslint-disable-next-line\nexport var BIconTypeUnderline=/*#__PURE__*/makeIcon('TypeUnderline','');// eslint-disable-next-line\nexport var BIconUiChecks=/*#__PURE__*/makeIcon('UiChecks','');// eslint-disable-next-line\nexport var BIconUiChecksGrid=/*#__PURE__*/makeIcon('UiChecksGrid','');// eslint-disable-next-line\nexport var BIconUiRadios=/*#__PURE__*/makeIcon('UiRadios','');// eslint-disable-next-line\nexport var BIconUiRadiosGrid=/*#__PURE__*/makeIcon('UiRadiosGrid','');// eslint-disable-next-line\nexport var BIconUnion=/*#__PURE__*/makeIcon('Union','');// eslint-disable-next-line\nexport var BIconUnlock=/*#__PURE__*/makeIcon('Unlock','');// eslint-disable-next-line\nexport var BIconUnlockFill=/*#__PURE__*/makeIcon('UnlockFill','');// eslint-disable-next-line\nexport var BIconUpc=/*#__PURE__*/makeIcon('Upc','');// eslint-disable-next-line\nexport var BIconUpcScan=/*#__PURE__*/makeIcon('UpcScan','');// eslint-disable-next-line\nexport var BIconUpload=/*#__PURE__*/makeIcon('Upload','');// eslint-disable-next-line\nexport var BIconVectorPen=/*#__PURE__*/makeIcon('VectorPen','');// eslint-disable-next-line\nexport var BIconViewList=/*#__PURE__*/makeIcon('ViewList','');// eslint-disable-next-line\nexport var BIconViewStacked=/*#__PURE__*/makeIcon('ViewStacked','');// eslint-disable-next-line\nexport var BIconVinyl=/*#__PURE__*/makeIcon('Vinyl','');// eslint-disable-next-line\nexport var BIconVinylFill=/*#__PURE__*/makeIcon('VinylFill','');// eslint-disable-next-line\nexport var BIconVoicemail=/*#__PURE__*/makeIcon('Voicemail','');// eslint-disable-next-line\nexport var BIconVolumeDown=/*#__PURE__*/makeIcon('VolumeDown','');// eslint-disable-next-line\nexport var BIconVolumeDownFill=/*#__PURE__*/makeIcon('VolumeDownFill','');// eslint-disable-next-line\nexport var BIconVolumeMute=/*#__PURE__*/makeIcon('VolumeMute','');// eslint-disable-next-line\nexport var BIconVolumeMuteFill=/*#__PURE__*/makeIcon('VolumeMuteFill','');// eslint-disable-next-line\nexport var BIconVolumeOff=/*#__PURE__*/makeIcon('VolumeOff','');// eslint-disable-next-line\nexport var BIconVolumeOffFill=/*#__PURE__*/makeIcon('VolumeOffFill','');// eslint-disable-next-line\nexport var BIconVolumeUp=/*#__PURE__*/makeIcon('VolumeUp','');// eslint-disable-next-line\nexport var BIconVolumeUpFill=/*#__PURE__*/makeIcon('VolumeUpFill','');// eslint-disable-next-line\nexport var BIconVr=/*#__PURE__*/makeIcon('Vr','');// eslint-disable-next-line\nexport var BIconWallet=/*#__PURE__*/makeIcon('Wallet','');// eslint-disable-next-line\nexport var BIconWallet2=/*#__PURE__*/makeIcon('Wallet2','');// eslint-disable-next-line\nexport var BIconWalletFill=/*#__PURE__*/makeIcon('WalletFill','');// eslint-disable-next-line\nexport var BIconWatch=/*#__PURE__*/makeIcon('Watch','');// eslint-disable-next-line\nexport var BIconWifi=/*#__PURE__*/makeIcon('Wifi','');// eslint-disable-next-line\nexport var BIconWifi1=/*#__PURE__*/makeIcon('Wifi1','');// eslint-disable-next-line\nexport var BIconWifi2=/*#__PURE__*/makeIcon('Wifi2','');// eslint-disable-next-line\nexport var BIconWifiOff=/*#__PURE__*/makeIcon('WifiOff','');// eslint-disable-next-line\nexport var BIconWindow=/*#__PURE__*/makeIcon('Window','');// eslint-disable-next-line\nexport var BIconWrench=/*#__PURE__*/makeIcon('Wrench','');// eslint-disable-next-line\nexport var BIconX=/*#__PURE__*/makeIcon('X','');// eslint-disable-next-line\nexport var BIconXCircle=/*#__PURE__*/makeIcon('XCircle','');// eslint-disable-next-line\nexport var BIconXCircleFill=/*#__PURE__*/makeIcon('XCircleFill','');// eslint-disable-next-line\nexport var BIconXDiamond=/*#__PURE__*/makeIcon('XDiamond','');// eslint-disable-next-line\nexport var BIconXDiamondFill=/*#__PURE__*/makeIcon('XDiamondFill','');// eslint-disable-next-line\nexport var BIconXOctagon=/*#__PURE__*/makeIcon('XOctagon','');// eslint-disable-next-line\nexport var BIconXOctagonFill=/*#__PURE__*/makeIcon('XOctagonFill','');// eslint-disable-next-line\nexport var BIconXSquare=/*#__PURE__*/makeIcon('XSquare','');// eslint-disable-next-line\nexport var BIconXSquareFill=/*#__PURE__*/makeIcon('XSquareFill','');// eslint-disable-next-line\nexport var BIconYoutube=/*#__PURE__*/makeIcon('Youtube','');// eslint-disable-next-line\nexport var BIconZoomIn=/*#__PURE__*/makeIcon('ZoomIn','');// eslint-disable-next-line\nexport var BIconZoomOut=/*#__PURE__*/makeIcon('ZoomOut','');// --- END AUTO-GENERATED FILE ---","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\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}])});","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_ICON_BASE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathMax } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n// Base attributes needed on all icons\n\nvar baseAttrs = {\n viewBox: '0 0 16 16',\n width: '1em',\n height: '1em',\n focusable: 'false',\n role: 'img',\n 'aria-label': 'icon'\n}; // Attributes that are nulled out when stacked\n\nvar stackedAttrs = {\n width: null,\n height: null,\n focusable: null,\n role: null,\n 'aria-label': null\n}; // --- Props ---\n\nexport var props = {\n animation: makeProp(PROP_TYPE_STRING),\n content: makeProp(PROP_TYPE_STRING),\n flipH: makeProp(PROP_TYPE_BOOLEAN, false),\n flipV: makeProp(PROP_TYPE_BOOLEAN, false),\n fontScale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n rotate: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n scale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n shiftH: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n shiftV: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// Shared private base component to reduce bundle/runtime size\n// @vue/component\n\nexport var BVIconBase = /*#__PURE__*/Vue.extend({\n name: NAME_ICON_BASE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var data = _ref.data,\n props = _ref.props,\n children = _ref.children;\n var animation = props.animation,\n content = props.content,\n flipH = props.flipH,\n flipV = props.flipV,\n stacked = props.stacked,\n title = props.title,\n variant = props.variant;\n var fontScale = mathMax(toFloat(props.fontScale, 1), 0) || 1;\n var scale = mathMax(toFloat(props.scale, 1), 0) || 1;\n var rotate = toFloat(props.rotate, 0);\n var shiftH = toFloat(props.shiftH, 0);\n var shiftV = toFloat(props.shiftV, 0); // Compute the transforms\n // Note that order is important as SVG transforms are applied in order from\n // left to right and we want flipping/scale to occur before rotation\n // Note shifting is applied separately\n // Assumes that the viewbox is `0 0 16 16` (`8 8` is the center)\n\n var hasScale = flipH || flipV || scale !== 1;\n var hasTransforms = hasScale || rotate;\n var hasShift = shiftH || shiftV;\n var hasContent = !isUndefinedOrNull(content);\n var transforms = [hasTransforms ? 'translate(8 8)' : null, hasScale ? \"scale(\".concat((flipH ? -1 : 1) * scale, \" \").concat((flipV ? -1 : 1) * scale, \")\") : null, rotate ? \"rotate(\".concat(rotate, \")\") : null, hasTransforms ? 'translate(-8 -8)' : null].filter(identity); // We wrap the content in a `` for handling the transforms (except shift)\n\n var $inner = h('g', {\n attrs: {\n transform: transforms.join(' ') || null\n },\n domProps: hasContent ? {\n innerHTML: content || ''\n } : {}\n }, children); // If needed, we wrap in an additional `` in order to handle the shifting\n\n if (hasShift) {\n $inner = h('g', {\n attrs: {\n transform: \"translate(\".concat(16 * shiftH / 16, \" \").concat(-16 * shiftV / 16, \")\")\n }\n }, [$inner]);\n }\n\n if (stacked) {\n // Wrap in an additional `` for proper\n // animation handling if stacked\n $inner = h('g', {}, [$inner]);\n }\n\n var $title = title ? h('title', title) : null;\n return h('svg', mergeData({\n staticClass: 'b-icon bi',\n class: (_class = {}, _defineProperty(_class, \"text-\".concat(variant), variant), _defineProperty(_class, \"b-icon-animation-\".concat(animation), animation), _class),\n attrs: baseAttrs,\n style: stacked ? {} : {\n fontSize: fontScale === 1 ? null : \"\".concat(fontScale * 100, \"%\")\n }\n }, // Merge in user supplied data\n data, // If icon is stacked, null out some attrs\n stacked ? {\n attrs: stackedAttrs\n } : {}, // These cannot be overridden by users\n {\n attrs: {\n xmlns: stacked ? null : 'http://www.w3.org/2000/svg',\n fill: 'currentColor'\n }\n }), [$title, $inner]);\n }\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","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_SIDEBAR } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER, SLOT_NAME_HEADER_CLOSE, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { attemptFocus, contains, getActiveElement, getTabables } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconX } from '../../icons/icons';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar CLASS_NAME = 'b-sidebar';\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // If `true`, shows a basic backdrop\n backdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n backdropVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n bgVariant: makeProp(PROP_TYPE_STRING, 'light'),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // `aria-label` for close button\n closeLabel: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnRouteChange: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n noSlide: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n shadow: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sidebarClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n title: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING)\n})), NAME_SIDEBAR); // --- Render methods ---\n\nvar renderHeaderTitle = function renderHeaderTitle(h, ctx) {\n // Render a empty `` when to title was provided\n var title = ctx.normalizeSlot(SLOT_NAME_TITLE, ctx.slotScope) || ctx.title;\n\n if (!title) {\n return h('span');\n }\n\n return h('strong', {\n attrs: {\n id: ctx.safeId('__title__')\n }\n }, [title]);\n};\n\nvar renderHeaderClose = function renderHeaderClose(h, ctx) {\n if (ctx.noHeaderClose) {\n return h();\n }\n\n var closeLabel = ctx.closeLabel,\n textVariant = ctx.textVariant,\n hide = ctx.hide;\n return h(BButtonClose, {\n props: {\n ariaLabel: closeLabel,\n textVariant: textVariant\n },\n on: {\n click: hide\n },\n ref: 'close-button'\n }, [ctx.normalizeSlot(SLOT_NAME_HEADER_CLOSE) || h(BIconX)]);\n};\n\nvar renderHeader = function renderHeader(h, ctx) {\n if (ctx.noHeader) {\n return h();\n }\n\n var $content = ctx.normalizeSlot(SLOT_NAME_HEADER, ctx.slotScope);\n\n if (!$content) {\n var $title = renderHeaderTitle(h, ctx);\n var $close = renderHeaderClose(h, ctx);\n $content = ctx.right ? [$close, $title] : [$title, $close];\n }\n\n return h('header', {\n staticClass: \"\".concat(CLASS_NAME, \"-header\"),\n class: ctx.headerClass,\n key: 'header'\n }, $content);\n};\n\nvar renderBody = function renderBody(h, ctx) {\n return h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-body\"),\n class: ctx.bodyClass,\n key: 'body'\n }, [ctx.normalizeSlot(SLOT_NAME_DEFAULT, ctx.slotScope)]);\n};\n\nvar renderFooter = function renderFooter(h, ctx) {\n var $footer = ctx.normalizeSlot(SLOT_NAME_FOOTER, ctx.slotScope);\n\n if (!$footer) {\n return h();\n }\n\n return h('footer', {\n staticClass: \"\".concat(CLASS_NAME, \"-footer\"),\n class: ctx.footerClass,\n key: 'footer'\n }, [$footer]);\n};\n\nvar renderContent = function renderContent(h, ctx) {\n // We render the header even if `lazy` is enabled as it\n // acts as the accessible label for the sidebar\n var $header = renderHeader(h, ctx);\n\n if (ctx.lazy && !ctx.isOpen) {\n return $header;\n }\n\n return [$header, renderBody(h, ctx), renderFooter(h, ctx)];\n};\n\nvar renderBackdrop = function renderBackdrop(h, ctx) {\n if (!ctx.backdrop) {\n return h();\n }\n\n var backdropVariant = ctx.backdropVariant;\n return h('div', {\n directives: [{\n name: 'show',\n value: ctx.localShow\n }],\n staticClass: 'b-sidebar-backdrop',\n class: _defineProperty({}, \"bg-\".concat(backdropVariant), backdropVariant),\n on: {\n click: ctx.onBackdropClick\n }\n });\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BSidebar = /*#__PURE__*/Vue.extend({\n name: NAME_SIDEBAR,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n var visible = !!this[MODEL_PROP_NAME];\n return {\n // Internal `v-model` state\n localShow: visible,\n // For lazy render triggering\n isOpen: visible\n };\n },\n computed: {\n transitionProps: function transitionProps() {\n return this.noSlide ?\n /* istanbul ignore next */\n {\n css: true\n } : {\n css: true,\n enterClass: '',\n enterActiveClass: 'slide',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: 'slide',\n leaveToClass: ''\n };\n },\n slotScope: function slotScope() {\n var hide = this.hide,\n right = this.right,\n visible = this.localShow;\n return {\n hide: hide,\n right: right,\n visible: visible\n };\n },\n hasTitle: function hasTitle() {\n var $scopedSlots = this.$scopedSlots,\n $slots = this.$slots;\n return !this.noHeader && !this.hasNormalizedSlot(SLOT_NAME_HEADER) && !!(this.normalizeSlot(SLOT_NAME_TITLE, this.slotScope, $scopedSlots, $slots) || this.title);\n },\n titleId: function titleId() {\n return this.hasTitle ? this.safeId('__title__') : null;\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n tabindex: '-1',\n role: 'dialog',\n 'aria-modal': this.backdrop ? 'true' : 'false',\n 'aria-hidden': this.localShow ? null : 'true',\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || this.titleId || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localShow = newValue;\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState(newValue);\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"$route\", function $route() {\n var newValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var oldValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.noCloseOnRouteChange && newValue.fullPath !== oldValue.fullPath) {\n this.hide();\n }\n }), _watch),\n created: function created() {\n // Define non-reactive properties\n this.$_returnFocusEl = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n // Add `$root` listeners\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggle);\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, this.handleSync); // Send out a gratuitous state event to ensure toggle button is synced\n\n this.$nextTick(function () {\n _this.emitState(_this.localShow);\n });\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n this.localShow = false;\n this.$_returnFocusEl = null;\n },\n methods: {\n hide: function hide() {\n this.localShow = false;\n },\n emitState: function emitState() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, this.safeId(), state);\n },\n emitSync: function emitSync() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), state);\n },\n handleToggle: function handleToggle(id) {\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.localShow = !this.localShow;\n }\n },\n handleSync: function handleSync(id) {\n var _this2 = this;\n\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.$nextTick(function () {\n _this2.emitSync(_this2.localShow);\n });\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (!this.noCloseOnEsc && keyCode === CODE_ESC && this.localShow) {\n this.hide();\n }\n },\n onBackdropClick: function onBackdropClick() {\n if (this.localShow && !this.noCloseOnBackdrop) {\n this.hide();\n }\n },\n\n /* istanbul ignore next */\n onTopTrapFocus: function onTopTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables.reverse()[0]);\n },\n\n /* istanbul ignore next */\n onBottomTrapFocus: function onBottomTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables[0]);\n },\n onBeforeEnter: function onBeforeEnter() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n this.$_returnFocusEl = getActiveElement(IS_BROWSER ? [document.body] : []); // Trigger lazy render\n\n this.isOpen = true;\n },\n onAfterEnter: function onAfterEnter(el) {\n if (!contains(el, getActiveElement())) {\n this.enforceFocus(el);\n }\n\n this.$emit(EVENT_NAME_SHOWN);\n },\n onAfterLeave: function onAfterLeave() {\n this.enforceFocus(this.$_returnFocusEl);\n this.$_returnFocusEl = null; // Trigger lazy render\n\n this.isOpen = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n enforceFocus: function enforceFocus(el) {\n if (!this.noEnforceFocus) {\n attemptFocus(el);\n }\n }\n },\n render: function render(h) {\n var _ref;\n\n var bgVariant = this.bgVariant,\n width = this.width,\n textVariant = this.textVariant,\n localShow = this.localShow;\n var shadow = this.shadow === '' ? true : this.shadow;\n var $sidebar = h(this.tag, {\n staticClass: CLASS_NAME,\n class: [(_ref = {\n shadow: shadow === true\n }, _defineProperty(_ref, \"shadow-\".concat(shadow), shadow && shadow !== true), _defineProperty(_ref, \"\".concat(CLASS_NAME, \"-right\"), this.right), _defineProperty(_ref, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_ref, \"text-\".concat(textVariant), textVariant), _ref), this.sidebarClass],\n style: {\n width: width\n },\n attrs: this.computedAttrs,\n directives: [{\n name: 'show',\n value: localShow\n }],\n ref: 'content'\n }, [renderContent(h, this)]);\n $sidebar = h('transition', {\n props: this.transitionProps,\n on: {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n afterLeave: this.onAfterLeave\n }\n }, [$sidebar]);\n var $backdrop = h(BVTransition, {\n props: {\n noFade: this.noSlide\n }\n }, [renderBackdrop(h, this)]);\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.backdrop && localShow) {\n $tabTrapTop = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onTopTrapFocus\n }\n });\n $tabTrapBottom = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onBottomTrapFocus\n }\n });\n }\n\n return h('div', {\n staticClass: 'b-sidebar-outer',\n style: {\n zIndex: this.zIndex\n },\n attrs: {\n tabindex: '-1'\n },\n on: {\n keydown: this.onKeydown\n }\n }, [$tabTrapTop, $sidebar, $tabTrapBottom, $backdrop]);\n }\n});","var _objectSpread2;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\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!./Create.vue?vue&type=style&index=0&lang=scss&\"","var _watch, _methods;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\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!./Index.vue?vue&type=style&index=0&lang=scss&\"","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (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\nvar _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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"],"sourceRoot":""}