{"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/libs/currencyPrecision.js","webpack:///./src/views/Admin/ServiceSNActions/Duplicate.vue?6040","webpack:///./src/views/Admin/ServiceSNActions/Index.vue?cac1","webpack:///./src/views/Admin/ServiceSNActions/TableMixin.js","webpack:///./src/views/Admin/ServiceSNActions/IndexMixin.js","webpack:///./src/views/Admin/ServiceSNActions/Create.vue?ea87","webpack:///src/views/Admin/ServiceSNActions/Create.vue","webpack:///./src/views/Admin/ServiceSNActions/Create.vue?b299","webpack:///./src/views/Admin/ServiceSNActions/Create.vue","webpack:///./src/views/Admin/ServiceSNActions/Edit.vue?c10e","webpack:///src/views/Admin/ServiceSNActions/Edit.vue","webpack:///./src/views/Admin/ServiceSNActions/Edit.vue?0450","webpack:///./src/views/Admin/ServiceSNActions/Edit.vue","webpack:///./src/views/Admin/ServiceSNActions/Duplicate.vue?7cbd","webpack:///src/views/Admin/ServiceSNActions/Duplicate.vue","webpack:///./src/views/Admin/ServiceSNActions/Duplicate.vue?1d01","webpack:///./src/views/Admin/ServiceSNActions/Duplicate.vue","webpack:///src/views/Admin/ServiceSNActions/Index.vue","webpack:///./src/views/Admin/ServiceSNActions/Index.vue?1b5f","webpack:///./src/views/Admin/ServiceSNActions/Index.vue","webpack:///./node_modules/currency.js/dist/currency.min.js","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/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:///./src/views/Admin/ServiceSNActions/Index.vue?b4c0","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/ServiceSNActions/Edit.vue?dc8a","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./src/views/Admin/ServiceSNActions/Create.vue?cbda","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","val","min","max","currencyVal","parseFloat","currencySplit","precision","currency","separator","decimal","symbol","format","_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","api_name","_f","price_per_thousand","directives","rawName","deactivated","updateStatus","open","deleteModal","totalRows","created","serviceData","duplicateModal","_e","updated","duplicate","editModal","staticRenderFns","components","BFormGroup","BFormSelect","BPagination","BInputGroup","BFormInput","BInputGroupAppend","infoModal","content","computed","f","sortable","map","text","label","methods","filteredItems","info","index","button","JSON","stringify","$root","$emit","resetInfoModal","mounted","getServiceSNActions","optionId","$router","currentRoute","params","option_id","url","$http","get","then","res","finally","service","find","patch","parse","has_refill","payload","unshift","assign","$swal","icon","showCancelButton","confirmButtonText","cancelButtonText","confirmButton","cancelButton","buttonsStyling","result","delete","visible","clearForm","ref","preventDefault","handleSubmit","resetForm","formData","$set","options","BSidebar","BButton","BFormSelectOption","BFormCheckbox","quillEditor","Ripple","event","type","Boolean","required","image","api_service_id","api_price","local_service_id","description","component","BOverlay","BRow","BCol","BCard","BCardBody","BCardTitle","BTable","BSpinner","Create","Edit","Duplicate","filters","mixins","TableMixin","IndexMixin","e","g","module","b","a","m","d","Math","pow","intValue","increment","groups","useVedic","n","p","s","c","errorOnInvalid","k","fromCents","l","RegExp","replace","toFixed","round","pattern","negativePattern","q","prototype","add","subtract","multiply","divide","distribute","abs","dollars","cents","toString","toJSON","kebabName","iconName","iconNameClass","iconTitle","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","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","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","eLen","eMax","eBias","nBits","NaN","Infinity","write","rt","isNaN","floor","log","LN2","root","factory","self","modules","installedModules","__webpack_require__","moduleId","call","getter","o","__esModule","property","hasOwnProperty","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__","__","constructor","ParchmentError","_super","message","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","splice","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","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","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","__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","pos","_map2","_map3","_map4","version","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","addEventListener","_len","_key","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","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","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","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","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","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","style","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","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","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","color","background","font","_options","_content","defaultOptions","initialize","pasteHTML","setText","_compiled","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","_t","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","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","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","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-2f07fab6.6cd2591e.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};","import currency from 'currency.js'\n\nexport default (val, min, max) => {\n const currencyVal = parseFloat(val)\n const currencySplit = String(currencyVal).split('.')\n const precision = currencySplit.length > 1 ? (currencySplit[1].length > min ? max : min) : min\n\n return currency(currencyVal, {\n separator: '.',\n decimal: ',',\n symbol: 'R$ ',\n precision: precision\n }).format()\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!./Duplicate.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('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(name)\",fn:function(data){return [_c('span',{domProps:{\"innerHTML\":_vm._s(data.item.name)}})]}},{key:\"cell(api_name)\",fn:function(data){return [_c('b-button',{staticClass:\"mr-1 font-weight-bolder text-uppercase\",attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-primary\"}},[_vm._v(\" \"+_vm._s(data.item.api_name)+\" \")])]}},{key:\"cell(price_per_thousand)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(data.item.price_per_thousand))+\" \")]}},{key:\"cell(deactivated)\",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.deactivated === 0 ? 'success' : 'danger'},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateStatus(data.item.id)}}},[_c('feather-icon',{attrs:{\"icon\":data.item.deactivated === 0 ? 'UnlockIcon' : 'LockIcon'}})],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\"}}),(_vm.duplicateModal)?_c('Duplicate',{attrs:{\"service-data\":_vm.serviceData},on:{\"updated\":function($event){return _vm.created($event)}},model:{value:(_vm.duplicateModal),callback:function ($$v) {_vm.duplicateModal=$$v},expression:\"duplicateModal\"}}):_vm._e(),_c('Edit',{attrs:{\"service-data\":_vm.serviceData},on:{\"updated\":function($event){return _vm.updated($event)},\"duplicate\":function($event){return _vm.duplicate()}},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 duplicateModal: false,\n serviceData: {}\n }),\n async mounted () {\n await this.getServiceSNActions()\n },\n methods: {\n async getServiceSNActions () {\n const optionId = this.$router.currentRoute.params.option_id\n const url = `/admin/service_sn_actions/find_per_option_id/${optionId}`\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 async updateStatus (id) {\n const service = this.items.find(item => item.id === id)\n service.deactivated = service.deactivated === 0 ? 1 : 0\n const params = {\n deactivated: service.deactivated\n }\n\n await this.$http.patch(`/admin/service_sn_actions/${service.id}`, params)\n },\n open (id) {\n this.serviceData = JSON.parse(\n JSON.stringify(this.items.find(item => item.id === id))\n )\n this.serviceData.has_refill = !!this.serviceData.has_refill\n this.editModal = true\n },\n created (payload) {\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 deleteModal (item) {\n this.$swal({\n title: `Você tem certeza que deseja deletar a Opção \"${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/service_sn_actions/${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\":\"Nome\",\"label-for\":\"service-name\"}},[_c('b-form-input',{attrs:{\"id\":\"service-name\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Nome do Serviço\"},model:{value:(_vm.formData.name),callback:function ($$v) {_vm.$set(_vm.formData, \"name\", $$v)},expression:\"formData.name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Valor\",\"label-for\":\"service-value\"}},[_c('b-form-input',{attrs:{\"id\":\"service-value\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor do Serviço\"},model:{value:(_vm.formData.price_per_thousand),callback:function ($$v) {_vm.$set(_vm.formData, \"price_per_thousand\", $$v)},expression:\"formData.price_per_thousand\"}})],1),_c('b-form-group',{attrs:{\"label\":\"API\",\"label-for\":\"service-api-name\"}},[_c('b-form-select',{attrs:{\"id\":\"service-api-name\",\"state\":_vm.formData.api_name === 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.api_name),callback:function ($$v) {_vm.$set(_vm.formData, \"api_name\", $$v)},expression:\"formData.api_name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Código de Serviço da API\",\"label-for\":\"service-api-service-id\"}},[_c('b-form-input',{attrs:{\"id\":\"service-api-service-id\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Código de Serviço da API\"},model:{value:(_vm.formData.api_service_id),callback:function ($$v) {_vm.$set(_vm.formData, \"api_service_id\", $$v)},expression:\"formData.api_service_id\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Código de Serviço Local\",\"label-for\":\"service-local-service-id\"}},[_c('b-form-input',{attrs:{\"id\":\"service-local-service-id\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Código de Serviço Local\"},model:{value:(_vm.formData.local_service_id),callback:function ($$v) {_vm.$set(_vm.formData, \"local_service_id\", $$v)},expression:\"formData.local_service_id\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Preço na API\",\"label-for\":\"service-api-price\"}},[_c('b-form-input',{attrs:{\"id\":\"service-api-price\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Preço na API\"},model:{value:(_vm.formData.api_price),callback:function ($$v) {_vm.$set(_vm.formData, \"api_price\", $$v)},expression:\"formData.api_price\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Mínimo de Ações\",\"label-for\":\"service-min\"}},[_c('b-form-input',{attrs:{\"id\":\"service-min\",\"type\":\"number\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Mínimo de Ações\"},model:{value:(_vm.formData.min),callback:function ($$v) {_vm.$set(_vm.formData, \"min\", $$v)},expression:\"formData.min\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Máxima de Ações\",\"label-for\":\"service-max\"}},[_c('b-form-input',{attrs:{\"id\":\"service-max\",\"type\":\"number\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Máxima de Ações\"},model:{value:(_vm.formData.max),callback:function ($$v) {_vm.$set(_vm.formData, \"max\", $$v)},expression:\"formData.max\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Tem Refill?\",\"label-for\":\"service-max\"}},[_c('b-form-checkbox',{staticClass:\"custom-control-success\",attrs:{\"checked\":\"true\",\"name\":\"check-button\",\"switch\":\"\"},model:{value:(_vm.formData.has_refill),callback:function ($$v) {_vm.$set(_vm.formData, \"has_refill\", $$v)},expression:\"formData.has_refill\"}},[_c('span',{staticClass:\"switch-icon-left\"},[_c('feather-icon',{attrs:{\"icon\":\"CheckIcon\"}})],1),_c('span',{staticClass:\"switch-icon-right\"},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}})],1)])],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"service-description\"}},[_c('quill-editor',{model:{value:(_vm.formData.description),callback:function ($$v) {_vm.$set(_vm.formData, \"description\", $$v)},expression:\"formData.description\"}})],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=03b2e96e&\"\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('b-button',{attrs:{\"variant\":\"relief-primary\",\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('duplicate', _vm.serviceData)}}},[_vm._v(\" Duplicar \")]),_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\":\"Nome\",\"label-for\":\"service-name\"}},[_c('b-form-input',{attrs:{\"id\":\"service-name\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Nome do Serviço\"},model:{value:(_vm.serviceData.name),callback:function ($$v) {_vm.$set(_vm.serviceData, \"name\", $$v)},expression:\"serviceData.name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Valor\",\"label-for\":\"service-value\"}},[_c('b-form-input',{attrs:{\"id\":\"service-value\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor do Serviço\"},model:{value:(_vm.serviceData.price_per_thousand),callback:function ($$v) {_vm.$set(_vm.serviceData, \"price_per_thousand\", $$v)},expression:\"serviceData.price_per_thousand\"}})],1),_c('b-form-group',{attrs:{\"label\":\"API\",\"label-for\":\"service-api-name\"}},[_c('b-form-select',{attrs:{\"id\":\"service-api-name\",\"state\":_vm.serviceData.api_name === 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.serviceData.api_name),callback:function ($$v) {_vm.$set(_vm.serviceData, \"api_name\", $$v)},expression:\"serviceData.api_name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Código de Serviço da API\",\"label-for\":\"service-api-service-id\"}},[_c('b-form-input',{attrs:{\"id\":\"service-api-service-id\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Código de Serviço da API\"},model:{value:(_vm.serviceData.api_service_id),callback:function ($$v) {_vm.$set(_vm.serviceData, \"api_service_id\", $$v)},expression:\"serviceData.api_service_id\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Código de Serviço Local\",\"label-for\":\"service-local-service-id\"}},[_c('b-form-input',{attrs:{\"id\":\"service-local-service-id\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Código de Serviço Local\"},model:{value:(_vm.serviceData.local_service_id),callback:function ($$v) {_vm.$set(_vm.serviceData, \"local_service_id\", $$v)},expression:\"serviceData.local_service_id\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Preço na API\",\"label-for\":\"service-api-price\"}},[_c('b-form-input',{attrs:{\"id\":\"service-api-price\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Preço na API\"},model:{value:(_vm.serviceData.api_price),callback:function ($$v) {_vm.$set(_vm.serviceData, \"api_price\", $$v)},expression:\"serviceData.api_price\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Mínimo de Ações\",\"label-for\":\"service-min\"}},[_c('b-form-input',{attrs:{\"id\":\"service-min\",\"type\":\"number\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Mínimo de Ações\"},model:{value:(_vm.serviceData.min),callback:function ($$v) {_vm.$set(_vm.serviceData, \"min\", $$v)},expression:\"serviceData.min\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Máxima de Ações\",\"label-for\":\"service-max\"}},[_c('b-form-input',{attrs:{\"id\":\"service-max\",\"type\":\"number\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Máxima de Ações\"},model:{value:(_vm.serviceData.max),callback:function ($$v) {_vm.$set(_vm.serviceData, \"max\", $$v)},expression:\"serviceData.max\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Tem Refill?\",\"label-for\":\"service-max\"}},[_c('b-form-checkbox',{staticClass:\"custom-control-success\",attrs:{\"name\":\"check-button\",\"switch\":\"\"},model:{value:(_vm.serviceData.has_refill),callback:function ($$v) {_vm.$set(_vm.serviceData, \"has_refill\", $$v)},expression:\"serviceData.has_refill\"}},[_c('span',{staticClass:\"switch-icon-left\"},[_c('feather-icon',{attrs:{\"icon\":\"CheckIcon\"}})],1),_c('span',{staticClass:\"switch-icon-right\"},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}})],1)])],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"service-description\"}},[_c('quill-editor',{model:{value:(_vm.serviceData.description),callback:function ($$v) {_vm.$set(_vm.serviceData, \"description\", $$v)},expression:\"serviceData.description\"}})],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=98e83414&\"\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","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\":\"Nome\",\"label-for\":\"service-name\"}},[_c('b-form-input',{attrs:{\"id\":\"service-name\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Nome do Serviço\"},model:{value:(_vm.formData.name),callback:function ($$v) {_vm.$set(_vm.formData, \"name\", $$v)},expression:\"formData.name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Valor\",\"label-for\":\"service-value\"}},[_c('b-form-input',{attrs:{\"id\":\"service-value\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor do Serviço\"},model:{value:(_vm.formData.price_per_thousand),callback:function ($$v) {_vm.$set(_vm.formData, \"price_per_thousand\", $$v)},expression:\"formData.price_per_thousand\"}})],1),_c('b-form-group',{attrs:{\"label\":\"API\",\"label-for\":\"service-api-name\"}},[_c('b-form-select',{attrs:{\"id\":\"service-api-name\",\"state\":_vm.formData.api_name === 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.api_name),callback:function ($$v) {_vm.$set(_vm.formData, \"api_name\", $$v)},expression:\"formData.api_name\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Código de Serviço da API\",\"label-for\":\"service-api-service-id\"}},[_c('b-form-input',{attrs:{\"id\":\"service-api-service-id\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Código de Serviço da API\"},model:{value:(_vm.formData.api_service_id),callback:function ($$v) {_vm.$set(_vm.formData, \"api_service_id\", $$v)},expression:\"formData.api_service_id\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Código de Serviço Local\",\"label-for\":\"service-local-service-id\"}},[_c('b-form-input',{attrs:{\"id\":\"service-local-service-id\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Código de Serviço Local\"},model:{value:(_vm.formData.local_service_id),callback:function ($$v) {_vm.$set(_vm.formData, \"local_service_id\", $$v)},expression:\"formData.local_service_id\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Preço na API\",\"label-for\":\"service-api-price\"}},[_c('b-form-input',{attrs:{\"id\":\"service-api-price\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Preço na API\"},model:{value:(_vm.formData.api_price),callback:function ($$v) {_vm.$set(_vm.formData, \"api_price\", $$v)},expression:\"formData.api_price\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Mínimo de Ações\",\"label-for\":\"service-min\"}},[_c('b-form-input',{attrs:{\"id\":\"service-min\",\"type\":\"number\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Mínimo de Ações\"},model:{value:(_vm.formData.min),callback:function ($$v) {_vm.$set(_vm.formData, \"min\", $$v)},expression:\"formData.min\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Máxima de Ações\",\"label-for\":\"service-max\"}},[_c('b-form-input',{attrs:{\"id\":\"service-max\",\"type\":\"number\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Máxima de Ações\"},model:{value:(_vm.formData.max),callback:function ($$v) {_vm.$set(_vm.formData, \"max\", $$v)},expression:\"formData.max\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Tem Refill?\",\"label-for\":\"service-max\"}},[_c('b-form-checkbox',{staticClass:\"custom-control-success\",attrs:{\"checked\":\"true\",\"name\":\"check-button\",\"switch\":\"\"},model:{value:(_vm.formData.has_refill),callback:function ($$v) {_vm.$set(_vm.formData, \"has_refill\", $$v)},expression:\"formData.has_refill\"}},[_c('span',{staticClass:\"switch-icon-left\"},[_c('feather-icon',{attrs:{\"icon\":\"CheckIcon\"}})],1),_c('span',{staticClass:\"switch-icon-right\"},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}})],1)])],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"service-description\"}},[_c('quill-editor',{model:{value:(_vm.formData.description),callback:function ($$v) {_vm.$set(_vm.formData, \"description\", $$v)},expression:\"formData.description\"}})],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!./Duplicate.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!./Duplicate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Duplicate.vue?vue&type=template&id=9d1c1b78&\"\nimport script from \"./Duplicate.vue?vue&type=script&lang=js&\"\nexport * from \"./Duplicate.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Duplicate.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=02d36c90&\"\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","/*\n currency.js - v2.0.4\n http://scurker.github.io/currency.js\n\n Copyright (c) 2021 Jason Wilson\n Released under MIT license\n*/\n(function(e,g){\"object\"===typeof exports&&\"undefined\"!==typeof module?module.exports=g():\"function\"===typeof define&&define.amd?define(g):(e=e||self,e.currency=g())})(this,function(){function e(b,a){if(!(this instanceof e))return new e(b,a);a=Object.assign({},m,a);var d=Math.pow(10,a.precision);this.intValue=b=g(b,a);this.value=b/d;a.increment=a.increment||1/d;a.groups=a.useVedic?n:p;this.s=a;this.p=d}function g(b,a){var d=2');// 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}])});","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});","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 _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!./Edit.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!./Create.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":""}