{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/base64-js/index.js","webpack:///./src/views/Admin/ServiceOptions/Create.vue?70f4","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack:///./src/views/Admin/ServiceOptions/Index.vue?ca33","webpack:///./src/views/Admin/ServiceOptions/TableMixin.js","webpack:///./src/views/Admin/ServiceOptions/IndexMixin.js","webpack:///./src/views/Admin/ServiceOptions/Create.vue?225e","webpack:///./src/views/Admin/ServiceOptions/Accounts.vue?ecaf","webpack:///src/views/Admin/ServiceOptions/Accounts.vue","webpack:///./src/views/Admin/ServiceOptions/Accounts.vue?6487","webpack:///./src/views/Admin/ServiceOptions/Accounts.vue","webpack:///src/views/Admin/ServiceOptions/Create.vue","webpack:///./src/views/Admin/ServiceOptions/Create.vue?c082","webpack:///./src/views/Admin/ServiceOptions/Create.vue","webpack:///./src/views/Admin/ServiceOptions/Edit.vue?1f88","webpack:///./src/views/Admin/ServiceOptions/VPS.vue?793b","webpack:///src/views/Admin/ServiceOptions/VPS.vue","webpack:///./src/views/Admin/ServiceOptions/VPS.vue?1625","webpack:///./src/views/Admin/ServiceOptions/VPS.vue","webpack:///./src/views/Admin/ServiceOptions/PackOfPhotos.vue?4d52","webpack:///src/views/Admin/ServiceOptions/PackOfPhotos.vue","webpack:///./src/views/Admin/ServiceOptions/PackOfPhotos.vue?aa4f","webpack:///./src/views/Admin/ServiceOptions/PackOfPhotos.vue","webpack:///src/views/Admin/ServiceOptions/Edit.vue","webpack:///./src/views/Admin/ServiceOptions/Edit.vue?ae52","webpack:///./src/views/Admin/ServiceOptions/Edit.vue","webpack:///src/views/Admin/ServiceOptions/Index.vue","webpack:///./src/views/Admin/ServiceOptions/Index.vue?e0a9","webpack:///./src/views/Admin/ServiceOptions/Index.vue","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:///./src/views/Admin/ServiceOptions/Index.vue?3ae7","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/isarray/index.js","webpack:///./src/views/Admin/ServiceOptions/Edit.vue?f5b8","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","BV_TOOLTIP","DefaultTrigger","validTriggers","focus","hover","click","blur","manual","htmlRE","noninteractiveRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","vnode","config","title","undefined","trigger","placement","fallbackPlacement","container","animation","offset","html","interactive","disabled","delay","boundary","String","boundaryPadding","variant","customClass","show","hide","arg","concat","modifiers","mod","test","slice","selectedTriggers","trim","toLowerCase","split","applyTooltip","el","$parent","context","parent","_scopeId","__bv_prev_data__","$on","updateData","triggers","noFade","oldData","newData","prop","removeTooltip","$destroy","VBTooltip","bind","componentUpdated","$nextTick","unbind","_vm","this","_h","$createElement","_c","_self","loading","_v","staticClass","on","$event","stopPropagation","createModal","pageOptions","model","callback","$$v","perPage","expression","sortOptions","scopedSlots","_u","fn","proxy","sortBy","sortDesc","domProps","currentPage","items","fields","sortDirection","filterOn","onFiltered","$api_host","item","getType","type","color","_s","message","directives","rawName","deactivated","updateStatus","goTo","_e","open","deleteModal","totalRows","created","serviceData","updated","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","getServiceOptions","serviceId","$router","currentRoute","params","url","$http","get","then","res","finally","service","find","patch","response","to","option_id","query","parse","payload","unshift","assign","$swal","icon","showCancelButton","confirmButtonText","cancelButtonText","confirmButton","cancelButton","buttonsStyling","result","delete","visible","includes","selected","val","clearForm","ref","preventDefault","handleSubmit","resetForm","formData","$set","options","accounts_info","accounts","quillEditor","event","required","component","BSidebar","BButton","BFormSelectOption","Accounts","Ripple","Boolean","image","fixed_costs","description","news_color","options_news_color","vps","VPSOptions","popular","_l","staticStyle","removeBenefit","benefits","addBenefit","BCard","BFormCheckbox","BRow","BCol","BInputGroupPrepend","watch","prepare","benefit","packOfPhotos","Vps","PackOfPhotos","BOverlay","BCardBody","BCardTitle","BTable","BSpinner","Create","Edit","mixins","TableMixin","IndexMixin","kebabName","iconName","iconNameClass","iconTitle","replace","svgContent","stacked","BIconBlank","BIconDash","BIconPersonFill","BIconPlus","BIconX","$","$find","addToUnscopables","arrayMethodUsesToLength","FIND","SKIPS_HOLES","USES_TO_LENGTH","proto","forced","callbackfn","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","BVPopper","localShow","attachment","getAttachment","templateType","popperConfig","_this","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","_this2","$_popper","popperCreate","handleDestroy","$once","beforeMount","updatePopper","beforeDestroy","destroyPopper","destroyed","$el","parentNode","removeChild","toUpperCase","$refs","arrowOffset","width","destroy","scheduleUpdate","renderTemplate","_this3","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","templateClasses","noninteractive","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","mouseleave","focusin","focusout","$title","innerHTML","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","BVTooltip","activeTrigger","computedId","computedDelay","math","computedTriggers","identity","sort","isWithActiveTrigger","computedTemplateData","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","d","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","_this6","setRootListener","_this7","events","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","__vue__","enter","eventTarget","currentTarget","toggle","_this10","setTimeout","_this11","read","buffer","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","s","NaN","Infinity","Math","pow","write","c","rt","abs","isNaN","floor","log","LN2","root","factory","module","self","modules","installedModules","__webpack_require__","moduleId","l","call","getter","o","n","__esModule","property","prototype","hasOwnProperty","p","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","b","__","constructor","ParchmentError","_super","attributes","classes","tags","types","input","match","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","tagName","TYPE","Definitions","_i","Definition","blotName","attrName","keyName","className","isArray","tagNames","tag","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","newOp","retain","lastOp","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","min","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","toString","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","src","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","Function","getPrototypeOf","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","formats","values","attribute","BLOCK_ATTRIBUTE","format","def","endsWith","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","shift","tail","head","remove","child","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_d","done","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","error","classList","add","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","init","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","contents","convert","setContents","clear","placeholder","readOnly","limit","level","imports","path","overwrite","startsWith","refNode","setRange","_overload","_overload2","deleteText","enabled","scrollTop","scrollIntoView","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_overload3","_overload4","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","getLength","_overload7","_overload8","getContents","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","insertEmbed","_overload11","_overload12","insertText","contains","off","once","dangerouslyPasteHTML","_overload13","_overload14","removeFormat","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","userConfig","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","args","emit","_map","pos","_map2","_map3","max","_map4","version","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","addEventListener","_len","_key","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","_len2","_key2","handler","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","objEquiv","isUndefinedOrNull","isBuffer","x","a","ka","kb","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","prev","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","CONTENTS","oldText","newText","diffDelta","combined","merged","list","bullet","_toConsumableArray","arr2","from","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","resolve","reject","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","global","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","navigator","platform","Keyboard","_Module","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","evt","binding","normalize","which","keyCode","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","parseInt","sanitize","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","select","buildPicker","style","display","togglePicker","escape","option","tabIndex","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","close","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","camelize","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","timestamp","now","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","pickers","picker","extendToolbar","buttons","icons","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","append","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","j","best_common","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","str","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","nodeType","window","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","parseFloat","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","marginLeft","t","r","u","install","globalOptions","script","size","background","font","_options","_content","defaultOptions","initialize","pasteHTML","setText","_compiled","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","_t","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","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","_watch","CLASS_NAME","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","ariaLabel","ariaLabelledby","backdrop","backdropVariant","bgVariant","bodyClass","closeLabel","footerClass","headerClass","lazy","noCloseOnBackdrop","noCloseOnEsc","noCloseOnRouteChange","noEnforceFocus","noHeader","noHeaderClose","noSlide","shadow","sidebarClass","textVariant","zIndex","renderHeaderTitle","ctx","normalizeSlot","slotScope","safeId","renderHeaderClose","renderHeader","$content","$close","renderBody","renderFooter","$footer","renderContent","$header","isOpen","renderBackdrop","onBackdropClick","inheritAttrs","transitionProps","css","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","hasTitle","$scopedSlots","$slots","hasNormalizedSlot","titleId","computedAttrs","bvAttrs","emitState","fullPath","$_returnFocusEl","listenOnRoot","handleToggle","handleSync","activated","emitSync","state","onKeydown","onTopTrapFocus","tabables","enforceFocus","onBottomTrapFocus","onBeforeEnter","onAfterEnter","onAfterLeave","$sidebar","$backdrop","$tabTrapTop","$tabTrapBottom","keydown","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","inject","bvGroup","isChecked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","_methods","buttonVariant","formRadioCheckMixin","isBtnMode","isPlain","plain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","stateClass","handleFocus","$button","$label","for","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","debounce","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","subtract","scrollLeft","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","divider","search","splitRegex","mergeWithPrevious","index2","transformProp","popperStyles","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","PopperUtils"],"mappings":"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","file":"js/chunk-ed5a6db8.302c7791.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","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&\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-overlay',{attrs:{\"id\":\"overlay-background\",\"show\":_vm.loading,\"variant\":\"transparent\",\"opacity\":\"1\",\"blur\":\"2px\",\"rounded\":\"sm\"}},[_c('b-card',[_c('b-card-body',[_c('b-card-title',[_vm._v(\" Opções de Serviço \"),_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(image)\",fn:function(data){return [_c('img',{staticClass:\"rounded-lg\",attrs:{\"src\":(_vm.$api_host + \"/storage/assets/\" + (data.item.image)),\"width\":\"35px\"}})]}},{key:\"cell(type)\",fn:function(data){return [_c('b-button',{staticClass:\"mr-1\",attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":_vm.getType(data.item.type).color}},[_vm._v(\" \"+_vm._s(_vm.getType(data.item.type).message)+\" \")])]}},{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 [(data.item.type !== 3)?_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:(''),expression:\"''\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"mr-1\",attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-dark\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.goTo(data.item)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"ListIcon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1):_vm._e(),(data.item.type === 3)?_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:(''),expression:\"''\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"mr-1\",attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-dark\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.goTo(data.item)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"UserPlusIcon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1):_vm._e(),_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Editar'),expression:\"'Editar'\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"mr-1\",attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.open(data.item.id)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1),_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Deletar'),expression:\"'Deletar'\",modifiers:{\"hover\":true,\"top\":true}}],attrs:{\"disabled\":_vm.loading,\"size\":\"sm\",\"variant\":\"relief-danger\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteModal(data.item)}}},[(!_vm.loading)?_c('feather-icon',{attrs:{\"icon\":\"Trash2Icon\"}}):_c('b-spinner',{attrs:{\"small\":\"\"}})],1)]}}])})],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-pagination',{staticClass:\"my-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"align\":\"center\",\"size\":\"sm\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)],1),_c('Create',{on:{\"updated\":function($event){return _vm.created($event)}},model:{value:(_vm.createModal),callback:function ($$v) {_vm.createModal=$$v},expression:\"createModal\"}}),_c('Edit',{attrs:{\"service-data\":_vm.serviceData},on:{\"updated\":function($event){return _vm.updated($event)}},model:{value:(_vm.editModal),callback:function ($$v) {_vm.editModal=$$v},expression:\"editModal\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\n BFormGroup,\n BFormSelect,\n BPagination,\n BInputGroup,\n BFormInput,\n BInputGroupAppend\n} from 'bootstrap-vue'\n\nexport default {\n components: {\n BFormGroup,\n BFormSelect,\n BPagination,\n BInputGroup,\n BFormInput,\n BInputGroupAppend\n },\n data: () => ({\n items: [],\n perPage: 10,\n pageOptions: [3, 5, 10, 25, 50, 100],\n totalRows: 1,\n currentPage: 1,\n sortBy: '',\n sortDesc: false,\n sortDirection: 'asc',\n filter: null,\n filterOn: [],\n infoModal: {\n id: 'info-modal',\n title: '',\n content: ''\n }\n }),\n computed: {\n sortOptions () {\n // Create an options list from our fields\n return this.fields\n .filter(f => f.sortable)\n .map(f => ({ text: f.label, value: f.key }))\n }\n },\n methods: {\n onFiltered (filteredItems) {\n // Trigger pagination to update the number of buttons/pages due to filtering\n this.totalRows = filteredItems.length\n this.currentPage = 1\n },\n info (item, index, button) {\n this.infoModal.title = `Row index: ${index}`\n this.infoModal.content = JSON.stringify(item, null, 2)\n this.$root.$emit('bv::show::modal', this.infoModal.id, button)\n },\n resetInfoModal () {\n this.infoModal.title = ''\n this.infoModal.content = ''\n }\n }\n}\n","export default {\n data: () => ({\n loading: true,\n createModal: false,\n editModal: false,\n serviceData: {}\n }),\n async mounted () {\n await this.getServiceOptions()\n },\n methods: {\n async getServiceOptions () {\n const serviceId = this.$router.currentRoute.params.id\n const url = `/admin/service_options/find_per_service_id/${serviceId}`\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_options/${service.id}`, params)\n },\n getType (type) {\n let response = {}\n\n switch (type) {\n case 1:\n response = {\n message: 'SMS',\n color: 'relief-primary',\n to: 'Opções de SMS (Admin)'\n }\n break\n\n case 2:\n response = {\n message: 'Seguidores',\n color: 'relief-primary',\n to: 'Opções de Seguidores (Admin)'\n }\n break\n\n case 3:\n response = {\n message: 'Contas',\n color: 'relief-primary',\n to: 'Adicionar Contas (Admin)'\n }\n break\n\n case 4:\n response = {\n message: 'Pack de Fotos',\n color: 'relief-primary',\n to: ''\n }\n break\n\n case 5:\n response = {\n message: 'VPS',\n color: 'relief-primary',\n to: ''\n }\n break\n\n default:\n response = {\n message: 'Nenhum Serviço',\n color: 'relief-primary',\n to: ''\n }\n }\n\n return response\n },\n goTo (item) {\n const serviceId = this.$router.currentRoute.params.id\n const type = this.getType(item.type)\n\n return item.type !== 3\n ? this.$router.push({ name: type.to, params: { id: serviceId, option_id: item.id } })\n : this.$router.push({ name: type.to, query: { id: item.id } })\n },\n open (id) {\n this.serviceData = JSON.parse(\n JSON.stringify(this.items.find(item => item.id === id))\n )\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_options/${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\":[1, 3].includes(_vm.selected) ? '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\":\"Imagem\",\"label-for\":\"service-image\"}},[_c('b-form-input',{attrs:{\"id\":\"service-image\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Imagem do Serviço\"},model:{value:(_vm.formData.image),callback:function ($$v) {_vm.$set(_vm.formData, \"image\", $$v)},expression:\"formData.image\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Tipo\",\"label-for\":\"service-type\"}},[_c('b-form-select',{attrs:{\"id\":\"service-type\",\"state\":_vm.selected === 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 um tipo!\")])]},proxy:true}],null,true),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Custos Fixos\",\"label-for\":\"fixed_costs\"}},[_c('b-form-input',{attrs:{\"id\":\"fixed_costs\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Custos Fixos\"},model:{value:(_vm.formData.fixed_costs),callback:function ($$v) {_vm.$set(_vm.formData, \"fixed_costs\", $$v)},expression:\"formData.fixed_costs\"}})],1),(_vm.selected === 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):_vm._e(),(_vm.selected === 3)?_c('accounts',{model:{value:(_vm.accounts_info),callback:function ($$v) {_vm.accounts_info=$$v},expression:\"accounts_info\"}}):_vm._e(),_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 }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-form-group',{attrs:{\"label\":\"Valor Unitário\",\"label-for\":\"service-value\"}},[_c('b-form-input',{attrs:{\"id\":\"service-value\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor Unitário\"},on:{\"change\":function($event){return _vm.$emit('update:accounts', _vm.accounts)}},model:{value:(_vm.accounts.value),callback:function ($$v) {_vm.$set(_vm.accounts, \"value\", $$v)},expression:\"accounts.value\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"service-description\"}},[_c('quill-editor',{on:{\"change\":function($event){return _vm.$emit('update:accounts', _vm.accounts)}},model:{value:(_vm.accounts.description),callback:function ($$v) {_vm.$set(_vm.accounts, \"description\", $$v)},expression:\"accounts.description\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./Accounts.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!./Accounts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Accounts.vue?vue&type=template&id=65af2dd8&\"\nimport script from \"./Accounts.vue?vue&type=script&lang=js&\"\nexport * from \"./Accounts.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\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=ccb4f168&\"\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\":[1, 3, 4].includes(_vm.serviceData.type) ? '800px' : ''},on:{\"change\":function (val) { return _vm.$emit('update:visible', val); },\"hidden\":_vm.clearForm},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hide = ref.hide;\nreturn [_c('div',{staticClass:\"\\n d-flex\\n justify-content-between\\n align-items-center\\n content-sidebar-header\\n px-2\\n py-1\\n \"},[_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Editar Serviço \")]),_c('div',[_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",attrs:{\"icon\":\"XIcon\",\"size\":\"16\"},on:{\"click\":hide}})],1)]),_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit()},\"reset\":function($event){$event.preventDefault();return _vm.resetForm.apply(null, arguments)}}},[_c('b-form-group',{attrs:{\"label\":\"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\":\"Imagem\",\"label-for\":\"service-image\"}},[_c('b-form-input',{attrs:{\"id\":\"service-image\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Imagem do Serviço\"},model:{value:(_vm.serviceData.image),callback:function ($$v) {_vm.$set(_vm.serviceData, \"image\", $$v)},expression:\"serviceData.image\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Tipo\",\"label-for\":\"service-type\"}},[_c('b-form-select',{attrs:{\"id\":\"service-type\",\"state\":_vm.serviceData.type === 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 um tipo!\")])]},proxy:true}],null,true),model:{value:(_vm.serviceData.type),callback:function ($$v) {_vm.$set(_vm.serviceData, \"type\", $$v)},expression:\"serviceData.type\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Custos Fixos\",\"label-for\":\"fixed_costs\"}},[_c('b-form-input',{attrs:{\"id\":\"fixed_costs\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Custos Fixos\"},model:{value:(_vm.serviceData.fixed_costs),callback:function ($$v) {_vm.$set(_vm.serviceData, \"fixed_costs\", $$v)},expression:\"serviceData.fixed_costs\"}})],1),(_vm.serviceData.type === 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):_vm._e(),_c('b-form-group',{attrs:{\"label\":\"Texto da Notícia\",\"label-for\":\"service-image\"}},[([3, 5].includes(_vm.serviceData.type))?_c('b-form-input',{attrs:{\"id\":\"service-image\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"👥 | Contas Montadas Simples do Instagram adicionadas no site!\"},model:{value:(_vm.serviceData.news_text),callback:function ($$v) {_vm.$set(_vm.serviceData, \"news_text\", $$v)},expression:\"serviceData.news_text\"}}):_vm._e()],1),_c('b-form-group',{attrs:{\"label\":\"cor da notícia\",\"label-for\":\"service-type\"}},[([3, 5].includes(_vm.serviceData.type))?_c('b-form-select',{attrs:{\"id\":\"service-type\",\"state\":_vm.serviceData.news_color === null ? false : true,\"options\":_vm.options_news_color},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('b-form-select-option',{attrs:{\"value\":null}},[_vm._v(\"Por favor, selecione um cor da notícia!\")])]},proxy:true}],null,true),model:{value:(_vm.serviceData.news_color),callback:function ($$v) {_vm.$set(_vm.serviceData, \"news_color\", $$v)},expression:\"serviceData.news_color\"}}):_vm._e()],1),(_vm.serviceData.type === 3)?_c('accounts',{model:{value:(_vm.serviceData.accounts_info),callback:function ($$v) {_vm.$set(_vm.serviceData, \"accounts_info\", $$v)},expression:\"serviceData.accounts_info\"}}):_vm._e(),(_vm.serviceData.type === 4)?_c('pack-of-photos',{model:{value:(_vm.serviceData.pack_of_photos),callback:function ($$v) {_vm.$set(_vm.serviceData, \"pack_of_photos\", $$v)},expression:\"serviceData.pack_of_photos\"}}):_vm._e(),(_vm.serviceData.type === 5 && _vm.visible)?_c('vps',{model:{value:(_vm.serviceData.vps_info),callback:function ($$v) {_vm.$set(_vm.serviceData, \"vps_info\", $$v)},expression:\"serviceData.vps_info\"}}):_vm._e(),_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 }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-form-group',{attrs:{\"label\":\"Plano da VPS\",\"label-for\":\"vps-plan\"}},[_c('b-form-select',{attrs:{\"id\":\"vps-plan\",\"state\":_vm.vps.type === null ? false : true,\"options\":_vm.VPSOptions},on:{\"change\":function($event){return _vm.$emit('update:vps', _vm.vps)}},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('b-form-select-option',{attrs:{\"value\":null}},[_vm._v(\"Por favor, selecione um tipo!\")])]},proxy:true}]),model:{value:(_vm.vps.type),callback:function ($$v) {_vm.$set(_vm.vps, \"type\", $$v)},expression:\"vps.type\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Valor Unitário\",\"label-for\":\"value\"}},[_c('b-form-input',{attrs:{\"id\":\"value\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor Unitário\"},on:{\"change\":function($event){return _vm.$emit('update:vps', _vm.vps)}},model:{value:(_vm.vps.value),callback:function ($$v) {_vm.$set(_vm.vps, \"value\", $$v)},expression:\"vps.value\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"description\"}},[_c('b-form-input',{attrs:{\"id\":\"description\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor Unitário\"},on:{\"change\":function($event){return _vm.$emit('update:vps', _vm.vps)}},model:{value:(_vm.vps.description),callback:function ($$v) {_vm.$set(_vm.vps, \"description\", $$v)},expression:\"vps.description\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Garantia (Em dias)\",\"label-for\":\"guarantee\"}},[_c('b-form-input',{attrs:{\"id\":\"guarantee\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Garantia (Em dias)\"},on:{\"change\":function($event){return _vm.$emit('update:vps', _vm.vps)}},model:{value:(_vm.vps.guarantee),callback:function ($$v) {_vm.$set(_vm.vps, \"guarantee\", $$v)},expression:\"vps.guarantee\"}})],1),_c('b-form-checkbox',{on:{\"change\":function($event){return _vm.$emit('update:vps', _vm.vps)}},model:{value:(_vm.popular),callback:function ($$v) {_vm.popular=$$v},expression:\"popular\"}},[_vm._v(\" Destaque \")]),_c('b-card',[_c('b-row',[_vm._l((_vm.benefits),function(item,index){return _c('b-col',{key:index,attrs:{\"cols\":\"12\"}},[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"2\",\"md\":\"2\",\"cols\":\"12\"}},[_c('b-button',{staticClass:\"btn-icon\",staticStyle:{\"margin-top\":\"17px\",\"margin-left\":\"10px\"},attrs:{\"variant\":\"relief-primary\",\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeBenefit(index)}}},[_c('feather-icon',{attrs:{\"icon\":\"TrashIcon\"}})],1)],1),_c('b-col',{attrs:{\"sm\":\"10\",\"md\":\"10\",\"cols\":\"12\"}},[_c('b-form-input',{staticClass:\"mt-1 mb-1\",attrs:{\"placeholder\":\"Benefício\"},model:{value:(_vm.benefits[index]),callback:function ($$v) {_vm.$set(_vm.benefits, index, $$v)},expression:\"benefits[index]\"}})],1)],1)],1)}),_c('b-col',{staticClass:\"mt-1 mb-1\",attrs:{\"cols\":\"12\"}},[_c('b-button',{attrs:{\"variant\":\"relief-primary\",\"block\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addBenefit('')}}},[_vm._v(\" Adicionar Benefício \")])],1)],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./VPS.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!./VPS.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VPS.vue?vue&type=template&id=32ed5646&\"\nimport script from \"./VPS.vue?vue&type=script&lang=js&\"\nexport * from \"./VPS.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-form-group',{attrs:{\"label\":\"Valor Unitário\",\"label-for\":\"service-value\"}},[_c('b-form-input',{attrs:{\"id\":\"service-value\",\"autofocus\":\"\",\"trim\":\"\",\"placeholder\":\"Valor Unitário\"},on:{\"change\":function($event){return _vm.$emit('update:packOfPhotos', _vm.packOfPhotos)}},model:{value:(_vm.packOfPhotos.value),callback:function ($$v) {_vm.$set(_vm.packOfPhotos, \"value\", $$v)},expression:\"packOfPhotos.value\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Descrição\",\"label-for\":\"service-description\"}},[_c('quill-editor',{on:{\"change\":function($event){return _vm.$emit('update:packOfPhotos', _vm.packOfPhotos)}},model:{value:(_vm.packOfPhotos.description),callback:function ($$v) {_vm.$set(_vm.packOfPhotos, \"description\", $$v)},expression:\"packOfPhotos.description\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./PackOfPhotos.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!./PackOfPhotos.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PackOfPhotos.vue?vue&type=template&id=4c7bbe82&\"\nimport script from \"./PackOfPhotos.vue?vue&type=script&lang=js&\"\nexport * from \"./PackOfPhotos.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\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=72b02f1c&\"\nimport script from \"./Edit.vue?vue&type=script&lang=js&\"\nexport * from \"./Edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Edit.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=9ba2c7b6&\"\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","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { kebabCase, pascalCase, trim } from '../../utils/string';\nimport { BVIconBase, props as BVIconBaseProps } from './icon-base';\n/**\n * Icon component generator function\n *\n * @param {string} icon name (minus the leading `BIcon`)\n * @param {string} raw `innerHTML` for SVG\n * @return {VueComponent}\n */\n\nexport var makeIcon = function makeIcon(name, content) {\n // For performance reason we pre-compute some values, so that\n // they are not computed on each render of the icon component\n var kebabName = kebabCase(name);\n var iconName = \"BIcon\".concat(pascalCase(name));\n var iconNameClass = \"bi-\".concat(kebabName);\n var iconTitle = kebabName.replace(/-/g, ' ');\n var svgContent = trim(content || '');\n return /*#__PURE__*/Vue.extend({\n name: iconName,\n functional: true,\n props: _objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n }),\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n return h(BVIconBase, mergeData( // Defaults\n {\n props: {\n title: iconTitle\n },\n attrs: {\n 'aria-label': iconTitle\n }\n }, // User data\n data, // Required data\n {\n staticClass: iconNameClass,\n props: _objectSpread(_objectSpread({}, props), {}, {\n content: svgContent\n })\n }));\n }\n });\n};","// --- BEGIN AUTO-GENERATED FILE ---\n//\n// @IconsVersion: 1.2.1\n// @Generated: 2020-12-16T17:45:59.062Z\n//\n// This file is generated on each build. Do not edit this file!\n/*!\n * BootstrapVue Icons, generated from Bootstrap Icons 1.2.1\n *\n * @link https://icons.getbootstrap.com/\n * @license MIT\n * https://github.com/twbs/icons/blob/master/LICENSE.md\n */import{makeIcon}from'./helpers/make-icon';// --- BootstrapVue custom icons ---\nexport var BIconBlank=/*#__PURE__*/makeIcon('Blank','');// --- Bootstrap Icons ---\n// eslint-disable-next-line\nexport var BIconAlarm=/*#__PURE__*/makeIcon('Alarm','');// eslint-disable-next-line\nexport var BIconAlarmFill=/*#__PURE__*/makeIcon('AlarmFill','');// eslint-disable-next-line\nexport var BIconAlignBottom=/*#__PURE__*/makeIcon('AlignBottom','');// eslint-disable-next-line\nexport var BIconAlignCenter=/*#__PURE__*/makeIcon('AlignCenter','');// eslint-disable-next-line\nexport var BIconAlignEnd=/*#__PURE__*/makeIcon('AlignEnd','');// eslint-disable-next-line\nexport var BIconAlignMiddle=/*#__PURE__*/makeIcon('AlignMiddle','');// eslint-disable-next-line\nexport var BIconAlignStart=/*#__PURE__*/makeIcon('AlignStart','');// eslint-disable-next-line\nexport var BIconAlignTop=/*#__PURE__*/makeIcon('AlignTop','');// eslint-disable-next-line\nexport var BIconAlt=/*#__PURE__*/makeIcon('Alt','');// eslint-disable-next-line\nexport var BIconApp=/*#__PURE__*/makeIcon('App','');// eslint-disable-next-line\nexport var BIconAppIndicator=/*#__PURE__*/makeIcon('AppIndicator','');// eslint-disable-next-line\nexport var BIconArchive=/*#__PURE__*/makeIcon('Archive','');// eslint-disable-next-line\nexport var BIconArchiveFill=/*#__PURE__*/makeIcon('ArchiveFill','');// eslint-disable-next-line\nexport var BIconArrow90degDown=/*#__PURE__*/makeIcon('Arrow90degDown','');// eslint-disable-next-line\nexport var BIconArrow90degLeft=/*#__PURE__*/makeIcon('Arrow90degLeft','');// eslint-disable-next-line\nexport var BIconArrow90degRight=/*#__PURE__*/makeIcon('Arrow90degRight','');// eslint-disable-next-line\nexport var BIconArrow90degUp=/*#__PURE__*/makeIcon('Arrow90degUp','');// eslint-disable-next-line\nexport var BIconArrowBarDown=/*#__PURE__*/makeIcon('ArrowBarDown','');// eslint-disable-next-line\nexport var BIconArrowBarLeft=/*#__PURE__*/makeIcon('ArrowBarLeft','');// eslint-disable-next-line\nexport var BIconArrowBarRight=/*#__PURE__*/makeIcon('ArrowBarRight','');// eslint-disable-next-line\nexport var BIconArrowBarUp=/*#__PURE__*/makeIcon('ArrowBarUp','');// eslint-disable-next-line\nexport var BIconArrowClockwise=/*#__PURE__*/makeIcon('ArrowClockwise','');// eslint-disable-next-line\nexport var BIconArrowCounterclockwise=/*#__PURE__*/makeIcon('ArrowCounterclockwise','');// eslint-disable-next-line\nexport var BIconArrowDown=/*#__PURE__*/makeIcon('ArrowDown','');// eslint-disable-next-line\nexport var BIconArrowDownCircle=/*#__PURE__*/makeIcon('ArrowDownCircle','');// eslint-disable-next-line\nexport var BIconArrowDownCircleFill=/*#__PURE__*/makeIcon('ArrowDownCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeft=/*#__PURE__*/makeIcon('ArrowDownLeft','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircle=/*#__PURE__*/makeIcon('ArrowDownLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircleFill=/*#__PURE__*/makeIcon('ArrowDownLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquare=/*#__PURE__*/makeIcon('ArrowDownLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquareFill=/*#__PURE__*/makeIcon('ArrowDownLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownRight=/*#__PURE__*/makeIcon('ArrowDownRight','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircle=/*#__PURE__*/makeIcon('ArrowDownRightCircle','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircleFill=/*#__PURE__*/makeIcon('ArrowDownRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquare=/*#__PURE__*/makeIcon('ArrowDownRightSquare','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquareFill=/*#__PURE__*/makeIcon('ArrowDownRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownShort=/*#__PURE__*/makeIcon('ArrowDownShort','');// eslint-disable-next-line\nexport var BIconArrowDownSquare=/*#__PURE__*/makeIcon('ArrowDownSquare','');// eslint-disable-next-line\nexport var BIconArrowDownSquareFill=/*#__PURE__*/makeIcon('ArrowDownSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownUp=/*#__PURE__*/makeIcon('ArrowDownUp','');// eslint-disable-next-line\nexport var BIconArrowLeft=/*#__PURE__*/makeIcon('ArrowLeft','');// eslint-disable-next-line\nexport var BIconArrowLeftCircle=/*#__PURE__*/makeIcon('ArrowLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowLeftCircleFill=/*#__PURE__*/makeIcon('ArrowLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowLeftRight=/*#__PURE__*/makeIcon('ArrowLeftRight','');// eslint-disable-next-line\nexport var BIconArrowLeftShort=/*#__PURE__*/makeIcon('ArrowLeftShort','');// eslint-disable-next-line\nexport var BIconArrowLeftSquare=/*#__PURE__*/makeIcon('ArrowLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowLeftSquareFill=/*#__PURE__*/makeIcon('ArrowLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowRepeat=/*#__PURE__*/makeIcon('ArrowRepeat','');// eslint-disable-next-line\nexport var BIconArrowReturnLeft=/*#__PURE__*/makeIcon('ArrowReturnLeft','');// eslint-disable-next-line\nexport var BIconArrowReturnRight=/*#__PURE__*/makeIcon('ArrowReturnRight','');// eslint-disable-next-line\nexport var BIconArrowRight=/*#__PURE__*/makeIcon('ArrowRight','');// eslint-disable-next-line\nexport var BIconArrowRightCircle=/*#__PURE__*/makeIcon('ArrowRightCircle','');// eslint-disable-next-line\nexport var BIconArrowRightCircleFill=/*#__PURE__*/makeIcon('ArrowRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowRightShort=/*#__PURE__*/makeIcon('ArrowRightShort','');// eslint-disable-next-line\nexport var BIconArrowRightSquare=/*#__PURE__*/makeIcon('ArrowRightSquare','');// eslint-disable-next-line\nexport var BIconArrowRightSquareFill=/*#__PURE__*/makeIcon('ArrowRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUp=/*#__PURE__*/makeIcon('ArrowUp','');// eslint-disable-next-line\nexport var BIconArrowUpCircle=/*#__PURE__*/makeIcon('ArrowUpCircle','');// eslint-disable-next-line\nexport var BIconArrowUpCircleFill=/*#__PURE__*/makeIcon('ArrowUpCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeft=/*#__PURE__*/makeIcon('ArrowUpLeft','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircle=/*#__PURE__*/makeIcon('ArrowUpLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircleFill=/*#__PURE__*/makeIcon('ArrowUpLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquare=/*#__PURE__*/makeIcon('ArrowUpLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquareFill=/*#__PURE__*/makeIcon('ArrowUpLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpRight=/*#__PURE__*/makeIcon('ArrowUpRight','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircle=/*#__PURE__*/makeIcon('ArrowUpRightCircle','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircleFill=/*#__PURE__*/makeIcon('ArrowUpRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquare=/*#__PURE__*/makeIcon('ArrowUpRightSquare','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquareFill=/*#__PURE__*/makeIcon('ArrowUpRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpShort=/*#__PURE__*/makeIcon('ArrowUpShort','');// eslint-disable-next-line\nexport var BIconArrowUpSquare=/*#__PURE__*/makeIcon('ArrowUpSquare','');// eslint-disable-next-line\nexport var BIconArrowUpSquareFill=/*#__PURE__*/makeIcon('ArrowUpSquareFill','');// eslint-disable-next-line\nexport var BIconArrowsAngleContract=/*#__PURE__*/makeIcon('ArrowsAngleContract','');// eslint-disable-next-line\nexport var BIconArrowsAngleExpand=/*#__PURE__*/makeIcon('ArrowsAngleExpand','');// eslint-disable-next-line\nexport var BIconArrowsCollapse=/*#__PURE__*/makeIcon('ArrowsCollapse','');// eslint-disable-next-line\nexport var BIconArrowsExpand=/*#__PURE__*/makeIcon('ArrowsExpand','');// eslint-disable-next-line\nexport var BIconArrowsFullscreen=/*#__PURE__*/makeIcon('ArrowsFullscreen','');// eslint-disable-next-line\nexport var BIconArrowsMove=/*#__PURE__*/makeIcon('ArrowsMove','');// eslint-disable-next-line\nexport var BIconAspectRatio=/*#__PURE__*/makeIcon('AspectRatio','');// eslint-disable-next-line\nexport var BIconAspectRatioFill=/*#__PURE__*/makeIcon('AspectRatioFill','');// eslint-disable-next-line\nexport var BIconAsterisk=/*#__PURE__*/makeIcon('Asterisk','');// eslint-disable-next-line\nexport var BIconAt=/*#__PURE__*/makeIcon('At','');// eslint-disable-next-line\nexport var BIconAward=/*#__PURE__*/makeIcon('Award','');// eslint-disable-next-line\nexport var BIconAwardFill=/*#__PURE__*/makeIcon('AwardFill','');// eslint-disable-next-line\nexport var BIconBack=/*#__PURE__*/makeIcon('Back','');// eslint-disable-next-line\nexport var BIconBackspace=/*#__PURE__*/makeIcon('Backspace','');// eslint-disable-next-line\nexport var BIconBackspaceFill=/*#__PURE__*/makeIcon('BackspaceFill','');// eslint-disable-next-line\nexport var BIconBackspaceReverse=/*#__PURE__*/makeIcon('BackspaceReverse','');// eslint-disable-next-line\nexport var BIconBackspaceReverseFill=/*#__PURE__*/makeIcon('BackspaceReverseFill','');// eslint-disable-next-line\nexport var BIconBadge4k=/*#__PURE__*/makeIcon('Badge4k','');// eslint-disable-next-line\nexport var BIconBadge4kFill=/*#__PURE__*/makeIcon('Badge4kFill','');// eslint-disable-next-line\nexport var BIconBadge8k=/*#__PURE__*/makeIcon('Badge8k','');// eslint-disable-next-line\nexport var BIconBadge8kFill=/*#__PURE__*/makeIcon('Badge8kFill','');// eslint-disable-next-line\nexport var BIconBadgeAd=/*#__PURE__*/makeIcon('BadgeAd','');// eslint-disable-next-line\nexport var BIconBadgeAdFill=/*#__PURE__*/makeIcon('BadgeAdFill','');// eslint-disable-next-line\nexport var BIconBadgeCc=/*#__PURE__*/makeIcon('BadgeCc','');// eslint-disable-next-line\nexport var BIconBadgeCcFill=/*#__PURE__*/makeIcon('BadgeCcFill','');// eslint-disable-next-line\nexport var BIconBadgeHd=/*#__PURE__*/makeIcon('BadgeHd','');// eslint-disable-next-line\nexport var BIconBadgeHdFill=/*#__PURE__*/makeIcon('BadgeHdFill','');// eslint-disable-next-line\nexport var BIconBadgeTm=/*#__PURE__*/makeIcon('BadgeTm','');// eslint-disable-next-line\nexport var BIconBadgeTmFill=/*#__PURE__*/makeIcon('BadgeTmFill','');// eslint-disable-next-line\nexport var BIconBadgeVo=/*#__PURE__*/makeIcon('BadgeVo','');// eslint-disable-next-line\nexport var BIconBadgeVoFill=/*#__PURE__*/makeIcon('BadgeVoFill','');// eslint-disable-next-line\nexport var BIconBag=/*#__PURE__*/makeIcon('Bag','');// eslint-disable-next-line\nexport var BIconBagCheck=/*#__PURE__*/makeIcon('BagCheck','');// eslint-disable-next-line\nexport var BIconBagCheckFill=/*#__PURE__*/makeIcon('BagCheckFill','');// eslint-disable-next-line\nexport var BIconBagDash=/*#__PURE__*/makeIcon('BagDash','');// eslint-disable-next-line\nexport var BIconBagDashFill=/*#__PURE__*/makeIcon('BagDashFill','');// eslint-disable-next-line\nexport var BIconBagFill=/*#__PURE__*/makeIcon('BagFill','');// eslint-disable-next-line\nexport var BIconBagPlus=/*#__PURE__*/makeIcon('BagPlus','');// eslint-disable-next-line\nexport var BIconBagPlusFill=/*#__PURE__*/makeIcon('BagPlusFill','');// eslint-disable-next-line\nexport var BIconBagX=/*#__PURE__*/makeIcon('BagX','');// eslint-disable-next-line\nexport var BIconBagXFill=/*#__PURE__*/makeIcon('BagXFill','');// eslint-disable-next-line\nexport var BIconBarChart=/*#__PURE__*/makeIcon('BarChart','');// eslint-disable-next-line\nexport var BIconBarChartFill=/*#__PURE__*/makeIcon('BarChartFill','');// eslint-disable-next-line\nexport var BIconBarChartLine=/*#__PURE__*/makeIcon('BarChartLine','');// eslint-disable-next-line\nexport var BIconBarChartLineFill=/*#__PURE__*/makeIcon('BarChartLineFill','');// eslint-disable-next-line\nexport var BIconBarChartSteps=/*#__PURE__*/makeIcon('BarChartSteps','');// eslint-disable-next-line\nexport var BIconBasket=/*#__PURE__*/makeIcon('Basket','');// eslint-disable-next-line\nexport var BIconBasket2=/*#__PURE__*/makeIcon('Basket2','');// eslint-disable-next-line\nexport var BIconBasket2Fill=/*#__PURE__*/makeIcon('Basket2Fill','');// eslint-disable-next-line\nexport var BIconBasket3=/*#__PURE__*/makeIcon('Basket3','');// eslint-disable-next-line\nexport var BIconBasket3Fill=/*#__PURE__*/makeIcon('Basket3Fill','');// eslint-disable-next-line\nexport var BIconBasketFill=/*#__PURE__*/makeIcon('BasketFill','');// eslint-disable-next-line\nexport var BIconBattery=/*#__PURE__*/makeIcon('Battery','');// eslint-disable-next-line\nexport var BIconBatteryCharging=/*#__PURE__*/makeIcon('BatteryCharging','');// eslint-disable-next-line\nexport var BIconBatteryFull=/*#__PURE__*/makeIcon('BatteryFull','');// eslint-disable-next-line\nexport var BIconBatteryHalf=/*#__PURE__*/makeIcon('BatteryHalf','');// eslint-disable-next-line\nexport var BIconBell=/*#__PURE__*/makeIcon('Bell','');// eslint-disable-next-line\nexport var BIconBellFill=/*#__PURE__*/makeIcon('BellFill','');// eslint-disable-next-line\nexport var BIconBezier=/*#__PURE__*/makeIcon('Bezier','');// eslint-disable-next-line\nexport var BIconBezier2=/*#__PURE__*/makeIcon('Bezier2','');// eslint-disable-next-line\nexport var BIconBicycle=/*#__PURE__*/makeIcon('Bicycle','');// eslint-disable-next-line\nexport var BIconBinoculars=/*#__PURE__*/makeIcon('Binoculars','');// eslint-disable-next-line\nexport var BIconBinocularsFill=/*#__PURE__*/makeIcon('BinocularsFill','');// eslint-disable-next-line\nexport var BIconBlockquoteLeft=/*#__PURE__*/makeIcon('BlockquoteLeft','');// eslint-disable-next-line\nexport var BIconBlockquoteRight=/*#__PURE__*/makeIcon('BlockquoteRight','');// eslint-disable-next-line\nexport var BIconBook=/*#__PURE__*/makeIcon('Book','');// eslint-disable-next-line\nexport var BIconBookFill=/*#__PURE__*/makeIcon('BookFill','');// eslint-disable-next-line\nexport var BIconBookHalf=/*#__PURE__*/makeIcon('BookHalf','');// eslint-disable-next-line\nexport var BIconBookmark=/*#__PURE__*/makeIcon('Bookmark','');// eslint-disable-next-line\nexport var BIconBookmarkCheck=/*#__PURE__*/makeIcon('BookmarkCheck','');// eslint-disable-next-line\nexport var BIconBookmarkCheckFill=/*#__PURE__*/makeIcon('BookmarkCheckFill','');// eslint-disable-next-line\nexport var BIconBookmarkDash=/*#__PURE__*/makeIcon('BookmarkDash','');// eslint-disable-next-line\nexport var BIconBookmarkDashFill=/*#__PURE__*/makeIcon('BookmarkDashFill','');// eslint-disable-next-line\nexport var BIconBookmarkFill=/*#__PURE__*/makeIcon('BookmarkFill','');// eslint-disable-next-line\nexport var BIconBookmarkHeart=/*#__PURE__*/makeIcon('BookmarkHeart','');// eslint-disable-next-line\nexport var BIconBookmarkHeartFill=/*#__PURE__*/makeIcon('BookmarkHeartFill','');// eslint-disable-next-line\nexport var BIconBookmarkPlus=/*#__PURE__*/makeIcon('BookmarkPlus','');// eslint-disable-next-line\nexport var BIconBookmarkPlusFill=/*#__PURE__*/makeIcon('BookmarkPlusFill','');// eslint-disable-next-line\nexport var BIconBookmarkStar=/*#__PURE__*/makeIcon('BookmarkStar','');// eslint-disable-next-line\nexport var BIconBookmarkStarFill=/*#__PURE__*/makeIcon('BookmarkStarFill','');// eslint-disable-next-line\nexport var BIconBookmarkX=/*#__PURE__*/makeIcon('BookmarkX','');// eslint-disable-next-line\nexport var BIconBookmarkXFill=/*#__PURE__*/makeIcon('BookmarkXFill','');// eslint-disable-next-line\nexport var BIconBookmarks=/*#__PURE__*/makeIcon('Bookmarks','');// eslint-disable-next-line\nexport var BIconBookmarksFill=/*#__PURE__*/makeIcon('BookmarksFill','');// eslint-disable-next-line\nexport var BIconBookshelf=/*#__PURE__*/makeIcon('Bookshelf','');// eslint-disable-next-line\nexport var BIconBootstrap=/*#__PURE__*/makeIcon('Bootstrap','');// eslint-disable-next-line\nexport var BIconBootstrapFill=/*#__PURE__*/makeIcon('BootstrapFill','');// eslint-disable-next-line\nexport var BIconBootstrapReboot=/*#__PURE__*/makeIcon('BootstrapReboot','');// eslint-disable-next-line\nexport var BIconBorderStyle=/*#__PURE__*/makeIcon('BorderStyle','');// eslint-disable-next-line\nexport var BIconBorderWidth=/*#__PURE__*/makeIcon('BorderWidth','');// eslint-disable-next-line\nexport var BIconBoundingBox=/*#__PURE__*/makeIcon('BoundingBox','');// eslint-disable-next-line\nexport var BIconBoundingBoxCircles=/*#__PURE__*/makeIcon('BoundingBoxCircles','');// eslint-disable-next-line\nexport var BIconBox=/*#__PURE__*/makeIcon('Box','');// eslint-disable-next-line\nexport var BIconBoxArrowDown=/*#__PURE__*/makeIcon('BoxArrowDown','');// eslint-disable-next-line\nexport var BIconBoxArrowDownLeft=/*#__PURE__*/makeIcon('BoxArrowDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowDownRight=/*#__PURE__*/makeIcon('BoxArrowDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInDown=/*#__PURE__*/makeIcon('BoxArrowInDown','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownLeft=/*#__PURE__*/makeIcon('BoxArrowInDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownRight=/*#__PURE__*/makeIcon('BoxArrowInDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInLeft=/*#__PURE__*/makeIcon('BoxArrowInLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInRight=/*#__PURE__*/makeIcon('BoxArrowInRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInUp=/*#__PURE__*/makeIcon('BoxArrowInUp','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpLeft=/*#__PURE__*/makeIcon('BoxArrowInUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpRight=/*#__PURE__*/makeIcon('BoxArrowInUpRight','');// eslint-disable-next-line\nexport var BIconBoxArrowLeft=/*#__PURE__*/makeIcon('BoxArrowLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowRight=/*#__PURE__*/makeIcon('BoxArrowRight','');// eslint-disable-next-line\nexport var BIconBoxArrowUp=/*#__PURE__*/makeIcon('BoxArrowUp','');// eslint-disable-next-line\nexport var BIconBoxArrowUpLeft=/*#__PURE__*/makeIcon('BoxArrowUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowUpRight=/*#__PURE__*/makeIcon('BoxArrowUpRight','');// eslint-disable-next-line\nexport var BIconBoxSeam=/*#__PURE__*/makeIcon('BoxSeam','');// eslint-disable-next-line\nexport var BIconBraces=/*#__PURE__*/makeIcon('Braces','');// eslint-disable-next-line\nexport var BIconBricks=/*#__PURE__*/makeIcon('Bricks','');// eslint-disable-next-line\nexport var BIconBriefcase=/*#__PURE__*/makeIcon('Briefcase','');// eslint-disable-next-line\nexport var BIconBriefcaseFill=/*#__PURE__*/makeIcon('BriefcaseFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltHigh=/*#__PURE__*/makeIcon('BrightnessAltHigh','');// eslint-disable-next-line\nexport var BIconBrightnessAltHighFill=/*#__PURE__*/makeIcon('BrightnessAltHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltLow=/*#__PURE__*/makeIcon('BrightnessAltLow','');// eslint-disable-next-line\nexport var BIconBrightnessAltLowFill=/*#__PURE__*/makeIcon('BrightnessAltLowFill','');// eslint-disable-next-line\nexport var BIconBrightnessHigh=/*#__PURE__*/makeIcon('BrightnessHigh','');// eslint-disable-next-line\nexport var BIconBrightnessHighFill=/*#__PURE__*/makeIcon('BrightnessHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessLow=/*#__PURE__*/makeIcon('BrightnessLow','');// eslint-disable-next-line\nexport var BIconBrightnessLowFill=/*#__PURE__*/makeIcon('BrightnessLowFill','');// eslint-disable-next-line\nexport var BIconBroadcast=/*#__PURE__*/makeIcon('Broadcast','');// eslint-disable-next-line\nexport var BIconBroadcastPin=/*#__PURE__*/makeIcon('BroadcastPin','');// eslint-disable-next-line\nexport var BIconBrush=/*#__PURE__*/makeIcon('Brush','');// eslint-disable-next-line\nexport var BIconBrushFill=/*#__PURE__*/makeIcon('BrushFill','');// eslint-disable-next-line\nexport var BIconBucket=/*#__PURE__*/makeIcon('Bucket','');// eslint-disable-next-line\nexport var BIconBucketFill=/*#__PURE__*/makeIcon('BucketFill','');// eslint-disable-next-line\nexport var BIconBug=/*#__PURE__*/makeIcon('Bug','');// eslint-disable-next-line\nexport var BIconBugFill=/*#__PURE__*/makeIcon('BugFill','');// eslint-disable-next-line\nexport var BIconBuilding=/*#__PURE__*/makeIcon('Building','');// eslint-disable-next-line\nexport var BIconBullseye=/*#__PURE__*/makeIcon('Bullseye','');// eslint-disable-next-line\nexport var BIconCalculator=/*#__PURE__*/makeIcon('Calculator','');// eslint-disable-next-line\nexport var BIconCalculatorFill=/*#__PURE__*/makeIcon('CalculatorFill','');// eslint-disable-next-line\nexport var BIconCalendar=/*#__PURE__*/makeIcon('Calendar','');// eslint-disable-next-line\nexport var BIconCalendar2=/*#__PURE__*/makeIcon('Calendar2','');// eslint-disable-next-line\nexport var BIconCalendar2Check=/*#__PURE__*/makeIcon('Calendar2Check','');// eslint-disable-next-line\nexport var BIconCalendar2CheckFill=/*#__PURE__*/makeIcon('Calendar2CheckFill','');// eslint-disable-next-line\nexport var BIconCalendar2Date=/*#__PURE__*/makeIcon('Calendar2Date','');// eslint-disable-next-line\nexport var BIconCalendar2DateFill=/*#__PURE__*/makeIcon('Calendar2DateFill','');// eslint-disable-next-line\nexport var BIconCalendar2Day=/*#__PURE__*/makeIcon('Calendar2Day','');// eslint-disable-next-line\nexport var BIconCalendar2DayFill=/*#__PURE__*/makeIcon('Calendar2DayFill','');// eslint-disable-next-line\nexport var BIconCalendar2Event=/*#__PURE__*/makeIcon('Calendar2Event','');// eslint-disable-next-line\nexport var BIconCalendar2EventFill=/*#__PURE__*/makeIcon('Calendar2EventFill','');// eslint-disable-next-line\nexport var BIconCalendar2Fill=/*#__PURE__*/makeIcon('Calendar2Fill','');// eslint-disable-next-line\nexport var BIconCalendar2Minus=/*#__PURE__*/makeIcon('Calendar2Minus','');// eslint-disable-next-line\nexport var BIconCalendar2MinusFill=/*#__PURE__*/makeIcon('Calendar2MinusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Month=/*#__PURE__*/makeIcon('Calendar2Month','');// eslint-disable-next-line\nexport var BIconCalendar2MonthFill=/*#__PURE__*/makeIcon('Calendar2MonthFill','');// eslint-disable-next-line\nexport var BIconCalendar2Plus=/*#__PURE__*/makeIcon('Calendar2Plus','');// eslint-disable-next-line\nexport var BIconCalendar2PlusFill=/*#__PURE__*/makeIcon('Calendar2PlusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Range=/*#__PURE__*/makeIcon('Calendar2Range','');// eslint-disable-next-line\nexport var BIconCalendar2RangeFill=/*#__PURE__*/makeIcon('Calendar2RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar2Week=/*#__PURE__*/makeIcon('Calendar2Week','');// eslint-disable-next-line\nexport var BIconCalendar2WeekFill=/*#__PURE__*/makeIcon('Calendar2WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar2X=/*#__PURE__*/makeIcon('Calendar2X','');// eslint-disable-next-line\nexport var BIconCalendar2XFill=/*#__PURE__*/makeIcon('Calendar2XFill','');// eslint-disable-next-line\nexport var BIconCalendar3=/*#__PURE__*/makeIcon('Calendar3','');// eslint-disable-next-line\nexport var BIconCalendar3Event=/*#__PURE__*/makeIcon('Calendar3Event','');// eslint-disable-next-line\nexport var BIconCalendar3EventFill=/*#__PURE__*/makeIcon('Calendar3EventFill','');// eslint-disable-next-line\nexport var BIconCalendar3Fill=/*#__PURE__*/makeIcon('Calendar3Fill','');// eslint-disable-next-line\nexport var BIconCalendar3Range=/*#__PURE__*/makeIcon('Calendar3Range','');// eslint-disable-next-line\nexport var BIconCalendar3RangeFill=/*#__PURE__*/makeIcon('Calendar3RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar3Week=/*#__PURE__*/makeIcon('Calendar3Week','');// eslint-disable-next-line\nexport var BIconCalendar3WeekFill=/*#__PURE__*/makeIcon('Calendar3WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar4=/*#__PURE__*/makeIcon('Calendar4','');// eslint-disable-next-line\nexport var BIconCalendar4Event=/*#__PURE__*/makeIcon('Calendar4Event','');// eslint-disable-next-line\nexport var BIconCalendar4Range=/*#__PURE__*/makeIcon('Calendar4Range','');// eslint-disable-next-line\nexport var BIconCalendar4Week=/*#__PURE__*/makeIcon('Calendar4Week','');// eslint-disable-next-line\nexport var BIconCalendarCheck=/*#__PURE__*/makeIcon('CalendarCheck','');// eslint-disable-next-line\nexport var BIconCalendarCheckFill=/*#__PURE__*/makeIcon('CalendarCheckFill','');// eslint-disable-next-line\nexport var BIconCalendarDate=/*#__PURE__*/makeIcon('CalendarDate','');// eslint-disable-next-line\nexport var BIconCalendarDateFill=/*#__PURE__*/makeIcon('CalendarDateFill','');// eslint-disable-next-line\nexport var BIconCalendarDay=/*#__PURE__*/makeIcon('CalendarDay','');// eslint-disable-next-line\nexport var BIconCalendarDayFill=/*#__PURE__*/makeIcon('CalendarDayFill','');// eslint-disable-next-line\nexport var BIconCalendarEvent=/*#__PURE__*/makeIcon('CalendarEvent','');// eslint-disable-next-line\nexport var BIconCalendarEventFill=/*#__PURE__*/makeIcon('CalendarEventFill','');// eslint-disable-next-line\nexport var BIconCalendarFill=/*#__PURE__*/makeIcon('CalendarFill','');// eslint-disable-next-line\nexport var BIconCalendarMinus=/*#__PURE__*/makeIcon('CalendarMinus','');// eslint-disable-next-line\nexport var BIconCalendarMinusFill=/*#__PURE__*/makeIcon('CalendarMinusFill','');// eslint-disable-next-line\nexport var BIconCalendarMonth=/*#__PURE__*/makeIcon('CalendarMonth','');// eslint-disable-next-line\nexport var BIconCalendarMonthFill=/*#__PURE__*/makeIcon('CalendarMonthFill','');// eslint-disable-next-line\nexport var BIconCalendarPlus=/*#__PURE__*/makeIcon('CalendarPlus','');// eslint-disable-next-line\nexport var BIconCalendarPlusFill=/*#__PURE__*/makeIcon('CalendarPlusFill','');// eslint-disable-next-line\nexport var BIconCalendarRange=/*#__PURE__*/makeIcon('CalendarRange','');// eslint-disable-next-line\nexport var BIconCalendarRangeFill=/*#__PURE__*/makeIcon('CalendarRangeFill','');// eslint-disable-next-line\nexport var BIconCalendarWeek=/*#__PURE__*/makeIcon('CalendarWeek','');// eslint-disable-next-line\nexport var BIconCalendarWeekFill=/*#__PURE__*/makeIcon('CalendarWeekFill','');// eslint-disable-next-line\nexport var BIconCalendarX=/*#__PURE__*/makeIcon('CalendarX','');// eslint-disable-next-line\nexport var BIconCalendarXFill=/*#__PURE__*/makeIcon('CalendarXFill','');// eslint-disable-next-line\nexport var BIconCamera=/*#__PURE__*/makeIcon('Camera','');// eslint-disable-next-line\nexport var BIconCamera2=/*#__PURE__*/makeIcon('Camera2','');// eslint-disable-next-line\nexport var BIconCameraFill=/*#__PURE__*/makeIcon('CameraFill','');// eslint-disable-next-line\nexport var BIconCameraReels=/*#__PURE__*/makeIcon('CameraReels','');// eslint-disable-next-line\nexport var BIconCameraReelsFill=/*#__PURE__*/makeIcon('CameraReelsFill','');// eslint-disable-next-line\nexport var BIconCameraVideo=/*#__PURE__*/makeIcon('CameraVideo','');// eslint-disable-next-line\nexport var BIconCameraVideoFill=/*#__PURE__*/makeIcon('CameraVideoFill','');// eslint-disable-next-line\nexport var BIconCameraVideoOff=/*#__PURE__*/makeIcon('CameraVideoOff','');// eslint-disable-next-line\nexport var BIconCameraVideoOffFill=/*#__PURE__*/makeIcon('CameraVideoOffFill','');// eslint-disable-next-line\nexport var BIconCapslock=/*#__PURE__*/makeIcon('Capslock','');// eslint-disable-next-line\nexport var BIconCapslockFill=/*#__PURE__*/makeIcon('CapslockFill','');// eslint-disable-next-line\nexport var BIconCardChecklist=/*#__PURE__*/makeIcon('CardChecklist','');// eslint-disable-next-line\nexport var BIconCardHeading=/*#__PURE__*/makeIcon('CardHeading','');// eslint-disable-next-line\nexport var BIconCardImage=/*#__PURE__*/makeIcon('CardImage','');// eslint-disable-next-line\nexport var BIconCardList=/*#__PURE__*/makeIcon('CardList','');// eslint-disable-next-line\nexport var BIconCardText=/*#__PURE__*/makeIcon('CardText','');// eslint-disable-next-line\nexport var BIconCaretDown=/*#__PURE__*/makeIcon('CaretDown','');// eslint-disable-next-line\nexport var BIconCaretDownFill=/*#__PURE__*/makeIcon('CaretDownFill','');// eslint-disable-next-line\nexport var BIconCaretDownSquare=/*#__PURE__*/makeIcon('CaretDownSquare','');// eslint-disable-next-line\nexport var BIconCaretDownSquareFill=/*#__PURE__*/makeIcon('CaretDownSquareFill','');// eslint-disable-next-line\nexport var BIconCaretLeft=/*#__PURE__*/makeIcon('CaretLeft','');// eslint-disable-next-line\nexport var BIconCaretLeftFill=/*#__PURE__*/makeIcon('CaretLeftFill','');// eslint-disable-next-line\nexport var BIconCaretLeftSquare=/*#__PURE__*/makeIcon('CaretLeftSquare','');// eslint-disable-next-line\nexport var BIconCaretLeftSquareFill=/*#__PURE__*/makeIcon('CaretLeftSquareFill','');// eslint-disable-next-line\nexport var BIconCaretRight=/*#__PURE__*/makeIcon('CaretRight','');// eslint-disable-next-line\nexport var BIconCaretRightFill=/*#__PURE__*/makeIcon('CaretRightFill','');// eslint-disable-next-line\nexport var BIconCaretRightSquare=/*#__PURE__*/makeIcon('CaretRightSquare','');// eslint-disable-next-line\nexport var BIconCaretRightSquareFill=/*#__PURE__*/makeIcon('CaretRightSquareFill','');// eslint-disable-next-line\nexport var BIconCaretUp=/*#__PURE__*/makeIcon('CaretUp','');// eslint-disable-next-line\nexport var BIconCaretUpFill=/*#__PURE__*/makeIcon('CaretUpFill','');// eslint-disable-next-line\nexport var BIconCaretUpSquare=/*#__PURE__*/makeIcon('CaretUpSquare','');// eslint-disable-next-line\nexport var BIconCaretUpSquareFill=/*#__PURE__*/makeIcon('CaretUpSquareFill','');// eslint-disable-next-line\nexport var BIconCart=/*#__PURE__*/makeIcon('Cart','');// eslint-disable-next-line\nexport var BIconCart2=/*#__PURE__*/makeIcon('Cart2','');// eslint-disable-next-line\nexport var BIconCart3=/*#__PURE__*/makeIcon('Cart3','');// eslint-disable-next-line\nexport var BIconCart4=/*#__PURE__*/makeIcon('Cart4','');// eslint-disable-next-line\nexport var BIconCartCheck=/*#__PURE__*/makeIcon('CartCheck','');// eslint-disable-next-line\nexport var BIconCartCheckFill=/*#__PURE__*/makeIcon('CartCheckFill','');// eslint-disable-next-line\nexport var BIconCartDash=/*#__PURE__*/makeIcon('CartDash','');// eslint-disable-next-line\nexport var BIconCartDashFill=/*#__PURE__*/makeIcon('CartDashFill','');// eslint-disable-next-line\nexport var BIconCartFill=/*#__PURE__*/makeIcon('CartFill','');// eslint-disable-next-line\nexport var BIconCartPlus=/*#__PURE__*/makeIcon('CartPlus','');// eslint-disable-next-line\nexport var BIconCartPlusFill=/*#__PURE__*/makeIcon('CartPlusFill','');// eslint-disable-next-line\nexport var BIconCartX=/*#__PURE__*/makeIcon('CartX','');// eslint-disable-next-line\nexport var BIconCartXFill=/*#__PURE__*/makeIcon('CartXFill','');// eslint-disable-next-line\nexport var BIconCash=/*#__PURE__*/makeIcon('Cash','');// eslint-disable-next-line\nexport var BIconCashStack=/*#__PURE__*/makeIcon('CashStack','');// eslint-disable-next-line\nexport var BIconCast=/*#__PURE__*/makeIcon('Cast','');// eslint-disable-next-line\nexport var BIconChat=/*#__PURE__*/makeIcon('Chat','');// eslint-disable-next-line\nexport var BIconChatDots=/*#__PURE__*/makeIcon('ChatDots','');// eslint-disable-next-line\nexport var BIconChatDotsFill=/*#__PURE__*/makeIcon('ChatDotsFill','');// eslint-disable-next-line\nexport var BIconChatFill=/*#__PURE__*/makeIcon('ChatFill','');// eslint-disable-next-line\nexport var BIconChatLeft=/*#__PURE__*/makeIcon('ChatLeft','');// eslint-disable-next-line\nexport var BIconChatLeftDots=/*#__PURE__*/makeIcon('ChatLeftDots','');// eslint-disable-next-line\nexport var BIconChatLeftDotsFill=/*#__PURE__*/makeIcon('ChatLeftDotsFill','');// eslint-disable-next-line\nexport var BIconChatLeftFill=/*#__PURE__*/makeIcon('ChatLeftFill','');// eslint-disable-next-line\nexport var BIconChatLeftQuote=/*#__PURE__*/makeIcon('ChatLeftQuote','');// eslint-disable-next-line\nexport var BIconChatLeftQuoteFill=/*#__PURE__*/makeIcon('ChatLeftQuoteFill','');// eslint-disable-next-line\nexport var BIconChatLeftText=/*#__PURE__*/makeIcon('ChatLeftText','');// eslint-disable-next-line\nexport var BIconChatLeftTextFill=/*#__PURE__*/makeIcon('ChatLeftTextFill','');// eslint-disable-next-line\nexport var BIconChatQuote=/*#__PURE__*/makeIcon('ChatQuote','');// eslint-disable-next-line\nexport var BIconChatQuoteFill=/*#__PURE__*/makeIcon('ChatQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRight=/*#__PURE__*/makeIcon('ChatRight','');// eslint-disable-next-line\nexport var BIconChatRightDots=/*#__PURE__*/makeIcon('ChatRightDots','');// eslint-disable-next-line\nexport var BIconChatRightDotsFill=/*#__PURE__*/makeIcon('ChatRightDotsFill','');// eslint-disable-next-line\nexport var BIconChatRightFill=/*#__PURE__*/makeIcon('ChatRightFill','');// eslint-disable-next-line\nexport var BIconChatRightQuote=/*#__PURE__*/makeIcon('ChatRightQuote','');// eslint-disable-next-line\nexport var BIconChatRightQuoteFill=/*#__PURE__*/makeIcon('ChatRightQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRightText=/*#__PURE__*/makeIcon('ChatRightText','');// eslint-disable-next-line\nexport var BIconChatRightTextFill=/*#__PURE__*/makeIcon('ChatRightTextFill','');// eslint-disable-next-line\nexport var BIconChatSquare=/*#__PURE__*/makeIcon('ChatSquare','');// eslint-disable-next-line\nexport var BIconChatSquareDots=/*#__PURE__*/makeIcon('ChatSquareDots','');// eslint-disable-next-line\nexport var BIconChatSquareDotsFill=/*#__PURE__*/makeIcon('ChatSquareDotsFill','');// eslint-disable-next-line\nexport var BIconChatSquareFill=/*#__PURE__*/makeIcon('ChatSquareFill','');// eslint-disable-next-line\nexport var BIconChatSquareQuote=/*#__PURE__*/makeIcon('ChatSquareQuote','');// eslint-disable-next-line\nexport var BIconChatSquareQuoteFill=/*#__PURE__*/makeIcon('ChatSquareQuoteFill','');// eslint-disable-next-line\nexport var BIconChatSquareText=/*#__PURE__*/makeIcon('ChatSquareText','');// eslint-disable-next-line\nexport var BIconChatSquareTextFill=/*#__PURE__*/makeIcon('ChatSquareTextFill','');// eslint-disable-next-line\nexport var BIconChatText=/*#__PURE__*/makeIcon('ChatText','');// eslint-disable-next-line\nexport var BIconChatTextFill=/*#__PURE__*/makeIcon('ChatTextFill','');// eslint-disable-next-line\nexport var BIconCheck=/*#__PURE__*/makeIcon('Check','');// eslint-disable-next-line\nexport var BIconCheck2=/*#__PURE__*/makeIcon('Check2','');// eslint-disable-next-line\nexport var BIconCheck2All=/*#__PURE__*/makeIcon('Check2All','');// eslint-disable-next-line\nexport var BIconCheck2Circle=/*#__PURE__*/makeIcon('Check2Circle','');// eslint-disable-next-line\nexport var BIconCheck2Square=/*#__PURE__*/makeIcon('Check2Square','');// eslint-disable-next-line\nexport var BIconCheckAll=/*#__PURE__*/makeIcon('CheckAll','');// eslint-disable-next-line\nexport var BIconCheckCircle=/*#__PURE__*/makeIcon('CheckCircle','');// eslint-disable-next-line\nexport var BIconCheckCircleFill=/*#__PURE__*/makeIcon('CheckCircleFill','');// eslint-disable-next-line\nexport var BIconCheckSquare=/*#__PURE__*/makeIcon('CheckSquare','');// eslint-disable-next-line\nexport var BIconCheckSquareFill=/*#__PURE__*/makeIcon('CheckSquareFill','');// eslint-disable-next-line\nexport var BIconChevronBarContract=/*#__PURE__*/makeIcon('ChevronBarContract','');// eslint-disable-next-line\nexport var BIconChevronBarDown=/*#__PURE__*/makeIcon('ChevronBarDown','');// eslint-disable-next-line\nexport var BIconChevronBarExpand=/*#__PURE__*/makeIcon('ChevronBarExpand','');// eslint-disable-next-line\nexport var BIconChevronBarLeft=/*#__PURE__*/makeIcon('ChevronBarLeft','');// eslint-disable-next-line\nexport var BIconChevronBarRight=/*#__PURE__*/makeIcon('ChevronBarRight','');// eslint-disable-next-line\nexport var BIconChevronBarUp=/*#__PURE__*/makeIcon('ChevronBarUp','');// eslint-disable-next-line\nexport var BIconChevronCompactDown=/*#__PURE__*/makeIcon('ChevronCompactDown','');// eslint-disable-next-line\nexport var BIconChevronCompactLeft=/*#__PURE__*/makeIcon('ChevronCompactLeft','');// eslint-disable-next-line\nexport var BIconChevronCompactRight=/*#__PURE__*/makeIcon('ChevronCompactRight','');// eslint-disable-next-line\nexport var BIconChevronCompactUp=/*#__PURE__*/makeIcon('ChevronCompactUp','');// eslint-disable-next-line\nexport var BIconChevronContract=/*#__PURE__*/makeIcon('ChevronContract','');// eslint-disable-next-line\nexport var BIconChevronDoubleDown=/*#__PURE__*/makeIcon('ChevronDoubleDown','');// eslint-disable-next-line\nexport var BIconChevronDoubleLeft=/*#__PURE__*/makeIcon('ChevronDoubleLeft','');// eslint-disable-next-line\nexport var BIconChevronDoubleRight=/*#__PURE__*/makeIcon('ChevronDoubleRight','');// eslint-disable-next-line\nexport var BIconChevronDoubleUp=/*#__PURE__*/makeIcon('ChevronDoubleUp','');// eslint-disable-next-line\nexport var BIconChevronDown=/*#__PURE__*/makeIcon('ChevronDown','');// eslint-disable-next-line\nexport var BIconChevronExpand=/*#__PURE__*/makeIcon('ChevronExpand','');// eslint-disable-next-line\nexport var BIconChevronLeft=/*#__PURE__*/makeIcon('ChevronLeft','');// eslint-disable-next-line\nexport var BIconChevronRight=/*#__PURE__*/makeIcon('ChevronRight','');// eslint-disable-next-line\nexport var BIconChevronUp=/*#__PURE__*/makeIcon('ChevronUp','');// eslint-disable-next-line\nexport var BIconCircle=/*#__PURE__*/makeIcon('Circle','');// eslint-disable-next-line\nexport var BIconCircleFill=/*#__PURE__*/makeIcon('CircleFill','');// eslint-disable-next-line\nexport var BIconCircleHalf=/*#__PURE__*/makeIcon('CircleHalf','');// eslint-disable-next-line\nexport var BIconCircleSquare=/*#__PURE__*/makeIcon('CircleSquare','');// eslint-disable-next-line\nexport var BIconClipboard=/*#__PURE__*/makeIcon('Clipboard','');// eslint-disable-next-line\nexport var BIconClipboardCheck=/*#__PURE__*/makeIcon('ClipboardCheck','');// eslint-disable-next-line\nexport var BIconClipboardData=/*#__PURE__*/makeIcon('ClipboardData','');// eslint-disable-next-line\nexport var BIconClipboardMinus=/*#__PURE__*/makeIcon('ClipboardMinus','');// eslint-disable-next-line\nexport var BIconClipboardPlus=/*#__PURE__*/makeIcon('ClipboardPlus','');// eslint-disable-next-line\nexport var BIconClipboardX=/*#__PURE__*/makeIcon('ClipboardX','');// eslint-disable-next-line\nexport var BIconClock=/*#__PURE__*/makeIcon('Clock','');// eslint-disable-next-line\nexport var BIconClockFill=/*#__PURE__*/makeIcon('ClockFill','');// eslint-disable-next-line\nexport var BIconClockHistory=/*#__PURE__*/makeIcon('ClockHistory','');// eslint-disable-next-line\nexport var BIconCloud=/*#__PURE__*/makeIcon('Cloud','');// eslint-disable-next-line\nexport var BIconCloudArrowDown=/*#__PURE__*/makeIcon('CloudArrowDown','');// eslint-disable-next-line\nexport var BIconCloudArrowDownFill=/*#__PURE__*/makeIcon('CloudArrowDownFill','');// eslint-disable-next-line\nexport var BIconCloudArrowUp=/*#__PURE__*/makeIcon('CloudArrowUp','');// eslint-disable-next-line\nexport var BIconCloudArrowUpFill=/*#__PURE__*/makeIcon('CloudArrowUpFill','');// eslint-disable-next-line\nexport var BIconCloudCheck=/*#__PURE__*/makeIcon('CloudCheck','');// eslint-disable-next-line\nexport var BIconCloudCheckFill=/*#__PURE__*/makeIcon('CloudCheckFill','');// eslint-disable-next-line\nexport var BIconCloudDownload=/*#__PURE__*/makeIcon('CloudDownload','');// eslint-disable-next-line\nexport var BIconCloudDownloadFill=/*#__PURE__*/makeIcon('CloudDownloadFill','');// eslint-disable-next-line\nexport var BIconCloudFill=/*#__PURE__*/makeIcon('CloudFill','');// eslint-disable-next-line\nexport var BIconCloudMinus=/*#__PURE__*/makeIcon('CloudMinus','');// eslint-disable-next-line\nexport var BIconCloudMinusFill=/*#__PURE__*/makeIcon('CloudMinusFill','');// eslint-disable-next-line\nexport var BIconCloudPlus=/*#__PURE__*/makeIcon('CloudPlus','');// eslint-disable-next-line\nexport var BIconCloudPlusFill=/*#__PURE__*/makeIcon('CloudPlusFill','');// eslint-disable-next-line\nexport var BIconCloudSlash=/*#__PURE__*/makeIcon('CloudSlash','');// eslint-disable-next-line\nexport var BIconCloudSlashFill=/*#__PURE__*/makeIcon('CloudSlashFill','');// eslint-disable-next-line\nexport var BIconCloudUpload=/*#__PURE__*/makeIcon('CloudUpload','');// eslint-disable-next-line\nexport var BIconCloudUploadFill=/*#__PURE__*/makeIcon('CloudUploadFill','');// eslint-disable-next-line\nexport var BIconCode=/*#__PURE__*/makeIcon('Code','');// eslint-disable-next-line\nexport var BIconCodeSlash=/*#__PURE__*/makeIcon('CodeSlash','');// eslint-disable-next-line\nexport var BIconCodeSquare=/*#__PURE__*/makeIcon('CodeSquare','');// eslint-disable-next-line\nexport var BIconCollection=/*#__PURE__*/makeIcon('Collection','');// eslint-disable-next-line\nexport var BIconCollectionFill=/*#__PURE__*/makeIcon('CollectionFill','');// eslint-disable-next-line\nexport var BIconCollectionPlay=/*#__PURE__*/makeIcon('CollectionPlay','');// eslint-disable-next-line\nexport var BIconCollectionPlayFill=/*#__PURE__*/makeIcon('CollectionPlayFill','');// eslint-disable-next-line\nexport var BIconColumns=/*#__PURE__*/makeIcon('Columns','');// eslint-disable-next-line\nexport var BIconColumnsGap=/*#__PURE__*/makeIcon('ColumnsGap','');// eslint-disable-next-line\nexport var BIconCommand=/*#__PURE__*/makeIcon('Command','');// eslint-disable-next-line\nexport var BIconCompass=/*#__PURE__*/makeIcon('Compass','');// eslint-disable-next-line\nexport var BIconCompassFill=/*#__PURE__*/makeIcon('CompassFill','');// eslint-disable-next-line\nexport var BIconCone=/*#__PURE__*/makeIcon('Cone','');// eslint-disable-next-line\nexport var BIconConeStriped=/*#__PURE__*/makeIcon('ConeStriped','');// eslint-disable-next-line\nexport var BIconController=/*#__PURE__*/makeIcon('Controller','');// eslint-disable-next-line\nexport var BIconCpu=/*#__PURE__*/makeIcon('Cpu','');// eslint-disable-next-line\nexport var BIconCpuFill=/*#__PURE__*/makeIcon('CpuFill','');// eslint-disable-next-line\nexport var BIconCreditCard=/*#__PURE__*/makeIcon('CreditCard','');// eslint-disable-next-line\nexport var BIconCreditCard2Back=/*#__PURE__*/makeIcon('CreditCard2Back','');// eslint-disable-next-line\nexport var BIconCreditCard2BackFill=/*#__PURE__*/makeIcon('CreditCard2BackFill','');// eslint-disable-next-line\nexport var BIconCreditCard2Front=/*#__PURE__*/makeIcon('CreditCard2Front','');// eslint-disable-next-line\nexport var BIconCreditCard2FrontFill=/*#__PURE__*/makeIcon('CreditCard2FrontFill','');// eslint-disable-next-line\nexport var BIconCreditCardFill=/*#__PURE__*/makeIcon('CreditCardFill','');// eslint-disable-next-line\nexport var BIconCrop=/*#__PURE__*/makeIcon('Crop','');// eslint-disable-next-line\nexport var BIconCup=/*#__PURE__*/makeIcon('Cup','');// eslint-disable-next-line\nexport var BIconCupFill=/*#__PURE__*/makeIcon('CupFill','');// eslint-disable-next-line\nexport var BIconCupStraw=/*#__PURE__*/makeIcon('CupStraw','');// eslint-disable-next-line\nexport var BIconCursor=/*#__PURE__*/makeIcon('Cursor','');// eslint-disable-next-line\nexport var BIconCursorFill=/*#__PURE__*/makeIcon('CursorFill','');// eslint-disable-next-line\nexport var BIconCursorText=/*#__PURE__*/makeIcon('CursorText','');// eslint-disable-next-line\nexport var BIconDash=/*#__PURE__*/makeIcon('Dash','');// eslint-disable-next-line\nexport var BIconDashCircle=/*#__PURE__*/makeIcon('DashCircle','');// eslint-disable-next-line\nexport var BIconDashCircleFill=/*#__PURE__*/makeIcon('DashCircleFill','');// eslint-disable-next-line\nexport var BIconDashSquare=/*#__PURE__*/makeIcon('DashSquare','');// eslint-disable-next-line\nexport var BIconDashSquareFill=/*#__PURE__*/makeIcon('DashSquareFill','');// eslint-disable-next-line\nexport var BIconDiagram2=/*#__PURE__*/makeIcon('Diagram2','');// eslint-disable-next-line\nexport var BIconDiagram2Fill=/*#__PURE__*/makeIcon('Diagram2Fill','');// eslint-disable-next-line\nexport var BIconDiagram3=/*#__PURE__*/makeIcon('Diagram3','');// eslint-disable-next-line\nexport var BIconDiagram3Fill=/*#__PURE__*/makeIcon('Diagram3Fill','');// eslint-disable-next-line\nexport var BIconDiamond=/*#__PURE__*/makeIcon('Diamond','');// eslint-disable-next-line\nexport var BIconDiamondFill=/*#__PURE__*/makeIcon('DiamondFill','');// eslint-disable-next-line\nexport var BIconDiamondHalf=/*#__PURE__*/makeIcon('DiamondHalf','');// eslint-disable-next-line\nexport var BIconDice1=/*#__PURE__*/makeIcon('Dice1','');// eslint-disable-next-line\nexport var BIconDice1Fill=/*#__PURE__*/makeIcon('Dice1Fill','');// eslint-disable-next-line\nexport var BIconDice2=/*#__PURE__*/makeIcon('Dice2','');// eslint-disable-next-line\nexport var BIconDice2Fill=/*#__PURE__*/makeIcon('Dice2Fill','');// eslint-disable-next-line\nexport var BIconDice3=/*#__PURE__*/makeIcon('Dice3','');// eslint-disable-next-line\nexport var BIconDice3Fill=/*#__PURE__*/makeIcon('Dice3Fill','');// eslint-disable-next-line\nexport var BIconDice4=/*#__PURE__*/makeIcon('Dice4','');// eslint-disable-next-line\nexport var BIconDice4Fill=/*#__PURE__*/makeIcon('Dice4Fill','');// eslint-disable-next-line\nexport var BIconDice5=/*#__PURE__*/makeIcon('Dice5','');// eslint-disable-next-line\nexport var BIconDice5Fill=/*#__PURE__*/makeIcon('Dice5Fill','');// eslint-disable-next-line\nexport var BIconDice6=/*#__PURE__*/makeIcon('Dice6','');// eslint-disable-next-line\nexport var BIconDice6Fill=/*#__PURE__*/makeIcon('Dice6Fill','');// eslint-disable-next-line\nexport var BIconDisc=/*#__PURE__*/makeIcon('Disc','');// eslint-disable-next-line\nexport var BIconDiscFill=/*#__PURE__*/makeIcon('DiscFill','');// eslint-disable-next-line\nexport var BIconDiscord=/*#__PURE__*/makeIcon('Discord','');// eslint-disable-next-line\nexport var BIconDisplay=/*#__PURE__*/makeIcon('Display','');// eslint-disable-next-line\nexport var BIconDisplayFill=/*#__PURE__*/makeIcon('DisplayFill','');// eslint-disable-next-line\nexport var BIconDistributeHorizontal=/*#__PURE__*/makeIcon('DistributeHorizontal','');// eslint-disable-next-line\nexport var BIconDistributeVertical=/*#__PURE__*/makeIcon('DistributeVertical','');// eslint-disable-next-line\nexport var BIconDoorClosed=/*#__PURE__*/makeIcon('DoorClosed','');// eslint-disable-next-line\nexport var BIconDoorClosedFill=/*#__PURE__*/makeIcon('DoorClosedFill','');// eslint-disable-next-line\nexport var BIconDoorOpen=/*#__PURE__*/makeIcon('DoorOpen','');// eslint-disable-next-line\nexport var BIconDoorOpenFill=/*#__PURE__*/makeIcon('DoorOpenFill','');// eslint-disable-next-line\nexport var BIconDot=/*#__PURE__*/makeIcon('Dot','');// eslint-disable-next-line\nexport var BIconDownload=/*#__PURE__*/makeIcon('Download','');// eslint-disable-next-line\nexport var BIconDroplet=/*#__PURE__*/makeIcon('Droplet','');// eslint-disable-next-line\nexport var BIconDropletFill=/*#__PURE__*/makeIcon('DropletFill','');// eslint-disable-next-line\nexport var BIconDropletHalf=/*#__PURE__*/makeIcon('DropletHalf','');// eslint-disable-next-line\nexport var BIconEarbuds=/*#__PURE__*/makeIcon('Earbuds','');// eslint-disable-next-line\nexport var BIconEasel=/*#__PURE__*/makeIcon('Easel','');// eslint-disable-next-line\nexport var BIconEaselFill=/*#__PURE__*/makeIcon('EaselFill','');// eslint-disable-next-line\nexport var BIconEgg=/*#__PURE__*/makeIcon('Egg','');// eslint-disable-next-line\nexport var BIconEggFill=/*#__PURE__*/makeIcon('EggFill','');// eslint-disable-next-line\nexport var BIconEggFried=/*#__PURE__*/makeIcon('EggFried','');// eslint-disable-next-line\nexport var BIconEject=/*#__PURE__*/makeIcon('Eject','');// eslint-disable-next-line\nexport var BIconEjectFill=/*#__PURE__*/makeIcon('EjectFill','');// eslint-disable-next-line\nexport var BIconEmojiAngry=/*#__PURE__*/makeIcon('EmojiAngry','');// eslint-disable-next-line\nexport var BIconEmojiAngryFill=/*#__PURE__*/makeIcon('EmojiAngryFill','');// eslint-disable-next-line\nexport var BIconEmojiDizzy=/*#__PURE__*/makeIcon('EmojiDizzy','');// eslint-disable-next-line\nexport var BIconEmojiDizzyFill=/*#__PURE__*/makeIcon('EmojiDizzyFill','');// eslint-disable-next-line\nexport var BIconEmojiExpressionless=/*#__PURE__*/makeIcon('EmojiExpressionless','');// eslint-disable-next-line\nexport var BIconEmojiExpressionlessFill=/*#__PURE__*/makeIcon('EmojiExpressionlessFill','');// eslint-disable-next-line\nexport var BIconEmojiFrown=/*#__PURE__*/makeIcon('EmojiFrown','');// eslint-disable-next-line\nexport var BIconEmojiFrownFill=/*#__PURE__*/makeIcon('EmojiFrownFill','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyes=/*#__PURE__*/makeIcon('EmojiHeartEyes','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyesFill=/*#__PURE__*/makeIcon('EmojiHeartEyesFill','');// eslint-disable-next-line\nexport var BIconEmojiLaughing=/*#__PURE__*/makeIcon('EmojiLaughing','');// eslint-disable-next-line\nexport var BIconEmojiLaughingFill=/*#__PURE__*/makeIcon('EmojiLaughingFill','');// eslint-disable-next-line\nexport var BIconEmojiNeutral=/*#__PURE__*/makeIcon('EmojiNeutral','');// eslint-disable-next-line\nexport var BIconEmojiNeutralFill=/*#__PURE__*/makeIcon('EmojiNeutralFill','');// eslint-disable-next-line\nexport var BIconEmojiSmile=/*#__PURE__*/makeIcon('EmojiSmile','');// eslint-disable-next-line\nexport var BIconEmojiSmileFill=/*#__PURE__*/makeIcon('EmojiSmileFill','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDown=/*#__PURE__*/makeIcon('EmojiSmileUpsideDown','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDownFill=/*#__PURE__*/makeIcon('EmojiSmileUpsideDownFill','');// eslint-disable-next-line\nexport var BIconEmojiSunglasses=/*#__PURE__*/makeIcon('EmojiSunglasses','');// eslint-disable-next-line\nexport var BIconEmojiSunglassesFill=/*#__PURE__*/makeIcon('EmojiSunglassesFill','');// eslint-disable-next-line\nexport var BIconEmojiWink=/*#__PURE__*/makeIcon('EmojiWink','');// eslint-disable-next-line\nexport var BIconEmojiWinkFill=/*#__PURE__*/makeIcon('EmojiWinkFill','');// eslint-disable-next-line\nexport var BIconEnvelope=/*#__PURE__*/makeIcon('Envelope','');// eslint-disable-next-line\nexport var BIconEnvelopeFill=/*#__PURE__*/makeIcon('EnvelopeFill','');// eslint-disable-next-line\nexport var BIconEnvelopeOpen=/*#__PURE__*/makeIcon('EnvelopeOpen','');// eslint-disable-next-line\nexport var BIconEnvelopeOpenFill=/*#__PURE__*/makeIcon('EnvelopeOpenFill','');// eslint-disable-next-line\nexport var BIconExclamation=/*#__PURE__*/makeIcon('Exclamation','');// eslint-disable-next-line\nexport var BIconExclamationCircle=/*#__PURE__*/makeIcon('ExclamationCircle','');// eslint-disable-next-line\nexport var BIconExclamationCircleFill=/*#__PURE__*/makeIcon('ExclamationCircleFill','');// eslint-disable-next-line\nexport var BIconExclamationDiamond=/*#__PURE__*/makeIcon('ExclamationDiamond','');// eslint-disable-next-line\nexport var BIconExclamationDiamondFill=/*#__PURE__*/makeIcon('ExclamationDiamondFill','');// eslint-disable-next-line\nexport var BIconExclamationOctagon=/*#__PURE__*/makeIcon('ExclamationOctagon','');// eslint-disable-next-line\nexport var BIconExclamationOctagonFill=/*#__PURE__*/makeIcon('ExclamationOctagonFill','');// eslint-disable-next-line\nexport var BIconExclamationSquare=/*#__PURE__*/makeIcon('ExclamationSquare','');// eslint-disable-next-line\nexport var BIconExclamationSquareFill=/*#__PURE__*/makeIcon('ExclamationSquareFill','');// eslint-disable-next-line\nexport var BIconExclamationTriangle=/*#__PURE__*/makeIcon('ExclamationTriangle','');// eslint-disable-next-line\nexport var BIconExclamationTriangleFill=/*#__PURE__*/makeIcon('ExclamationTriangleFill','');// eslint-disable-next-line\nexport var BIconExclude=/*#__PURE__*/makeIcon('Exclude','');// eslint-disable-next-line\nexport var BIconEye=/*#__PURE__*/makeIcon('Eye','');// eslint-disable-next-line\nexport var BIconEyeFill=/*#__PURE__*/makeIcon('EyeFill','');// eslint-disable-next-line\nexport var BIconEyeSlash=/*#__PURE__*/makeIcon('EyeSlash','');// eslint-disable-next-line\nexport var BIconEyeSlashFill=/*#__PURE__*/makeIcon('EyeSlashFill','');// eslint-disable-next-line\nexport var BIconEyeglasses=/*#__PURE__*/makeIcon('Eyeglasses','');// eslint-disable-next-line\nexport var BIconFacebook=/*#__PURE__*/makeIcon('Facebook','');// eslint-disable-next-line\nexport var BIconFile=/*#__PURE__*/makeIcon('File','');// eslint-disable-next-line\nexport var BIconFileArrowDown=/*#__PURE__*/makeIcon('FileArrowDown','');// eslint-disable-next-line\nexport var BIconFileArrowDownFill=/*#__PURE__*/makeIcon('FileArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileArrowUp=/*#__PURE__*/makeIcon('FileArrowUp','');// eslint-disable-next-line\nexport var BIconFileArrowUpFill=/*#__PURE__*/makeIcon('FileArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileBarGraph=/*#__PURE__*/makeIcon('FileBarGraph','');// eslint-disable-next-line\nexport var BIconFileBarGraphFill=/*#__PURE__*/makeIcon('FileBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileBinary=/*#__PURE__*/makeIcon('FileBinary','');// eslint-disable-next-line\nexport var BIconFileBinaryFill=/*#__PURE__*/makeIcon('FileBinaryFill','');// eslint-disable-next-line\nexport var BIconFileBreak=/*#__PURE__*/makeIcon('FileBreak','');// eslint-disable-next-line\nexport var BIconFileBreakFill=/*#__PURE__*/makeIcon('FileBreakFill','');// eslint-disable-next-line\nexport var BIconFileCheck=/*#__PURE__*/makeIcon('FileCheck','');// eslint-disable-next-line\nexport var BIconFileCheckFill=/*#__PURE__*/makeIcon('FileCheckFill','');// eslint-disable-next-line\nexport var BIconFileCode=/*#__PURE__*/makeIcon('FileCode','');// eslint-disable-next-line\nexport var BIconFileCodeFill=/*#__PURE__*/makeIcon('FileCodeFill','');// eslint-disable-next-line\nexport var BIconFileDiff=/*#__PURE__*/makeIcon('FileDiff','');// eslint-disable-next-line\nexport var BIconFileDiffFill=/*#__PURE__*/makeIcon('FileDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmark=/*#__PURE__*/makeIcon('FileEarmark','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDown=/*#__PURE__*/makeIcon('FileEarmarkArrowDown','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDownFill=/*#__PURE__*/makeIcon('FileEarmarkArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUp=/*#__PURE__*/makeIcon('FileEarmarkArrowUp','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUpFill=/*#__PURE__*/makeIcon('FileEarmarkArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraph=/*#__PURE__*/makeIcon('FileEarmarkBarGraph','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraphFill=/*#__PURE__*/makeIcon('FileEarmarkBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinary=/*#__PURE__*/makeIcon('FileEarmarkBinary','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinaryFill=/*#__PURE__*/makeIcon('FileEarmarkBinaryFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreak=/*#__PURE__*/makeIcon('FileEarmarkBreak','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreakFill=/*#__PURE__*/makeIcon('FileEarmarkBreakFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheck=/*#__PURE__*/makeIcon('FileEarmarkCheck','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheckFill=/*#__PURE__*/makeIcon('FileEarmarkCheckFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCode=/*#__PURE__*/makeIcon('FileEarmarkCode','');// eslint-disable-next-line\nexport var BIconFileEarmarkCodeFill=/*#__PURE__*/makeIcon('FileEarmarkCodeFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiff=/*#__PURE__*/makeIcon('FileEarmarkDiff','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiffFill=/*#__PURE__*/makeIcon('FileEarmarkDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkEasel=/*#__PURE__*/makeIcon('FileEarmarkEasel','');// eslint-disable-next-line\nexport var BIconFileEarmarkEaselFill=/*#__PURE__*/makeIcon('FileEarmarkEaselFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcel=/*#__PURE__*/makeIcon('FileEarmarkExcel','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcelFill=/*#__PURE__*/makeIcon('FileEarmarkExcelFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFill=/*#__PURE__*/makeIcon('FileEarmarkFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFont=/*#__PURE__*/makeIcon('FileEarmarkFont','');// eslint-disable-next-line\nexport var BIconFileEarmarkFontFill=/*#__PURE__*/makeIcon('FileEarmarkFontFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkImage=/*#__PURE__*/makeIcon('FileEarmarkImage','');// eslint-disable-next-line\nexport var BIconFileEarmarkImageFill=/*#__PURE__*/makeIcon('FileEarmarkImageFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock=/*#__PURE__*/makeIcon('FileEarmarkLock','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2=/*#__PURE__*/makeIcon('FileEarmarkLock2','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2Fill=/*#__PURE__*/makeIcon('FileEarmarkLock2Fill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLockFill=/*#__PURE__*/makeIcon('FileEarmarkLockFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedical=/*#__PURE__*/makeIcon('FileEarmarkMedical','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedicalFill=/*#__PURE__*/makeIcon('FileEarmarkMedicalFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinus=/*#__PURE__*/makeIcon('FileEarmarkMinus','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinusFill=/*#__PURE__*/makeIcon('FileEarmarkMinusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusic=/*#__PURE__*/makeIcon('FileEarmarkMusic','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusicFill=/*#__PURE__*/makeIcon('FileEarmarkMusicFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPerson=/*#__PURE__*/makeIcon('FileEarmarkPerson','');// eslint-disable-next-line\nexport var BIconFileEarmarkPersonFill=/*#__PURE__*/makeIcon('FileEarmarkPersonFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlay=/*#__PURE__*/makeIcon('FileEarmarkPlay','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlayFill=/*#__PURE__*/makeIcon('FileEarmarkPlayFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlus=/*#__PURE__*/makeIcon('FileEarmarkPlus','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlusFill=/*#__PURE__*/makeIcon('FileEarmarkPlusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPost=/*#__PURE__*/makeIcon('FileEarmarkPost','');// eslint-disable-next-line\nexport var BIconFileEarmarkPostFill=/*#__PURE__*/makeIcon('FileEarmarkPostFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPpt=/*#__PURE__*/makeIcon('FileEarmarkPpt','');// eslint-disable-next-line\nexport var BIconFileEarmarkPptFill=/*#__PURE__*/makeIcon('FileEarmarkPptFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtext=/*#__PURE__*/makeIcon('FileEarmarkRichtext','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtextFill=/*#__PURE__*/makeIcon('FileEarmarkRichtextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuled=/*#__PURE__*/makeIcon('FileEarmarkRuled','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuledFill=/*#__PURE__*/makeIcon('FileEarmarkRuledFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlides=/*#__PURE__*/makeIcon('FileEarmarkSlides','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlidesFill=/*#__PURE__*/makeIcon('FileEarmarkSlidesFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheet=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheetFill=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkText=/*#__PURE__*/makeIcon('FileEarmarkText','');// eslint-disable-next-line\nexport var BIconFileEarmarkTextFill=/*#__PURE__*/makeIcon('FileEarmarkTextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkWord=/*#__PURE__*/makeIcon('FileEarmarkWord','');// eslint-disable-next-line\nexport var BIconFileEarmarkWordFill=/*#__PURE__*/makeIcon('FileEarmarkWordFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkX=/*#__PURE__*/makeIcon('FileEarmarkX','');// eslint-disable-next-line\nexport var BIconFileEarmarkXFill=/*#__PURE__*/makeIcon('FileEarmarkXFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkZip=/*#__PURE__*/makeIcon('FileEarmarkZip','');// eslint-disable-next-line\nexport var BIconFileEarmarkZipFill=/*#__PURE__*/makeIcon('FileEarmarkZipFill','');// eslint-disable-next-line\nexport var BIconFileEasel=/*#__PURE__*/makeIcon('FileEasel','');// eslint-disable-next-line\nexport var BIconFileEaselFill=/*#__PURE__*/makeIcon('FileEaselFill','');// eslint-disable-next-line\nexport var BIconFileExcel=/*#__PURE__*/makeIcon('FileExcel','');// eslint-disable-next-line\nexport var BIconFileExcelFill=/*#__PURE__*/makeIcon('FileExcelFill','');// eslint-disable-next-line\nexport var BIconFileFill=/*#__PURE__*/makeIcon('FileFill','');// eslint-disable-next-line\nexport var BIconFileFont=/*#__PURE__*/makeIcon('FileFont','');// eslint-disable-next-line\nexport var BIconFileFontFill=/*#__PURE__*/makeIcon('FileFontFill','');// eslint-disable-next-line\nexport var BIconFileImage=/*#__PURE__*/makeIcon('FileImage','');// eslint-disable-next-line\nexport var BIconFileImageFill=/*#__PURE__*/makeIcon('FileImageFill','');// eslint-disable-next-line\nexport var BIconFileLock=/*#__PURE__*/makeIcon('FileLock','');// eslint-disable-next-line\nexport var BIconFileLock2=/*#__PURE__*/makeIcon('FileLock2','');// eslint-disable-next-line\nexport var BIconFileLock2Fill=/*#__PURE__*/makeIcon('FileLock2Fill','');// eslint-disable-next-line\nexport var BIconFileLockFill=/*#__PURE__*/makeIcon('FileLockFill','');// eslint-disable-next-line\nexport var BIconFileMedical=/*#__PURE__*/makeIcon('FileMedical','');// eslint-disable-next-line\nexport var BIconFileMedicalFill=/*#__PURE__*/makeIcon('FileMedicalFill','');// eslint-disable-next-line\nexport var BIconFileMinus=/*#__PURE__*/makeIcon('FileMinus','');// eslint-disable-next-line\nexport var BIconFileMinusFill=/*#__PURE__*/makeIcon('FileMinusFill','');// eslint-disable-next-line\nexport var BIconFileMusic=/*#__PURE__*/makeIcon('FileMusic','');// eslint-disable-next-line\nexport var BIconFileMusicFill=/*#__PURE__*/makeIcon('FileMusicFill','');// eslint-disable-next-line\nexport var BIconFilePerson=/*#__PURE__*/makeIcon('FilePerson','');// eslint-disable-next-line\nexport var BIconFilePersonFill=/*#__PURE__*/makeIcon('FilePersonFill','');// eslint-disable-next-line\nexport var BIconFilePlay=/*#__PURE__*/makeIcon('FilePlay','');// eslint-disable-next-line\nexport var BIconFilePlayFill=/*#__PURE__*/makeIcon('FilePlayFill','');// eslint-disable-next-line\nexport var BIconFilePlus=/*#__PURE__*/makeIcon('FilePlus','');// eslint-disable-next-line\nexport var BIconFilePlusFill=/*#__PURE__*/makeIcon('FilePlusFill','');// eslint-disable-next-line\nexport var BIconFilePost=/*#__PURE__*/makeIcon('FilePost','');// eslint-disable-next-line\nexport var BIconFilePostFill=/*#__PURE__*/makeIcon('FilePostFill','');// eslint-disable-next-line\nexport var BIconFilePpt=/*#__PURE__*/makeIcon('FilePpt','');// eslint-disable-next-line\nexport var BIconFilePptFill=/*#__PURE__*/makeIcon('FilePptFill','');// eslint-disable-next-line\nexport var BIconFileRichtext=/*#__PURE__*/makeIcon('FileRichtext','');// eslint-disable-next-line\nexport var BIconFileRichtextFill=/*#__PURE__*/makeIcon('FileRichtextFill','');// eslint-disable-next-line\nexport var BIconFileRuled=/*#__PURE__*/makeIcon('FileRuled','');// eslint-disable-next-line\nexport var BIconFileRuledFill=/*#__PURE__*/makeIcon('FileRuledFill','');// eslint-disable-next-line\nexport var BIconFileSlides=/*#__PURE__*/makeIcon('FileSlides','');// eslint-disable-next-line\nexport var BIconFileSlidesFill=/*#__PURE__*/makeIcon('FileSlidesFill','');// eslint-disable-next-line\nexport var BIconFileSpreadsheet=/*#__PURE__*/makeIcon('FileSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileSpreadsheetFill=/*#__PURE__*/makeIcon('FileSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileText=/*#__PURE__*/makeIcon('FileText','');// eslint-disable-next-line\nexport var BIconFileTextFill=/*#__PURE__*/makeIcon('FileTextFill','');// eslint-disable-next-line\nexport var BIconFileWord=/*#__PURE__*/makeIcon('FileWord','');// eslint-disable-next-line\nexport var BIconFileWordFill=/*#__PURE__*/makeIcon('FileWordFill','');// eslint-disable-next-line\nexport var BIconFileX=/*#__PURE__*/makeIcon('FileX','');// eslint-disable-next-line\nexport var BIconFileXFill=/*#__PURE__*/makeIcon('FileXFill','');// eslint-disable-next-line\nexport var BIconFileZip=/*#__PURE__*/makeIcon('FileZip','');// eslint-disable-next-line\nexport var BIconFileZipFill=/*#__PURE__*/makeIcon('FileZipFill','');// eslint-disable-next-line\nexport var BIconFiles=/*#__PURE__*/makeIcon('Files','');// eslint-disable-next-line\nexport var BIconFilesAlt=/*#__PURE__*/makeIcon('FilesAlt','');// eslint-disable-next-line\nexport var BIconFilm=/*#__PURE__*/makeIcon('Film','');// eslint-disable-next-line\nexport var BIconFilter=/*#__PURE__*/makeIcon('Filter','');// eslint-disable-next-line\nexport var BIconFilterCircle=/*#__PURE__*/makeIcon('FilterCircle','');// eslint-disable-next-line\nexport var BIconFilterCircleFill=/*#__PURE__*/makeIcon('FilterCircleFill','');// eslint-disable-next-line\nexport var BIconFilterLeft=/*#__PURE__*/makeIcon('FilterLeft','');// eslint-disable-next-line\nexport var BIconFilterRight=/*#__PURE__*/makeIcon('FilterRight','');// eslint-disable-next-line\nexport var BIconFilterSquare=/*#__PURE__*/makeIcon('FilterSquare','');// eslint-disable-next-line\nexport var BIconFilterSquareFill=/*#__PURE__*/makeIcon('FilterSquareFill','');// eslint-disable-next-line\nexport var BIconFlag=/*#__PURE__*/makeIcon('Flag','');// eslint-disable-next-line\nexport var BIconFlagFill=/*#__PURE__*/makeIcon('FlagFill','');// eslint-disable-next-line\nexport var BIconFlower1=/*#__PURE__*/makeIcon('Flower1','');// eslint-disable-next-line\nexport var BIconFlower2=/*#__PURE__*/makeIcon('Flower2','');// eslint-disable-next-line\nexport var BIconFlower3=/*#__PURE__*/makeIcon('Flower3','');// eslint-disable-next-line\nexport var BIconFolder=/*#__PURE__*/makeIcon('Folder','');// eslint-disable-next-line\nexport var BIconFolder2=/*#__PURE__*/makeIcon('Folder2','');// eslint-disable-next-line\nexport var BIconFolder2Open=/*#__PURE__*/makeIcon('Folder2Open','');// eslint-disable-next-line\nexport var BIconFolderCheck=/*#__PURE__*/makeIcon('FolderCheck','');// eslint-disable-next-line\nexport var BIconFolderFill=/*#__PURE__*/makeIcon('FolderFill','');// eslint-disable-next-line\nexport var BIconFolderMinus=/*#__PURE__*/makeIcon('FolderMinus','');// eslint-disable-next-line\nexport var BIconFolderPlus=/*#__PURE__*/makeIcon('FolderPlus','');// eslint-disable-next-line\nexport var BIconFolderSymlink=/*#__PURE__*/makeIcon('FolderSymlink','');// eslint-disable-next-line\nexport var BIconFolderSymlinkFill=/*#__PURE__*/makeIcon('FolderSymlinkFill','');// eslint-disable-next-line\nexport var BIconFolderX=/*#__PURE__*/makeIcon('FolderX','');// eslint-disable-next-line\nexport var BIconFonts=/*#__PURE__*/makeIcon('Fonts','');// eslint-disable-next-line\nexport var BIconForward=/*#__PURE__*/makeIcon('Forward','');// eslint-disable-next-line\nexport var BIconForwardFill=/*#__PURE__*/makeIcon('ForwardFill','');// eslint-disable-next-line\nexport var BIconFront=/*#__PURE__*/makeIcon('Front','');// eslint-disable-next-line\nexport var BIconFullscreen=/*#__PURE__*/makeIcon('Fullscreen','');// eslint-disable-next-line\nexport var BIconFullscreenExit=/*#__PURE__*/makeIcon('FullscreenExit','');// eslint-disable-next-line\nexport var BIconFunnel=/*#__PURE__*/makeIcon('Funnel','');// eslint-disable-next-line\nexport var BIconFunnelFill=/*#__PURE__*/makeIcon('FunnelFill','');// eslint-disable-next-line\nexport var BIconGear=/*#__PURE__*/makeIcon('Gear','');// eslint-disable-next-line\nexport var BIconGearFill=/*#__PURE__*/makeIcon('GearFill','');// eslint-disable-next-line\nexport var BIconGearWide=/*#__PURE__*/makeIcon('GearWide','');// eslint-disable-next-line\nexport var BIconGearWideConnected=/*#__PURE__*/makeIcon('GearWideConnected','');// eslint-disable-next-line\nexport var BIconGem=/*#__PURE__*/makeIcon('Gem','');// eslint-disable-next-line\nexport var BIconGeo=/*#__PURE__*/makeIcon('Geo','');// eslint-disable-next-line\nexport var BIconGeoAlt=/*#__PURE__*/makeIcon('GeoAlt','');// eslint-disable-next-line\nexport var BIconGeoAltFill=/*#__PURE__*/makeIcon('GeoAltFill','');// eslint-disable-next-line\nexport var BIconGeoFill=/*#__PURE__*/makeIcon('GeoFill','');// eslint-disable-next-line\nexport var BIconGift=/*#__PURE__*/makeIcon('Gift','');// eslint-disable-next-line\nexport var BIconGiftFill=/*#__PURE__*/makeIcon('GiftFill','');// eslint-disable-next-line\nexport var BIconGithub=/*#__PURE__*/makeIcon('Github','');// eslint-disable-next-line\nexport var BIconGlobe=/*#__PURE__*/makeIcon('Globe','');// eslint-disable-next-line\nexport var BIconGlobe2=/*#__PURE__*/makeIcon('Globe2','');// eslint-disable-next-line\nexport var BIconGoogle=/*#__PURE__*/makeIcon('Google','');// eslint-disable-next-line\nexport var BIconGraphDown=/*#__PURE__*/makeIcon('GraphDown','');// eslint-disable-next-line\nexport var BIconGraphUp=/*#__PURE__*/makeIcon('GraphUp','');// eslint-disable-next-line\nexport var BIconGrid=/*#__PURE__*/makeIcon('Grid','');// eslint-disable-next-line\nexport var BIconGrid1x2=/*#__PURE__*/makeIcon('Grid1x2','');// eslint-disable-next-line\nexport var BIconGrid1x2Fill=/*#__PURE__*/makeIcon('Grid1x2Fill','');// eslint-disable-next-line\nexport var BIconGrid3x2=/*#__PURE__*/makeIcon('Grid3x2','');// eslint-disable-next-line\nexport var BIconGrid3x2Gap=/*#__PURE__*/makeIcon('Grid3x2Gap','');// eslint-disable-next-line\nexport var BIconGrid3x2GapFill=/*#__PURE__*/makeIcon('Grid3x2GapFill','');// eslint-disable-next-line\nexport var BIconGrid3x3=/*#__PURE__*/makeIcon('Grid3x3','');// eslint-disable-next-line\nexport var BIconGrid3x3Gap=/*#__PURE__*/makeIcon('Grid3x3Gap','');// eslint-disable-next-line\nexport var BIconGrid3x3GapFill=/*#__PURE__*/makeIcon('Grid3x3GapFill','');// eslint-disable-next-line\nexport var BIconGridFill=/*#__PURE__*/makeIcon('GridFill','');// eslint-disable-next-line\nexport var BIconGripHorizontal=/*#__PURE__*/makeIcon('GripHorizontal','');// eslint-disable-next-line\nexport var BIconGripVertical=/*#__PURE__*/makeIcon('GripVertical','');// eslint-disable-next-line\nexport var BIconHammer=/*#__PURE__*/makeIcon('Hammer','');// eslint-disable-next-line\nexport var BIconHandIndex=/*#__PURE__*/makeIcon('HandIndex','');// eslint-disable-next-line\nexport var BIconHandIndexThumb=/*#__PURE__*/makeIcon('HandIndexThumb','');// eslint-disable-next-line\nexport var BIconHandThumbsDown=/*#__PURE__*/makeIcon('HandThumbsDown','');// eslint-disable-next-line\nexport var BIconHandThumbsUp=/*#__PURE__*/makeIcon('HandThumbsUp','');// eslint-disable-next-line\nexport var BIconHandbag=/*#__PURE__*/makeIcon('Handbag','');// eslint-disable-next-line\nexport var BIconHandbagFill=/*#__PURE__*/makeIcon('HandbagFill','');// eslint-disable-next-line\nexport var BIconHash=/*#__PURE__*/makeIcon('Hash','');// eslint-disable-next-line\nexport var BIconHdd=/*#__PURE__*/makeIcon('Hdd','');// eslint-disable-next-line\nexport var BIconHddFill=/*#__PURE__*/makeIcon('HddFill','');// eslint-disable-next-line\nexport var BIconHddNetwork=/*#__PURE__*/makeIcon('HddNetwork','');// eslint-disable-next-line\nexport var BIconHddNetworkFill=/*#__PURE__*/makeIcon('HddNetworkFill','');// eslint-disable-next-line\nexport var BIconHddRack=/*#__PURE__*/makeIcon('HddRack','');// eslint-disable-next-line\nexport var BIconHddRackFill=/*#__PURE__*/makeIcon('HddRackFill','');// eslint-disable-next-line\nexport var BIconHddStack=/*#__PURE__*/makeIcon('HddStack','');// eslint-disable-next-line\nexport var BIconHddStackFill=/*#__PURE__*/makeIcon('HddStackFill','');// eslint-disable-next-line\nexport var BIconHeadphones=/*#__PURE__*/makeIcon('Headphones','');// eslint-disable-next-line\nexport var BIconHeadset=/*#__PURE__*/makeIcon('Headset','');// eslint-disable-next-line\nexport var BIconHeart=/*#__PURE__*/makeIcon('Heart','');// eslint-disable-next-line\nexport var BIconHeartFill=/*#__PURE__*/makeIcon('HeartFill','');// eslint-disable-next-line\nexport var BIconHeartHalf=/*#__PURE__*/makeIcon('HeartHalf','');// eslint-disable-next-line\nexport var BIconHeptagon=/*#__PURE__*/makeIcon('Heptagon','');// eslint-disable-next-line\nexport var BIconHeptagonFill=/*#__PURE__*/makeIcon('HeptagonFill','');// eslint-disable-next-line\nexport var BIconHeptagonHalf=/*#__PURE__*/makeIcon('HeptagonHalf','');// eslint-disable-next-line\nexport var BIconHexagon=/*#__PURE__*/makeIcon('Hexagon','');// eslint-disable-next-line\nexport var BIconHexagonFill=/*#__PURE__*/makeIcon('HexagonFill','');// eslint-disable-next-line\nexport var BIconHexagonHalf=/*#__PURE__*/makeIcon('HexagonHalf','');// eslint-disable-next-line\nexport var BIconHourglass=/*#__PURE__*/makeIcon('Hourglass','');// eslint-disable-next-line\nexport var BIconHourglassBottom=/*#__PURE__*/makeIcon('HourglassBottom','');// eslint-disable-next-line\nexport var BIconHourglassSplit=/*#__PURE__*/makeIcon('HourglassSplit','');// eslint-disable-next-line\nexport var BIconHourglassTop=/*#__PURE__*/makeIcon('HourglassTop','');// eslint-disable-next-line\nexport var BIconHouse=/*#__PURE__*/makeIcon('House','');// eslint-disable-next-line\nexport var BIconHouseDoor=/*#__PURE__*/makeIcon('HouseDoor','');// eslint-disable-next-line\nexport var BIconHouseDoorFill=/*#__PURE__*/makeIcon('HouseDoorFill','');// eslint-disable-next-line\nexport var BIconHouseFill=/*#__PURE__*/makeIcon('HouseFill','');// eslint-disable-next-line\nexport var BIconHr=/*#__PURE__*/makeIcon('Hr','');// eslint-disable-next-line\nexport var BIconImage=/*#__PURE__*/makeIcon('Image','');// eslint-disable-next-line\nexport var BIconImageAlt=/*#__PURE__*/makeIcon('ImageAlt','');// eslint-disable-next-line\nexport var BIconImageFill=/*#__PURE__*/makeIcon('ImageFill','');// eslint-disable-next-line\nexport var BIconImages=/*#__PURE__*/makeIcon('Images','');// eslint-disable-next-line\nexport var BIconInbox=/*#__PURE__*/makeIcon('Inbox','');// eslint-disable-next-line\nexport var BIconInboxFill=/*#__PURE__*/makeIcon('InboxFill','');// eslint-disable-next-line\nexport var BIconInboxes=/*#__PURE__*/makeIcon('Inboxes','');// eslint-disable-next-line\nexport var BIconInboxesFill=/*#__PURE__*/makeIcon('InboxesFill','');// eslint-disable-next-line\nexport var BIconInfo=/*#__PURE__*/makeIcon('Info','');// eslint-disable-next-line\nexport var BIconInfoCircle=/*#__PURE__*/makeIcon('InfoCircle','');// eslint-disable-next-line\nexport var BIconInfoCircleFill=/*#__PURE__*/makeIcon('InfoCircleFill','');// eslint-disable-next-line\nexport var BIconInfoSquare=/*#__PURE__*/makeIcon('InfoSquare','');// eslint-disable-next-line\nexport var BIconInfoSquareFill=/*#__PURE__*/makeIcon('InfoSquareFill','');// eslint-disable-next-line\nexport var BIconInputCursor=/*#__PURE__*/makeIcon('InputCursor','');// eslint-disable-next-line\nexport var BIconInputCursorText=/*#__PURE__*/makeIcon('InputCursorText','');// eslint-disable-next-line\nexport var BIconInstagram=/*#__PURE__*/makeIcon('Instagram','');// eslint-disable-next-line\nexport var BIconIntersect=/*#__PURE__*/makeIcon('Intersect','');// eslint-disable-next-line\nexport var BIconJournal=/*#__PURE__*/makeIcon('Journal','');// eslint-disable-next-line\nexport var BIconJournalAlbum=/*#__PURE__*/makeIcon('JournalAlbum','');// eslint-disable-next-line\nexport var BIconJournalArrowDown=/*#__PURE__*/makeIcon('JournalArrowDown','');// eslint-disable-next-line\nexport var BIconJournalArrowUp=/*#__PURE__*/makeIcon('JournalArrowUp','');// eslint-disable-next-line\nexport var BIconJournalBookmark=/*#__PURE__*/makeIcon('JournalBookmark','');// eslint-disable-next-line\nexport var BIconJournalBookmarkFill=/*#__PURE__*/makeIcon('JournalBookmarkFill','');// eslint-disable-next-line\nexport var BIconJournalCheck=/*#__PURE__*/makeIcon('JournalCheck','');// eslint-disable-next-line\nexport var BIconJournalCode=/*#__PURE__*/makeIcon('JournalCode','');// eslint-disable-next-line\nexport var BIconJournalMedical=/*#__PURE__*/makeIcon('JournalMedical','');// eslint-disable-next-line\nexport var BIconJournalMinus=/*#__PURE__*/makeIcon('JournalMinus','');// eslint-disable-next-line\nexport var BIconJournalPlus=/*#__PURE__*/makeIcon('JournalPlus','');// eslint-disable-next-line\nexport var BIconJournalRichtext=/*#__PURE__*/makeIcon('JournalRichtext','');// eslint-disable-next-line\nexport var BIconJournalText=/*#__PURE__*/makeIcon('JournalText','');// eslint-disable-next-line\nexport var BIconJournalX=/*#__PURE__*/makeIcon('JournalX','');// eslint-disable-next-line\nexport var BIconJournals=/*#__PURE__*/makeIcon('Journals','');// eslint-disable-next-line\nexport var BIconJoystick=/*#__PURE__*/makeIcon('Joystick','');// eslint-disable-next-line\nexport var BIconJustify=/*#__PURE__*/makeIcon('Justify','');// eslint-disable-next-line\nexport var BIconJustifyLeft=/*#__PURE__*/makeIcon('JustifyLeft','');// eslint-disable-next-line\nexport var BIconJustifyRight=/*#__PURE__*/makeIcon('JustifyRight','');// eslint-disable-next-line\nexport var BIconKanban=/*#__PURE__*/makeIcon('Kanban','');// eslint-disable-next-line\nexport var BIconKanbanFill=/*#__PURE__*/makeIcon('KanbanFill','');// eslint-disable-next-line\nexport var BIconKey=/*#__PURE__*/makeIcon('Key','');// eslint-disable-next-line\nexport var BIconKeyFill=/*#__PURE__*/makeIcon('KeyFill','');// eslint-disable-next-line\nexport var BIconKeyboard=/*#__PURE__*/makeIcon('Keyboard','');// eslint-disable-next-line\nexport var BIconKeyboardFill=/*#__PURE__*/makeIcon('KeyboardFill','');// eslint-disable-next-line\nexport var BIconLadder=/*#__PURE__*/makeIcon('Ladder','');// eslint-disable-next-line\nexport var BIconLamp=/*#__PURE__*/makeIcon('Lamp','');// eslint-disable-next-line\nexport var BIconLampFill=/*#__PURE__*/makeIcon('LampFill','');// eslint-disable-next-line\nexport var BIconLaptop=/*#__PURE__*/makeIcon('Laptop','');// eslint-disable-next-line\nexport var BIconLaptopFill=/*#__PURE__*/makeIcon('LaptopFill','');// eslint-disable-next-line\nexport var BIconLayers=/*#__PURE__*/makeIcon('Layers','');// eslint-disable-next-line\nexport var BIconLayersFill=/*#__PURE__*/makeIcon('LayersFill','');// eslint-disable-next-line\nexport var BIconLayersHalf=/*#__PURE__*/makeIcon('LayersHalf','');// eslint-disable-next-line\nexport var BIconLayoutSidebar=/*#__PURE__*/makeIcon('LayoutSidebar','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInset=/*#__PURE__*/makeIcon('LayoutSidebarInset','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInsetReverse=/*#__PURE__*/makeIcon('LayoutSidebarInsetReverse','');// eslint-disable-next-line\nexport var BIconLayoutSidebarReverse=/*#__PURE__*/makeIcon('LayoutSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutSplit=/*#__PURE__*/makeIcon('LayoutSplit','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebar=/*#__PURE__*/makeIcon('LayoutTextSidebar','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebarReverse=/*#__PURE__*/makeIcon('LayoutTextSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutTextWindow=/*#__PURE__*/makeIcon('LayoutTextWindow','');// eslint-disable-next-line\nexport var BIconLayoutTextWindowReverse=/*#__PURE__*/makeIcon('LayoutTextWindowReverse','');// eslint-disable-next-line\nexport var BIconLayoutThreeColumns=/*#__PURE__*/makeIcon('LayoutThreeColumns','');// eslint-disable-next-line\nexport var BIconLayoutWtf=/*#__PURE__*/makeIcon('LayoutWtf','');// eslint-disable-next-line\nexport var BIconLifePreserver=/*#__PURE__*/makeIcon('LifePreserver','');// eslint-disable-next-line\nexport var BIconLightning=/*#__PURE__*/makeIcon('Lightning','');// eslint-disable-next-line\nexport var BIconLightningFill=/*#__PURE__*/makeIcon('LightningFill','');// eslint-disable-next-line\nexport var BIconLink=/*#__PURE__*/makeIcon('Link','');// eslint-disable-next-line\nexport var BIconLink45deg=/*#__PURE__*/makeIcon('Link45deg','');// eslint-disable-next-line\nexport var BIconLinkedin=/*#__PURE__*/makeIcon('Linkedin','');// eslint-disable-next-line\nexport var BIconList=/*#__PURE__*/makeIcon('List','');// eslint-disable-next-line\nexport var BIconListCheck=/*#__PURE__*/makeIcon('ListCheck','');// eslint-disable-next-line\nexport var BIconListNested=/*#__PURE__*/makeIcon('ListNested','');// eslint-disable-next-line\nexport var BIconListOl=/*#__PURE__*/makeIcon('ListOl','');// eslint-disable-next-line\nexport var BIconListStars=/*#__PURE__*/makeIcon('ListStars','');// eslint-disable-next-line\nexport var BIconListTask=/*#__PURE__*/makeIcon('ListTask','');// eslint-disable-next-line\nexport var BIconListUl=/*#__PURE__*/makeIcon('ListUl','');// eslint-disable-next-line\nexport var BIconLock=/*#__PURE__*/makeIcon('Lock','');// eslint-disable-next-line\nexport var BIconLockFill=/*#__PURE__*/makeIcon('LockFill','');// eslint-disable-next-line\nexport var BIconMailbox=/*#__PURE__*/makeIcon('Mailbox','');// eslint-disable-next-line\nexport var BIconMailbox2=/*#__PURE__*/makeIcon('Mailbox2','');// eslint-disable-next-line\nexport var BIconMap=/*#__PURE__*/makeIcon('Map','');// eslint-disable-next-line\nexport var BIconMapFill=/*#__PURE__*/makeIcon('MapFill','');// eslint-disable-next-line\nexport var BIconMarkdown=/*#__PURE__*/makeIcon('Markdown','');// eslint-disable-next-line\nexport var BIconMarkdownFill=/*#__PURE__*/makeIcon('MarkdownFill','');// eslint-disable-next-line\nexport var BIconMenuApp=/*#__PURE__*/makeIcon('MenuApp','');// eslint-disable-next-line\nexport var BIconMenuAppFill=/*#__PURE__*/makeIcon('MenuAppFill','');// eslint-disable-next-line\nexport var BIconMenuButton=/*#__PURE__*/makeIcon('MenuButton','');// eslint-disable-next-line\nexport var BIconMenuButtonFill=/*#__PURE__*/makeIcon('MenuButtonFill','');// eslint-disable-next-line\nexport var BIconMenuButtonWide=/*#__PURE__*/makeIcon('MenuButtonWide','');// eslint-disable-next-line\nexport var BIconMenuButtonWideFill=/*#__PURE__*/makeIcon('MenuButtonWideFill','');// eslint-disable-next-line\nexport var BIconMenuDown=/*#__PURE__*/makeIcon('MenuDown','');// eslint-disable-next-line\nexport var BIconMenuUp=/*#__PURE__*/makeIcon('MenuUp','');// eslint-disable-next-line\nexport var BIconMic=/*#__PURE__*/makeIcon('Mic','');// eslint-disable-next-line\nexport var BIconMicFill=/*#__PURE__*/makeIcon('MicFill','');// eslint-disable-next-line\nexport var BIconMicMute=/*#__PURE__*/makeIcon('MicMute','');// eslint-disable-next-line\nexport var BIconMicMuteFill=/*#__PURE__*/makeIcon('MicMuteFill','');// eslint-disable-next-line\nexport var BIconMinecart=/*#__PURE__*/makeIcon('Minecart','');// eslint-disable-next-line\nexport var BIconMinecartLoaded=/*#__PURE__*/makeIcon('MinecartLoaded','');// eslint-disable-next-line\nexport var BIconMoon=/*#__PURE__*/makeIcon('Moon','');// eslint-disable-next-line\nexport var BIconMouse=/*#__PURE__*/makeIcon('Mouse','');// eslint-disable-next-line\nexport var BIconMouse2=/*#__PURE__*/makeIcon('Mouse2','');// eslint-disable-next-line\nexport var BIconMouse3=/*#__PURE__*/makeIcon('Mouse3','');// eslint-disable-next-line\nexport var BIconMusicNote=/*#__PURE__*/makeIcon('MusicNote','');// eslint-disable-next-line\nexport var BIconMusicNoteBeamed=/*#__PURE__*/makeIcon('MusicNoteBeamed','');// eslint-disable-next-line\nexport var BIconMusicNoteList=/*#__PURE__*/makeIcon('MusicNoteList','');// eslint-disable-next-line\nexport var BIconMusicPlayer=/*#__PURE__*/makeIcon('MusicPlayer','');// eslint-disable-next-line\nexport var BIconMusicPlayerFill=/*#__PURE__*/makeIcon('MusicPlayerFill','');// eslint-disable-next-line\nexport var BIconNewspaper=/*#__PURE__*/makeIcon('Newspaper','');// eslint-disable-next-line\nexport var BIconNodeMinus=/*#__PURE__*/makeIcon('NodeMinus','');// eslint-disable-next-line\nexport var BIconNodeMinusFill=/*#__PURE__*/makeIcon('NodeMinusFill','');// eslint-disable-next-line\nexport var BIconNodePlus=/*#__PURE__*/makeIcon('NodePlus','');// eslint-disable-next-line\nexport var BIconNodePlusFill=/*#__PURE__*/makeIcon('NodePlusFill','');// eslint-disable-next-line\nexport var BIconNut=/*#__PURE__*/makeIcon('Nut','');// eslint-disable-next-line\nexport var BIconNutFill=/*#__PURE__*/makeIcon('NutFill','');// eslint-disable-next-line\nexport var BIconOctagon=/*#__PURE__*/makeIcon('Octagon','');// eslint-disable-next-line\nexport var BIconOctagonFill=/*#__PURE__*/makeIcon('OctagonFill','');// eslint-disable-next-line\nexport var BIconOctagonHalf=/*#__PURE__*/makeIcon('OctagonHalf','');// eslint-disable-next-line\nexport var BIconOption=/*#__PURE__*/makeIcon('Option','');// eslint-disable-next-line\nexport var BIconOutlet=/*#__PURE__*/makeIcon('Outlet','');// eslint-disable-next-line\nexport var BIconPaperclip=/*#__PURE__*/makeIcon('Paperclip','');// eslint-disable-next-line\nexport var BIconParagraph=/*#__PURE__*/makeIcon('Paragraph','');// eslint-disable-next-line\nexport var BIconPatchCheck=/*#__PURE__*/makeIcon('PatchCheck','');// eslint-disable-next-line\nexport var BIconPatchCheckFll=/*#__PURE__*/makeIcon('PatchCheckFll','');// eslint-disable-next-line\nexport var BIconPatchExclamation=/*#__PURE__*/makeIcon('PatchExclamation','');// eslint-disable-next-line\nexport var BIconPatchExclamationFll=/*#__PURE__*/makeIcon('PatchExclamationFll','');// eslint-disable-next-line\nexport var BIconPatchMinus=/*#__PURE__*/makeIcon('PatchMinus','');// eslint-disable-next-line\nexport var BIconPatchMinusFll=/*#__PURE__*/makeIcon('PatchMinusFll','');// eslint-disable-next-line\nexport var BIconPatchPlus=/*#__PURE__*/makeIcon('PatchPlus','');// eslint-disable-next-line\nexport var BIconPatchPlusFll=/*#__PURE__*/makeIcon('PatchPlusFll','');// eslint-disable-next-line\nexport var BIconPatchQuestion=/*#__PURE__*/makeIcon('PatchQuestion','');// eslint-disable-next-line\nexport var BIconPatchQuestionFll=/*#__PURE__*/makeIcon('PatchQuestionFll','');// eslint-disable-next-line\nexport var BIconPause=/*#__PURE__*/makeIcon('Pause','');// eslint-disable-next-line\nexport var BIconPauseBtn=/*#__PURE__*/makeIcon('PauseBtn','');// eslint-disable-next-line\nexport var BIconPauseBtnFill=/*#__PURE__*/makeIcon('PauseBtnFill','');// eslint-disable-next-line\nexport var BIconPauseCircle=/*#__PURE__*/makeIcon('PauseCircle','');// eslint-disable-next-line\nexport var BIconPauseCircleFill=/*#__PURE__*/makeIcon('PauseCircleFill','');// eslint-disable-next-line\nexport var BIconPauseFill=/*#__PURE__*/makeIcon('PauseFill','');// eslint-disable-next-line\nexport var BIconPeace=/*#__PURE__*/makeIcon('Peace','');// eslint-disable-next-line\nexport var BIconPeaceFill=/*#__PURE__*/makeIcon('PeaceFill','');// eslint-disable-next-line\nexport var BIconPen=/*#__PURE__*/makeIcon('Pen','');// eslint-disable-next-line\nexport var BIconPenFill=/*#__PURE__*/makeIcon('PenFill','');// eslint-disable-next-line\nexport var BIconPencil=/*#__PURE__*/makeIcon('Pencil','');// eslint-disable-next-line\nexport var BIconPencilFill=/*#__PURE__*/makeIcon('PencilFill','');// eslint-disable-next-line\nexport var BIconPencilSquare=/*#__PURE__*/makeIcon('PencilSquare','');// eslint-disable-next-line\nexport var BIconPentagon=/*#__PURE__*/makeIcon('Pentagon','');// eslint-disable-next-line\nexport var BIconPentagonFill=/*#__PURE__*/makeIcon('PentagonFill','');// eslint-disable-next-line\nexport var BIconPentagonHalf=/*#__PURE__*/makeIcon('PentagonHalf','');// eslint-disable-next-line\nexport var BIconPeople=/*#__PURE__*/makeIcon('People','');// eslint-disable-next-line\nexport var BIconPeopleFill=/*#__PURE__*/makeIcon('PeopleFill','');// eslint-disable-next-line\nexport var BIconPercent=/*#__PURE__*/makeIcon('Percent','');// eslint-disable-next-line\nexport var BIconPerson=/*#__PURE__*/makeIcon('Person','');// eslint-disable-next-line\nexport var BIconPersonBadge=/*#__PURE__*/makeIcon('PersonBadge','');// eslint-disable-next-line\nexport var BIconPersonBadgeFill=/*#__PURE__*/makeIcon('PersonBadgeFill','');// eslint-disable-next-line\nexport var BIconPersonBoundingBox=/*#__PURE__*/makeIcon('PersonBoundingBox','');// eslint-disable-next-line\nexport var BIconPersonCheck=/*#__PURE__*/makeIcon('PersonCheck','');// eslint-disable-next-line\nexport var BIconPersonCheckFill=/*#__PURE__*/makeIcon('PersonCheckFill','');// eslint-disable-next-line\nexport var BIconPersonCircle=/*#__PURE__*/makeIcon('PersonCircle','');// eslint-disable-next-line\nexport var BIconPersonDash=/*#__PURE__*/makeIcon('PersonDash','');// eslint-disable-next-line\nexport var BIconPersonDashFill=/*#__PURE__*/makeIcon('PersonDashFill','');// eslint-disable-next-line\nexport var BIconPersonFill=/*#__PURE__*/makeIcon('PersonFill','');// eslint-disable-next-line\nexport var BIconPersonLinesFill=/*#__PURE__*/makeIcon('PersonLinesFill','');// eslint-disable-next-line\nexport var BIconPersonPlus=/*#__PURE__*/makeIcon('PersonPlus','');// eslint-disable-next-line\nexport var BIconPersonPlusFill=/*#__PURE__*/makeIcon('PersonPlusFill','');// eslint-disable-next-line\nexport var BIconPersonSquare=/*#__PURE__*/makeIcon('PersonSquare','');// eslint-disable-next-line\nexport var BIconPersonX=/*#__PURE__*/makeIcon('PersonX','');// eslint-disable-next-line\nexport var BIconPersonXFill=/*#__PURE__*/makeIcon('PersonXFill','');// eslint-disable-next-line\nexport var BIconPhone=/*#__PURE__*/makeIcon('Phone','');// eslint-disable-next-line\nexport var BIconPhoneFill=/*#__PURE__*/makeIcon('PhoneFill','');// eslint-disable-next-line\nexport var BIconPhoneLandscape=/*#__PURE__*/makeIcon('PhoneLandscape','');// eslint-disable-next-line\nexport var BIconPhoneLandscapeFill=/*#__PURE__*/makeIcon('PhoneLandscapeFill','');// eslint-disable-next-line\nexport var BIconPhoneVibrate=/*#__PURE__*/makeIcon('PhoneVibrate','');// eslint-disable-next-line\nexport var BIconPieChart=/*#__PURE__*/makeIcon('PieChart','');// eslint-disable-next-line\nexport var BIconPieChartFill=/*#__PURE__*/makeIcon('PieChartFill','');// eslint-disable-next-line\nexport var BIconPip=/*#__PURE__*/makeIcon('Pip','');// eslint-disable-next-line\nexport var BIconPipFill=/*#__PURE__*/makeIcon('PipFill','');// eslint-disable-next-line\nexport var BIconPlay=/*#__PURE__*/makeIcon('Play','');// eslint-disable-next-line\nexport var BIconPlayBtn=/*#__PURE__*/makeIcon('PlayBtn','');// eslint-disable-next-line\nexport var BIconPlayBtnFill=/*#__PURE__*/makeIcon('PlayBtnFill','');// eslint-disable-next-line\nexport var BIconPlayCircle=/*#__PURE__*/makeIcon('PlayCircle','');// eslint-disable-next-line\nexport var BIconPlayCircleFill=/*#__PURE__*/makeIcon('PlayCircleFill','');// eslint-disable-next-line\nexport var BIconPlayFill=/*#__PURE__*/makeIcon('PlayFill','');// eslint-disable-next-line\nexport var BIconPlug=/*#__PURE__*/makeIcon('Plug','');// eslint-disable-next-line\nexport var BIconPlugFill=/*#__PURE__*/makeIcon('PlugFill','');// eslint-disable-next-line\nexport var BIconPlus=/*#__PURE__*/makeIcon('Plus','');// eslint-disable-next-line\nexport var BIconPlusCircle=/*#__PURE__*/makeIcon('PlusCircle','');// eslint-disable-next-line\nexport var BIconPlusCircleFill=/*#__PURE__*/makeIcon('PlusCircleFill','');// eslint-disable-next-line\nexport var BIconPlusSquare=/*#__PURE__*/makeIcon('PlusSquare','');// eslint-disable-next-line\nexport var BIconPlusSquareFill=/*#__PURE__*/makeIcon('PlusSquareFill','');// eslint-disable-next-line\nexport var BIconPower=/*#__PURE__*/makeIcon('Power','');// eslint-disable-next-line\nexport var BIconPrinter=/*#__PURE__*/makeIcon('Printer','');// eslint-disable-next-line\nexport var BIconPrinterFill=/*#__PURE__*/makeIcon('PrinterFill','');// eslint-disable-next-line\nexport var BIconPuzzle=/*#__PURE__*/makeIcon('Puzzle','');// eslint-disable-next-line\nexport var BIconPuzzleFill=/*#__PURE__*/makeIcon('PuzzleFill','');// eslint-disable-next-line\nexport var BIconQuestion=/*#__PURE__*/makeIcon('Question','');// eslint-disable-next-line\nexport var BIconQuestionCircle=/*#__PURE__*/makeIcon('QuestionCircle','');// eslint-disable-next-line\nexport var BIconQuestionCircleFill=/*#__PURE__*/makeIcon('QuestionCircleFill','');// eslint-disable-next-line\nexport var BIconQuestionDiamond=/*#__PURE__*/makeIcon('QuestionDiamond','');// eslint-disable-next-line\nexport var BIconQuestionDiamondFill=/*#__PURE__*/makeIcon('QuestionDiamondFill','');// eslint-disable-next-line\nexport var BIconQuestionOctagon=/*#__PURE__*/makeIcon('QuestionOctagon','');// eslint-disable-next-line\nexport var BIconQuestionOctagonFill=/*#__PURE__*/makeIcon('QuestionOctagonFill','');// eslint-disable-next-line\nexport var BIconQuestionSquare=/*#__PURE__*/makeIcon('QuestionSquare','');// eslint-disable-next-line\nexport var BIconQuestionSquareFill=/*#__PURE__*/makeIcon('QuestionSquareFill','');// eslint-disable-next-line\nexport var BIconReceipt=/*#__PURE__*/makeIcon('Receipt','');// eslint-disable-next-line\nexport var BIconReceiptCutoff=/*#__PURE__*/makeIcon('ReceiptCutoff','');// eslint-disable-next-line\nexport var BIconReception0=/*#__PURE__*/makeIcon('Reception0','');// eslint-disable-next-line\nexport var BIconReception1=/*#__PURE__*/makeIcon('Reception1','');// eslint-disable-next-line\nexport var BIconReception2=/*#__PURE__*/makeIcon('Reception2','');// eslint-disable-next-line\nexport var BIconReception3=/*#__PURE__*/makeIcon('Reception3','');// eslint-disable-next-line\nexport var BIconReception4=/*#__PURE__*/makeIcon('Reception4','');// eslint-disable-next-line\nexport var BIconRecord=/*#__PURE__*/makeIcon('Record','');// eslint-disable-next-line\nexport var BIconRecord2=/*#__PURE__*/makeIcon('Record2','');// eslint-disable-next-line\nexport var BIconRecord2Fill=/*#__PURE__*/makeIcon('Record2Fill','');// eslint-disable-next-line\nexport var BIconRecordBtn=/*#__PURE__*/makeIcon('RecordBtn','');// eslint-disable-next-line\nexport var BIconRecordBtnFill=/*#__PURE__*/makeIcon('RecordBtnFill','');// eslint-disable-next-line\nexport var BIconRecordCircle=/*#__PURE__*/makeIcon('RecordCircle','');// eslint-disable-next-line\nexport var BIconRecordCircleFill=/*#__PURE__*/makeIcon('RecordCircleFill','');// eslint-disable-next-line\nexport var BIconRecordFill=/*#__PURE__*/makeIcon('RecordFill','');// eslint-disable-next-line\nexport var BIconReply=/*#__PURE__*/makeIcon('Reply','');// eslint-disable-next-line\nexport var BIconReplyAll=/*#__PURE__*/makeIcon('ReplyAll','');// eslint-disable-next-line\nexport var BIconReplyAllFill=/*#__PURE__*/makeIcon('ReplyAllFill','');// eslint-disable-next-line\nexport var BIconReplyFill=/*#__PURE__*/makeIcon('ReplyFill','');// eslint-disable-next-line\nexport var BIconRss=/*#__PURE__*/makeIcon('Rss','');// eslint-disable-next-line\nexport var BIconRssFill=/*#__PURE__*/makeIcon('RssFill','');// eslint-disable-next-line\nexport var BIconScissors=/*#__PURE__*/makeIcon('Scissors','');// eslint-disable-next-line\nexport var BIconScrewdriver=/*#__PURE__*/makeIcon('Screwdriver','');// eslint-disable-next-line\nexport var BIconSearch=/*#__PURE__*/makeIcon('Search','');// eslint-disable-next-line\nexport var BIconSegmentedNav=/*#__PURE__*/makeIcon('SegmentedNav','');// eslint-disable-next-line\nexport var BIconServer=/*#__PURE__*/makeIcon('Server','');// eslint-disable-next-line\nexport var BIconShare=/*#__PURE__*/makeIcon('Share','');// eslint-disable-next-line\nexport var BIconShareFill=/*#__PURE__*/makeIcon('ShareFill','');// eslint-disable-next-line\nexport var BIconShield=/*#__PURE__*/makeIcon('Shield','');// eslint-disable-next-line\nexport var BIconShieldCheck=/*#__PURE__*/makeIcon('ShieldCheck','');// eslint-disable-next-line\nexport var BIconShieldExclamation=/*#__PURE__*/makeIcon('ShieldExclamation','');// eslint-disable-next-line\nexport var BIconShieldFill=/*#__PURE__*/makeIcon('ShieldFill','');// eslint-disable-next-line\nexport var BIconShieldFillCheck=/*#__PURE__*/makeIcon('ShieldFillCheck','');// eslint-disable-next-line\nexport var BIconShieldFillExclamation=/*#__PURE__*/makeIcon('ShieldFillExclamation','');// eslint-disable-next-line\nexport var BIconShieldFillMinus=/*#__PURE__*/makeIcon('ShieldFillMinus','');// eslint-disable-next-line\nexport var BIconShieldFillPlus=/*#__PURE__*/makeIcon('ShieldFillPlus','');// eslint-disable-next-line\nexport var BIconShieldFillX=/*#__PURE__*/makeIcon('ShieldFillX','');// eslint-disable-next-line\nexport var BIconShieldLock=/*#__PURE__*/makeIcon('ShieldLock','');// eslint-disable-next-line\nexport var BIconShieldLockFill=/*#__PURE__*/makeIcon('ShieldLockFill','');// eslint-disable-next-line\nexport var BIconShieldMinus=/*#__PURE__*/makeIcon('ShieldMinus','');// eslint-disable-next-line\nexport var BIconShieldPlus=/*#__PURE__*/makeIcon('ShieldPlus','');// eslint-disable-next-line\nexport var BIconShieldShaded=/*#__PURE__*/makeIcon('ShieldShaded','');// eslint-disable-next-line\nexport var BIconShieldSlash=/*#__PURE__*/makeIcon('ShieldSlash','');// eslint-disable-next-line\nexport var BIconShieldSlashFill=/*#__PURE__*/makeIcon('ShieldSlashFill','');// eslint-disable-next-line\nexport var BIconShieldX=/*#__PURE__*/makeIcon('ShieldX','');// eslint-disable-next-line\nexport var BIconShift=/*#__PURE__*/makeIcon('Shift','');// eslint-disable-next-line\nexport var BIconShiftFill=/*#__PURE__*/makeIcon('ShiftFill','');// eslint-disable-next-line\nexport var BIconShop=/*#__PURE__*/makeIcon('Shop','');// eslint-disable-next-line\nexport var BIconShopWindow=/*#__PURE__*/makeIcon('ShopWindow','');// eslint-disable-next-line\nexport var BIconShuffle=/*#__PURE__*/makeIcon('Shuffle','');// eslint-disable-next-line\nexport var BIconSignpost=/*#__PURE__*/makeIcon('Signpost','');// eslint-disable-next-line\nexport var BIconSignpost2=/*#__PURE__*/makeIcon('Signpost2','');// eslint-disable-next-line\nexport var BIconSignpost2Fill=/*#__PURE__*/makeIcon('Signpost2Fill','');// eslint-disable-next-line\nexport var BIconSignpostFill=/*#__PURE__*/makeIcon('SignpostFill','');// eslint-disable-next-line\nexport var BIconSignpostSplit=/*#__PURE__*/makeIcon('SignpostSplit','');// eslint-disable-next-line\nexport var BIconSignpostSplitFill=/*#__PURE__*/makeIcon('SignpostSplitFill','');// eslint-disable-next-line\nexport var BIconSim=/*#__PURE__*/makeIcon('Sim','');// eslint-disable-next-line\nexport var BIconSimFill=/*#__PURE__*/makeIcon('SimFill','');// eslint-disable-next-line\nexport var BIconSkipBackward=/*#__PURE__*/makeIcon('SkipBackward','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtn=/*#__PURE__*/makeIcon('SkipBackwardBtn','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtnFill=/*#__PURE__*/makeIcon('SkipBackwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircle=/*#__PURE__*/makeIcon('SkipBackwardCircle','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircleFill=/*#__PURE__*/makeIcon('SkipBackwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardFill=/*#__PURE__*/makeIcon('SkipBackwardFill','');// eslint-disable-next-line\nexport var BIconSkipEnd=/*#__PURE__*/makeIcon('SkipEnd','');// eslint-disable-next-line\nexport var BIconSkipEndBtn=/*#__PURE__*/makeIcon('SkipEndBtn','');// eslint-disable-next-line\nexport var BIconSkipEndBtnFill=/*#__PURE__*/makeIcon('SkipEndBtnFill','');// eslint-disable-next-line\nexport var BIconSkipEndCircle=/*#__PURE__*/makeIcon('SkipEndCircle','');// eslint-disable-next-line\nexport var BIconSkipEndCircleFill=/*#__PURE__*/makeIcon('SkipEndCircleFill','');// eslint-disable-next-line\nexport var BIconSkipEndFill=/*#__PURE__*/makeIcon('SkipEndFill','');// eslint-disable-next-line\nexport var BIconSkipForward=/*#__PURE__*/makeIcon('SkipForward','');// eslint-disable-next-line\nexport var BIconSkipForwardBtn=/*#__PURE__*/makeIcon('SkipForwardBtn','');// eslint-disable-next-line\nexport var BIconSkipForwardBtnFill=/*#__PURE__*/makeIcon('SkipForwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipForwardCircle=/*#__PURE__*/makeIcon('SkipForwardCircle','');// eslint-disable-next-line\nexport var BIconSkipForwardCircleFill=/*#__PURE__*/makeIcon('SkipForwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipForwardFill=/*#__PURE__*/makeIcon('SkipForwardFill','');// eslint-disable-next-line\nexport var BIconSkipStart=/*#__PURE__*/makeIcon('SkipStart','');// eslint-disable-next-line\nexport var BIconSkipStartBtn=/*#__PURE__*/makeIcon('SkipStartBtn','');// eslint-disable-next-line\nexport var BIconSkipStartBtnFill=/*#__PURE__*/makeIcon('SkipStartBtnFill','');// eslint-disable-next-line\nexport var BIconSkipStartCircle=/*#__PURE__*/makeIcon('SkipStartCircle','');// eslint-disable-next-line\nexport var BIconSkipStartCircleFill=/*#__PURE__*/makeIcon('SkipStartCircleFill','');// eslint-disable-next-line\nexport var BIconSkipStartFill=/*#__PURE__*/makeIcon('SkipStartFill','');// eslint-disable-next-line\nexport var BIconSlack=/*#__PURE__*/makeIcon('Slack','');// eslint-disable-next-line\nexport var BIconSlash=/*#__PURE__*/makeIcon('Slash','');// eslint-disable-next-line\nexport var BIconSlashCircle=/*#__PURE__*/makeIcon('SlashCircle','');// eslint-disable-next-line\nexport var BIconSlashCircleFill=/*#__PURE__*/makeIcon('SlashCircleFill','');// eslint-disable-next-line\nexport var BIconSlashSquare=/*#__PURE__*/makeIcon('SlashSquare','');// eslint-disable-next-line\nexport var BIconSlashSquareFill=/*#__PURE__*/makeIcon('SlashSquareFill','');// eslint-disable-next-line\nexport var BIconSliders=/*#__PURE__*/makeIcon('Sliders','');// eslint-disable-next-line\nexport var BIconSmartwatch=/*#__PURE__*/makeIcon('Smartwatch','');// eslint-disable-next-line\nexport var BIconSortAlphaDown=/*#__PURE__*/makeIcon('SortAlphaDown','');// eslint-disable-next-line\nexport var BIconSortAlphaDownAlt=/*#__PURE__*/makeIcon('SortAlphaDownAlt','');// eslint-disable-next-line\nexport var BIconSortAlphaUp=/*#__PURE__*/makeIcon('SortAlphaUp','');// eslint-disable-next-line\nexport var BIconSortAlphaUpAlt=/*#__PURE__*/makeIcon('SortAlphaUpAlt','');// eslint-disable-next-line\nexport var BIconSortDown=/*#__PURE__*/makeIcon('SortDown','');// eslint-disable-next-line\nexport var BIconSortDownAlt=/*#__PURE__*/makeIcon('SortDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericDown=/*#__PURE__*/makeIcon('SortNumericDown','');// eslint-disable-next-line\nexport var BIconSortNumericDownAlt=/*#__PURE__*/makeIcon('SortNumericDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericUp=/*#__PURE__*/makeIcon('SortNumericUp','');// eslint-disable-next-line\nexport var BIconSortNumericUpAlt=/*#__PURE__*/makeIcon('SortNumericUpAlt','');// eslint-disable-next-line\nexport var BIconSortUp=/*#__PURE__*/makeIcon('SortUp','');// eslint-disable-next-line\nexport var BIconSortUpAlt=/*#__PURE__*/makeIcon('SortUpAlt','');// eslint-disable-next-line\nexport var BIconSoundwave=/*#__PURE__*/makeIcon('Soundwave','');// eslint-disable-next-line\nexport var BIconSpeaker=/*#__PURE__*/makeIcon('Speaker','');// eslint-disable-next-line\nexport var BIconSpeakerFill=/*#__PURE__*/makeIcon('SpeakerFill','');// eslint-disable-next-line\nexport var BIconSpellcheck=/*#__PURE__*/makeIcon('Spellcheck','');// eslint-disable-next-line\nexport var BIconSquare=/*#__PURE__*/makeIcon('Square','');// eslint-disable-next-line\nexport var BIconSquareFill=/*#__PURE__*/makeIcon('SquareFill','');// eslint-disable-next-line\nexport var BIconSquareHalf=/*#__PURE__*/makeIcon('SquareHalf','');// eslint-disable-next-line\nexport var BIconStar=/*#__PURE__*/makeIcon('Star','');// eslint-disable-next-line\nexport var BIconStarFill=/*#__PURE__*/makeIcon('StarFill','');// eslint-disable-next-line\nexport var BIconStarHalf=/*#__PURE__*/makeIcon('StarHalf','');// eslint-disable-next-line\nexport var BIconStickies=/*#__PURE__*/makeIcon('Stickies','');// eslint-disable-next-line\nexport var BIconStickiesFill=/*#__PURE__*/makeIcon('StickiesFill','');// eslint-disable-next-line\nexport var BIconSticky=/*#__PURE__*/makeIcon('Sticky','');// eslint-disable-next-line\nexport var BIconStickyFill=/*#__PURE__*/makeIcon('StickyFill','');// eslint-disable-next-line\nexport var BIconStop=/*#__PURE__*/makeIcon('Stop','');// eslint-disable-next-line\nexport var BIconStopBtn=/*#__PURE__*/makeIcon('StopBtn','');// eslint-disable-next-line\nexport var BIconStopBtnFill=/*#__PURE__*/makeIcon('StopBtnFill','');// eslint-disable-next-line\nexport var BIconStopCircle=/*#__PURE__*/makeIcon('StopCircle','');// eslint-disable-next-line\nexport var BIconStopCircleFill=/*#__PURE__*/makeIcon('StopCircleFill','');// eslint-disable-next-line\nexport var BIconStopFill=/*#__PURE__*/makeIcon('StopFill','');// eslint-disable-next-line\nexport var BIconStoplights=/*#__PURE__*/makeIcon('Stoplights','');// eslint-disable-next-line\nexport var BIconStoplightsFill=/*#__PURE__*/makeIcon('StoplightsFill','');// eslint-disable-next-line\nexport var BIconStopwatch=/*#__PURE__*/makeIcon('Stopwatch','');// eslint-disable-next-line\nexport var BIconStopwatchFill=/*#__PURE__*/makeIcon('StopwatchFill','');// eslint-disable-next-line\nexport var BIconSubtract=/*#__PURE__*/makeIcon('Subtract','');// eslint-disable-next-line\nexport var BIconSuitClub=/*#__PURE__*/makeIcon('SuitClub','');// eslint-disable-next-line\nexport var BIconSuitClubFill=/*#__PURE__*/makeIcon('SuitClubFill','');// eslint-disable-next-line\nexport var BIconSuitDiamond=/*#__PURE__*/makeIcon('SuitDiamond','');// eslint-disable-next-line\nexport var BIconSuitDiamondFill=/*#__PURE__*/makeIcon('SuitDiamondFill','');// eslint-disable-next-line\nexport var BIconSuitHeart=/*#__PURE__*/makeIcon('SuitHeart','');// eslint-disable-next-line\nexport var BIconSuitHeartFill=/*#__PURE__*/makeIcon('SuitHeartFill','');// eslint-disable-next-line\nexport var BIconSuitSpade=/*#__PURE__*/makeIcon('SuitSpade','');// eslint-disable-next-line\nexport var BIconSuitSpadeFill=/*#__PURE__*/makeIcon('SuitSpadeFill','');// eslint-disable-next-line\nexport var BIconSun=/*#__PURE__*/makeIcon('Sun','');// eslint-disable-next-line\nexport var BIconSunglasses=/*#__PURE__*/makeIcon('Sunglasses','');// eslint-disable-next-line\nexport var BIconTable=/*#__PURE__*/makeIcon('Table','');// eslint-disable-next-line\nexport var BIconTablet=/*#__PURE__*/makeIcon('Tablet','');// eslint-disable-next-line\nexport var BIconTabletFill=/*#__PURE__*/makeIcon('TabletFill','');// eslint-disable-next-line\nexport var BIconTabletLandscape=/*#__PURE__*/makeIcon('TabletLandscape','');// eslint-disable-next-line\nexport var BIconTabletLandscapeFill=/*#__PURE__*/makeIcon('TabletLandscapeFill','');// eslint-disable-next-line\nexport var BIconTag=/*#__PURE__*/makeIcon('Tag','');// eslint-disable-next-line\nexport var BIconTagFill=/*#__PURE__*/makeIcon('TagFill','');// eslint-disable-next-line\nexport var BIconTags=/*#__PURE__*/makeIcon('Tags','');// eslint-disable-next-line\nexport var BIconTagsFill=/*#__PURE__*/makeIcon('TagsFill','');// eslint-disable-next-line\nexport var BIconTelephone=/*#__PURE__*/makeIcon('Telephone','');// eslint-disable-next-line\nexport var BIconTelephoneFill=/*#__PURE__*/makeIcon('TelephoneFill','');// eslint-disable-next-line\nexport var BIconTelephoneForward=/*#__PURE__*/makeIcon('TelephoneForward','');// eslint-disable-next-line\nexport var BIconTelephoneForwardFill=/*#__PURE__*/makeIcon('TelephoneForwardFill','');// eslint-disable-next-line\nexport var BIconTelephoneInbound=/*#__PURE__*/makeIcon('TelephoneInbound','');// eslint-disable-next-line\nexport var BIconTelephoneInboundFill=/*#__PURE__*/makeIcon('TelephoneInboundFill','');// eslint-disable-next-line\nexport var BIconTelephoneMinus=/*#__PURE__*/makeIcon('TelephoneMinus','');// eslint-disable-next-line\nexport var BIconTelephoneMinusFill=/*#__PURE__*/makeIcon('TelephoneMinusFill','');// eslint-disable-next-line\nexport var BIconTelephoneOutbound=/*#__PURE__*/makeIcon('TelephoneOutbound','');// eslint-disable-next-line\nexport var BIconTelephoneOutboundFill=/*#__PURE__*/makeIcon('TelephoneOutboundFill','');// eslint-disable-next-line\nexport var BIconTelephonePlus=/*#__PURE__*/makeIcon('TelephonePlus','');// eslint-disable-next-line\nexport var BIconTelephonePlusFill=/*#__PURE__*/makeIcon('TelephonePlusFill','');// eslint-disable-next-line\nexport var BIconTelephoneX=/*#__PURE__*/makeIcon('TelephoneX','');// eslint-disable-next-line\nexport var BIconTelephoneXFill=/*#__PURE__*/makeIcon('TelephoneXFill','');// eslint-disable-next-line\nexport var BIconTerminal=/*#__PURE__*/makeIcon('Terminal','');// eslint-disable-next-line\nexport var BIconTerminalFill=/*#__PURE__*/makeIcon('TerminalFill','');// eslint-disable-next-line\nexport var BIconTextCenter=/*#__PURE__*/makeIcon('TextCenter','');// eslint-disable-next-line\nexport var BIconTextIndentLeft=/*#__PURE__*/makeIcon('TextIndentLeft','');// eslint-disable-next-line\nexport var BIconTextIndentRight=/*#__PURE__*/makeIcon('TextIndentRight','');// eslint-disable-next-line\nexport var BIconTextLeft=/*#__PURE__*/makeIcon('TextLeft','');// eslint-disable-next-line\nexport var BIconTextParagraph=/*#__PURE__*/makeIcon('TextParagraph','');// eslint-disable-next-line\nexport var BIconTextRight=/*#__PURE__*/makeIcon('TextRight','');// eslint-disable-next-line\nexport var BIconTextarea=/*#__PURE__*/makeIcon('Textarea','');// eslint-disable-next-line\nexport var BIconTextareaResize=/*#__PURE__*/makeIcon('TextareaResize','');// eslint-disable-next-line\nexport var BIconTextareaT=/*#__PURE__*/makeIcon('TextareaT','');// eslint-disable-next-line\nexport var BIconThermometer=/*#__PURE__*/makeIcon('Thermometer','');// eslint-disable-next-line\nexport var BIconThermometerHalf=/*#__PURE__*/makeIcon('ThermometerHalf','');// eslint-disable-next-line\nexport var BIconThreeDots=/*#__PURE__*/makeIcon('ThreeDots','');// eslint-disable-next-line\nexport var BIconThreeDotsVertical=/*#__PURE__*/makeIcon('ThreeDotsVertical','');// eslint-disable-next-line\nexport var BIconToggle2Off=/*#__PURE__*/makeIcon('Toggle2Off','');// eslint-disable-next-line\nexport var BIconToggle2On=/*#__PURE__*/makeIcon('Toggle2On','');// eslint-disable-next-line\nexport var BIconToggleOff=/*#__PURE__*/makeIcon('ToggleOff','');// eslint-disable-next-line\nexport var BIconToggleOn=/*#__PURE__*/makeIcon('ToggleOn','');// eslint-disable-next-line\nexport var BIconToggles=/*#__PURE__*/makeIcon('Toggles','');// eslint-disable-next-line\nexport var BIconToggles2=/*#__PURE__*/makeIcon('Toggles2','');// eslint-disable-next-line\nexport var BIconTools=/*#__PURE__*/makeIcon('Tools','');// eslint-disable-next-line\nexport var BIconTrash=/*#__PURE__*/makeIcon('Trash','');// eslint-disable-next-line\nexport var BIconTrash2=/*#__PURE__*/makeIcon('Trash2','');// eslint-disable-next-line\nexport var BIconTrash2Fill=/*#__PURE__*/makeIcon('Trash2Fill','');// eslint-disable-next-line\nexport var BIconTrashFill=/*#__PURE__*/makeIcon('TrashFill','');// eslint-disable-next-line\nexport var BIconTree=/*#__PURE__*/makeIcon('Tree','');// eslint-disable-next-line\nexport var BIconTreeFill=/*#__PURE__*/makeIcon('TreeFill','');// eslint-disable-next-line\nexport var BIconTriangle=/*#__PURE__*/makeIcon('Triangle','');// eslint-disable-next-line\nexport var BIconTriangleFill=/*#__PURE__*/makeIcon('TriangleFill','');// eslint-disable-next-line\nexport var BIconTriangleHalf=/*#__PURE__*/makeIcon('TriangleHalf','');// eslint-disable-next-line\nexport var BIconTrophy=/*#__PURE__*/makeIcon('Trophy','');// eslint-disable-next-line\nexport var BIconTrophyFill=/*#__PURE__*/makeIcon('TrophyFill','');// eslint-disable-next-line\nexport var BIconTruck=/*#__PURE__*/makeIcon('Truck','');// eslint-disable-next-line\nexport var BIconTruckFlatbed=/*#__PURE__*/makeIcon('TruckFlatbed','');// eslint-disable-next-line\nexport var BIconTv=/*#__PURE__*/makeIcon('Tv','');// eslint-disable-next-line\nexport var BIconTvFill=/*#__PURE__*/makeIcon('TvFill','');// eslint-disable-next-line\nexport var BIconTwitch=/*#__PURE__*/makeIcon('Twitch','');// eslint-disable-next-line\nexport var BIconTwitter=/*#__PURE__*/makeIcon('Twitter','');// eslint-disable-next-line\nexport var BIconType=/*#__PURE__*/makeIcon('Type','');// eslint-disable-next-line\nexport var BIconTypeBold=/*#__PURE__*/makeIcon('TypeBold','');// eslint-disable-next-line\nexport var BIconTypeH1=/*#__PURE__*/makeIcon('TypeH1','');// eslint-disable-next-line\nexport var BIconTypeH2=/*#__PURE__*/makeIcon('TypeH2','');// eslint-disable-next-line\nexport var BIconTypeH3=/*#__PURE__*/makeIcon('TypeH3','');// eslint-disable-next-line\nexport var BIconTypeItalic=/*#__PURE__*/makeIcon('TypeItalic','');// eslint-disable-next-line\nexport var BIconTypeStrikethrough=/*#__PURE__*/makeIcon('TypeStrikethrough','');// eslint-disable-next-line\nexport var BIconTypeUnderline=/*#__PURE__*/makeIcon('TypeUnderline','');// eslint-disable-next-line\nexport var BIconUiChecks=/*#__PURE__*/makeIcon('UiChecks','');// eslint-disable-next-line\nexport var BIconUiChecksGrid=/*#__PURE__*/makeIcon('UiChecksGrid','');// eslint-disable-next-line\nexport var BIconUiRadios=/*#__PURE__*/makeIcon('UiRadios','');// eslint-disable-next-line\nexport var BIconUiRadiosGrid=/*#__PURE__*/makeIcon('UiRadiosGrid','');// eslint-disable-next-line\nexport var BIconUnion=/*#__PURE__*/makeIcon('Union','');// eslint-disable-next-line\nexport var BIconUnlock=/*#__PURE__*/makeIcon('Unlock','');// eslint-disable-next-line\nexport var BIconUnlockFill=/*#__PURE__*/makeIcon('UnlockFill','');// eslint-disable-next-line\nexport var BIconUpc=/*#__PURE__*/makeIcon('Upc','');// eslint-disable-next-line\nexport var BIconUpcScan=/*#__PURE__*/makeIcon('UpcScan','');// eslint-disable-next-line\nexport var BIconUpload=/*#__PURE__*/makeIcon('Upload','');// eslint-disable-next-line\nexport var BIconVectorPen=/*#__PURE__*/makeIcon('VectorPen','');// eslint-disable-next-line\nexport var BIconViewList=/*#__PURE__*/makeIcon('ViewList','');// eslint-disable-next-line\nexport var BIconViewStacked=/*#__PURE__*/makeIcon('ViewStacked','');// eslint-disable-next-line\nexport var BIconVinyl=/*#__PURE__*/makeIcon('Vinyl','');// eslint-disable-next-line\nexport var BIconVinylFill=/*#__PURE__*/makeIcon('VinylFill','');// eslint-disable-next-line\nexport var BIconVoicemail=/*#__PURE__*/makeIcon('Voicemail','');// eslint-disable-next-line\nexport var BIconVolumeDown=/*#__PURE__*/makeIcon('VolumeDown','');// eslint-disable-next-line\nexport var BIconVolumeDownFill=/*#__PURE__*/makeIcon('VolumeDownFill','');// eslint-disable-next-line\nexport var BIconVolumeMute=/*#__PURE__*/makeIcon('VolumeMute','');// eslint-disable-next-line\nexport var BIconVolumeMuteFill=/*#__PURE__*/makeIcon('VolumeMuteFill','');// eslint-disable-next-line\nexport var BIconVolumeOff=/*#__PURE__*/makeIcon('VolumeOff','');// eslint-disable-next-line\nexport var BIconVolumeOffFill=/*#__PURE__*/makeIcon('VolumeOffFill','');// eslint-disable-next-line\nexport var BIconVolumeUp=/*#__PURE__*/makeIcon('VolumeUp','');// eslint-disable-next-line\nexport var BIconVolumeUpFill=/*#__PURE__*/makeIcon('VolumeUpFill','');// eslint-disable-next-line\nexport var BIconVr=/*#__PURE__*/makeIcon('Vr','');// eslint-disable-next-line\nexport var BIconWallet=/*#__PURE__*/makeIcon('Wallet','');// eslint-disable-next-line\nexport var BIconWallet2=/*#__PURE__*/makeIcon('Wallet2','');// eslint-disable-next-line\nexport var BIconWalletFill=/*#__PURE__*/makeIcon('WalletFill','');// eslint-disable-next-line\nexport var BIconWatch=/*#__PURE__*/makeIcon('Watch','');// eslint-disable-next-line\nexport var BIconWifi=/*#__PURE__*/makeIcon('Wifi','');// eslint-disable-next-line\nexport var BIconWifi1=/*#__PURE__*/makeIcon('Wifi1','');// eslint-disable-next-line\nexport var BIconWifi2=/*#__PURE__*/makeIcon('Wifi2','');// eslint-disable-next-line\nexport var BIconWifiOff=/*#__PURE__*/makeIcon('WifiOff','');// eslint-disable-next-line\nexport var BIconWindow=/*#__PURE__*/makeIcon('Window','');// eslint-disable-next-line\nexport var BIconWrench=/*#__PURE__*/makeIcon('Wrench','');// eslint-disable-next-line\nexport var BIconX=/*#__PURE__*/makeIcon('X','');// eslint-disable-next-line\nexport var BIconXCircle=/*#__PURE__*/makeIcon('XCircle','');// eslint-disable-next-line\nexport var BIconXCircleFill=/*#__PURE__*/makeIcon('XCircleFill','');// eslint-disable-next-line\nexport var BIconXDiamond=/*#__PURE__*/makeIcon('XDiamond','');// eslint-disable-next-line\nexport var BIconXDiamondFill=/*#__PURE__*/makeIcon('XDiamondFill','');// eslint-disable-next-line\nexport var BIconXOctagon=/*#__PURE__*/makeIcon('XOctagon','');// eslint-disable-next-line\nexport var BIconXOctagonFill=/*#__PURE__*/makeIcon('XOctagonFill','');// eslint-disable-next-line\nexport var BIconXSquare=/*#__PURE__*/makeIcon('XSquare','');// eslint-disable-next-line\nexport var BIconXSquareFill=/*#__PURE__*/makeIcon('XSquareFill','');// eslint-disable-next-line\nexport var BIconYoutube=/*#__PURE__*/makeIcon('Youtube','');// eslint-disable-next-line\nexport var BIconZoomIn=/*#__PURE__*/makeIcon('ZoomIn','');// eslint-disable-next-line\nexport var BIconZoomOut=/*#__PURE__*/makeIcon('ZoomOut','');// --- END AUTO-GENERATED FILE ---","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"quill\")):\"function\"==typeof define&&define.amd?define([\"quill\"],e):\"object\"==typeof exports?exports.VueQuillEditor=e(require(\"quill\")):t.VueQuillEditor=e(t.Quill)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var l=n[i]={i:i,l:!1,exports:{}};return t[i].call(l.exports,l,l.exports,e),l.l=!0,l.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=2)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(4),l=n.n(i),o=n(6),r=n(5),u=r(l.a,o.a,!1,null,null,null);e.default=u.exports},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.install=e.quillEditor=e.Quill=void 0;var l=n(0),o=i(l),r=n(1),u=i(r),s=window.Quill||o.default,a=function(t,e){e&&(u.default.props.globalOptions.default=function(){return e}),t.component(u.default.name,u.default)},c={Quill:s,quillEditor:u.default,install:a};e.default=c,e.Quill=s,e.quillEditor=u.default,e.install=a},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={theme:\"snow\",boundary:document.body,modules:{toolbar:[[\"bold\",\"italic\",\"underline\",\"strike\"],[\"blockquote\",\"code-block\"],[{header:1},{header:2}],[{list:\"ordered\"},{list:\"bullet\"}],[{script:\"sub\"},{script:\"super\"}],[{indent:\"-1\"},{indent:\"+1\"}],[{direction:\"rtl\"}],[{size:[\"small\",!1,\"large\",\"huge\"]}],[{header:[1,2,3,4,5,6,!1]}],[{color:[]},{background:[]}],[{font:[]}],[{align:[]}],[\"clean\"],[\"link\",\"image\",\"video\"]]},placeholder:\"Insert text here ...\",readOnly:!1}},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var l=n(0),o=i(l),r=n(3),u=i(r),s=window.Quill||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),i=1;i

\"===l&&(l=\"\"),t._content=l,t.$emit(\"input\",t._content),t.$emit(\"change\",{html:l,text:r,quill:o})}),this.$emit(\"ready\",this.quill))}},watch:{content:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},value:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},disabled:function(t,e){this.quill&&this.quill.enable(!t)}}}},function(t,e){t.exports=function(t,e,n,i,l,o){var r,u=t=t||{},s=typeof t.default;\"object\"!==s&&\"function\"!==s||(r=t,u=t.default);var a=\"function\"==typeof u?u.options:u;e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0),n&&(a.functional=!0),l&&(a._scopeId=l);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},a._ssrRegister=c):i&&(c=i),c){var d=a.functional,f=d?a.render:a.beforeCreate;d?(a._injectStyles=c,a.render=function(t,e){return c.call(e),f(t,e)}):a.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:u,options:a}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"quill-editor\"},[t._t(\"toolbar\"),t._v(\" \"),n(\"div\",{ref:\"editor\"})],2)},l=[],o={render:i,staticRenderFns:l};e.a=o}])});","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});","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&\"","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_SIDEBAR } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER, SLOT_NAME_HEADER_CLOSE, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { attemptFocus, contains, getActiveElement, getTabables } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconX } from '../../icons/icons';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar CLASS_NAME = 'b-sidebar';\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // If `true`, shows a basic backdrop\n backdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n backdropVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n bgVariant: makeProp(PROP_TYPE_STRING, 'light'),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // `aria-label` for close button\n closeLabel: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnRouteChange: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n noSlide: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n shadow: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sidebarClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n title: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING)\n})), NAME_SIDEBAR); // --- Render methods ---\n\nvar renderHeaderTitle = function renderHeaderTitle(h, ctx) {\n // Render a empty `` when to title was provided\n var title = ctx.normalizeSlot(SLOT_NAME_TITLE, ctx.slotScope) || ctx.title;\n\n if (!title) {\n return h('span');\n }\n\n return h('strong', {\n attrs: {\n id: ctx.safeId('__title__')\n }\n }, [title]);\n};\n\nvar renderHeaderClose = function renderHeaderClose(h, ctx) {\n if (ctx.noHeaderClose) {\n return h();\n }\n\n var closeLabel = ctx.closeLabel,\n textVariant = ctx.textVariant,\n hide = ctx.hide;\n return h(BButtonClose, {\n props: {\n ariaLabel: closeLabel,\n textVariant: textVariant\n },\n on: {\n click: hide\n },\n ref: 'close-button'\n }, [ctx.normalizeSlot(SLOT_NAME_HEADER_CLOSE) || h(BIconX)]);\n};\n\nvar renderHeader = function renderHeader(h, ctx) {\n if (ctx.noHeader) {\n return h();\n }\n\n var $content = ctx.normalizeSlot(SLOT_NAME_HEADER, ctx.slotScope);\n\n if (!$content) {\n var $title = renderHeaderTitle(h, ctx);\n var $close = renderHeaderClose(h, ctx);\n $content = ctx.right ? [$close, $title] : [$title, $close];\n }\n\n return h('header', {\n staticClass: \"\".concat(CLASS_NAME, \"-header\"),\n class: ctx.headerClass,\n key: 'header'\n }, $content);\n};\n\nvar renderBody = function renderBody(h, ctx) {\n return h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-body\"),\n class: ctx.bodyClass,\n key: 'body'\n }, [ctx.normalizeSlot(SLOT_NAME_DEFAULT, ctx.slotScope)]);\n};\n\nvar renderFooter = function renderFooter(h, ctx) {\n var $footer = ctx.normalizeSlot(SLOT_NAME_FOOTER, ctx.slotScope);\n\n if (!$footer) {\n return h();\n }\n\n return h('footer', {\n staticClass: \"\".concat(CLASS_NAME, \"-footer\"),\n class: ctx.footerClass,\n key: 'footer'\n }, [$footer]);\n};\n\nvar renderContent = function renderContent(h, ctx) {\n // We render the header even if `lazy` is enabled as it\n // acts as the accessible label for the sidebar\n var $header = renderHeader(h, ctx);\n\n if (ctx.lazy && !ctx.isOpen) {\n return $header;\n }\n\n return [$header, renderBody(h, ctx), renderFooter(h, ctx)];\n};\n\nvar renderBackdrop = function renderBackdrop(h, ctx) {\n if (!ctx.backdrop) {\n return h();\n }\n\n var backdropVariant = ctx.backdropVariant;\n return h('div', {\n directives: [{\n name: 'show',\n value: ctx.localShow\n }],\n staticClass: 'b-sidebar-backdrop',\n class: _defineProperty({}, \"bg-\".concat(backdropVariant), backdropVariant),\n on: {\n click: ctx.onBackdropClick\n }\n });\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BSidebar = /*#__PURE__*/Vue.extend({\n name: NAME_SIDEBAR,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n var visible = !!this[MODEL_PROP_NAME];\n return {\n // Internal `v-model` state\n localShow: visible,\n // For lazy render triggering\n isOpen: visible\n };\n },\n computed: {\n transitionProps: function transitionProps() {\n return this.noSlide ?\n /* istanbul ignore next */\n {\n css: true\n } : {\n css: true,\n enterClass: '',\n enterActiveClass: 'slide',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: 'slide',\n leaveToClass: ''\n };\n },\n slotScope: function slotScope() {\n var hide = this.hide,\n right = this.right,\n visible = this.localShow;\n return {\n hide: hide,\n right: right,\n visible: visible\n };\n },\n hasTitle: function hasTitle() {\n var $scopedSlots = this.$scopedSlots,\n $slots = this.$slots;\n return !this.noHeader && !this.hasNormalizedSlot(SLOT_NAME_HEADER) && !!(this.normalizeSlot(SLOT_NAME_TITLE, this.slotScope, $scopedSlots, $slots) || this.title);\n },\n titleId: function titleId() {\n return this.hasTitle ? this.safeId('__title__') : null;\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n tabindex: '-1',\n role: 'dialog',\n 'aria-modal': this.backdrop ? 'true' : 'false',\n 'aria-hidden': this.localShow ? null : 'true',\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || this.titleId || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localShow = newValue;\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState(newValue);\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"$route\", function $route() {\n var newValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var oldValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.noCloseOnRouteChange && newValue.fullPath !== oldValue.fullPath) {\n this.hide();\n }\n }), _watch),\n created: function created() {\n // Define non-reactive properties\n this.$_returnFocusEl = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n // Add `$root` listeners\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggle);\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, this.handleSync); // Send out a gratuitous state event to ensure toggle button is synced\n\n this.$nextTick(function () {\n _this.emitState(_this.localShow);\n });\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n this.localShow = false;\n this.$_returnFocusEl = null;\n },\n methods: {\n hide: function hide() {\n this.localShow = false;\n },\n emitState: function emitState() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, this.safeId(), state);\n },\n emitSync: function emitSync() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), state);\n },\n handleToggle: function handleToggle(id) {\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.localShow = !this.localShow;\n }\n },\n handleSync: function handleSync(id) {\n var _this2 = this;\n\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.$nextTick(function () {\n _this2.emitSync(_this2.localShow);\n });\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (!this.noCloseOnEsc && keyCode === CODE_ESC && this.localShow) {\n this.hide();\n }\n },\n onBackdropClick: function onBackdropClick() {\n if (this.localShow && !this.noCloseOnBackdrop) {\n this.hide();\n }\n },\n\n /* istanbul ignore next */\n onTopTrapFocus: function onTopTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables.reverse()[0]);\n },\n\n /* istanbul ignore next */\n onBottomTrapFocus: function onBottomTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables[0]);\n },\n onBeforeEnter: function onBeforeEnter() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n this.$_returnFocusEl = getActiveElement(IS_BROWSER ? [document.body] : []); // Trigger lazy render\n\n this.isOpen = true;\n },\n onAfterEnter: function onAfterEnter(el) {\n if (!contains(el, getActiveElement())) {\n this.enforceFocus(el);\n }\n\n this.$emit(EVENT_NAME_SHOWN);\n },\n onAfterLeave: function onAfterLeave() {\n this.enforceFocus(this.$_returnFocusEl);\n this.$_returnFocusEl = null; // Trigger lazy render\n\n this.isOpen = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n enforceFocus: function enforceFocus(el) {\n if (!this.noEnforceFocus) {\n attemptFocus(el);\n }\n }\n },\n render: function render(h) {\n var _ref;\n\n var bgVariant = this.bgVariant,\n width = this.width,\n textVariant = this.textVariant,\n localShow = this.localShow;\n var shadow = this.shadow === '' ? true : this.shadow;\n var $sidebar = h(this.tag, {\n staticClass: CLASS_NAME,\n class: [(_ref = {\n shadow: shadow === true\n }, _defineProperty(_ref, \"shadow-\".concat(shadow), shadow && shadow !== true), _defineProperty(_ref, \"\".concat(CLASS_NAME, \"-right\"), this.right), _defineProperty(_ref, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_ref, \"text-\".concat(textVariant), textVariant), _ref), this.sidebarClass],\n style: {\n width: width\n },\n attrs: this.computedAttrs,\n directives: [{\n name: 'show',\n value: localShow\n }],\n ref: 'content'\n }, [renderContent(h, this)]);\n $sidebar = h('transition', {\n props: this.transitionProps,\n on: {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n afterLeave: this.onAfterLeave\n }\n }, [$sidebar]);\n var $backdrop = h(BVTransition, {\n props: {\n noFade: this.noSlide\n }\n }, [renderBackdrop(h, this)]);\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.backdrop && localShow) {\n $tabTrapTop = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onTopTrapFocus\n }\n });\n $tabTrapBottom = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onBottomTrapFocus\n }\n });\n }\n\n return h('div', {\n staticClass: 'b-sidebar-outer',\n style: {\n zIndex: this.zIndex\n },\n attrs: {\n tabindex: '-1'\n },\n on: {\n keydown: this.onKeydown\n }\n }, [$tabTrapTop, $sidebar, $tabTrapBottom, $backdrop]);\n }\n});","var _objectSpread2;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","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});","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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!./Edit.vue?vue&type=style&index=0&lang=scss&\"","/**!\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":""}