{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/@core/utils/filter.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?a883","webpack:///./src/@core/comp-functions/ui/app.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/list-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./src/@core/comp-functions/forms/form-validation.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?7e79","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./src/views/apps/todo/Todo.vue?afe9","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.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/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/vue-perfect-scrollbar/dist/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./src/views/apps/todo/Todo.vue?b3a9","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./src/views/apps/todo/Todo.vue?8724","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue?6c82","webpack:///src/views/apps/todo/TodoLeftSidebar.vue","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue?a13b","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue","webpack:///./src/views/apps/todo/todoStoreModule.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?876b","webpack:///./src/views/apps/todo/useTaskHandler.js","webpack:///src/views/apps/todo/TodoTaskHandlerSidebar.vue","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?297f","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue","webpack:///src/views/apps/todo/Todo.vue","webpack:///./src/views/apps/todo/Todo.vue?6245","webpack:///./src/views/apps/todo/Todo.vue","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.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/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/@core/utils/utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/list-group-item.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","extend","name","functional","render","h","_ref","data","parent","replace","concat","kFormatter","num","toFixed","title","replacer","str","toString","arr","split","capitalizedArray","word","capitalized","charAt","toUpperCase","slice","join","avatarText","nameArray","map","formatDate","formatting","month","day","year","Intl","DateTimeFormat","format","Date","formatDateToMonthShort","toTimeForCurrentDay","date","isToday","hour","minute","filterTags","toInteger","requireObjectCoercible","module","exports","repeat","count","String","this","result","n","Infinity","RangeError","id","inline","novalidate","validated","BForm","children","class","attrs","useResponsiveAppLeftSidebarVisibility","mqShallShowLeftSidebar","ref","currentBreakPoint","computed","store","getters","watch","val","oldVal","flush","horizontal","tag","BListGroup","componentData","staticClass","BInputGroupPrepend","append","classof","TypeError","isText","BInputGroupAddon","formValidation","resetFormData","clearFormData","refFormObserver","resetObserver","reset","getValidationState","dirty","fieldRequired","required","changed","valid","resetForm","nextTick","clearForm","appendHtml","prepend","prependHtml","size","BInputGroup","slots","scopedSlots","$scopedSlots","$slots","slotScope","$prepend","hasPrependSlot","domProps","$append","hasAppendSlot","role","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","indexOf","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","undefined","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","bool","debounce","fn","wait","t","clearTimeout","setTimeout","arrayify","Array","toggleClass","elem","className","classList","add","remove","createElement","content","e","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","type","pattern","setAttribute","appendChild","getEventTarget","event","composedPath","path","error","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","parseFloat","H","J","K","getHours","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","setFullYear","Z","ISODate","d","minutes","setMinutes","j","l","m","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","duration","DAY","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","assign","flatpickr","defaultConfig","setupHelperFunctions","utils","currentMonth","yr","currentYear","init","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","bind","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","changeYear","handler","ev","el","addEventListener","_handlers","removeEventListener","triggerChange","evt","prototype","call","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","select","timeIncrement","onBlur","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","get","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","k","isCalendarElem","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","preventDefault","focusAndClose","ctrlKey","stopPropagation","elems","pluginElements","x","shiftKey","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","set","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","default","customPositionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","sort","a","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","placeholder","inputType","mobileFormatStr","defaultValue","step","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","args","root","factory","modules","installedModules","__webpack_require__","moduleId","getter","o","__esModule","property","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","find","query","register","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","__","constructor","ParchmentError","_super","_this","attributes","classes","tags","types","BlotClass","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","names","tagName","TYPE","Definitions","_i","Definition","blotName","attrName","keyName","isArray","tagNames","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","insert","text","newOp","retain","index","lastOp","unshift","chop","pop","predicate","partition","passed","failed","initial","changeLength","delete","start","end","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","prep","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","src","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","Function","desc","getPrototypeOf","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","values","attribute","BLOCK_ATTRIBUTE","def","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","shift","tail","context","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","done","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","html","__quill","addContainer","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","on","events","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","lastRange","modify","update","contents","convert","setContents","readOnly","limit","level","imports","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","deleteText","enabled","scrollTop","scrollIntoView","_this4","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","height","getLength","_overload7","_overload8","getContents","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","_this11","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","toolbar","modifier","strict","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","_map4","version","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","log","_len2","_key2","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","method","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","attributeBit","ATTRIBUTE","item","canAdd","Code","_block","_block2","_Inline","CodeBlock","_Block","_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","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","image","list","bullet","_toConsumableArray","arr2","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","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","positions","indexes","_position","startContainer","endContainer","childNodes","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","replacement","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","resolve","reject","then","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","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","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","metaKey","altKey","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","binding","normalize","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","charCodeAt","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","label","togglePicker","escape","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","trigger","Event","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","camelize","parts","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","delay","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","cur","curNode","callback","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","isFinite","floor","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","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","best_common","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","len","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","code","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","r","install","quillEditor","globalOptions","boundary","script","color","background","font","_options","_content","defaultOptions","Boolean","mounted","initialize","beforeDestroy","methods","$el","$refs","pasteHTML","$emit","setText","staticRenderFns","_compiled","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","f","beforeCreate","_injectStyles","esModule","$createElement","_self","_c","_t","_v","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","els","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","mixins","provide","bvDropdown","inject","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","directionClass","boundaryClass","bvEvent","cancelable","vueTarget","menu","componentId","safeId","emitEvent","$off","focusToggler","showMenu","hideMenu","created","$_popper","$_hideTimeout","deactivated","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","createPopper","$nextTick","focusMenu","getPopperConfig","updatePopper","scheduleUpdate","_unused","placement","popperConfig","modifiers","flip","boundariesElement","preventOverflow","$root","rootCloseListener","vm","refocus","$once","_event","onMousedown","propagation","onKeydown","onEsc","focusNext","onSplitClick","hideHandler","up","items","getItems","focusItem","settings","tagname","ps","__init","__uninit","$route","$isServer","updated","activated","state","scrolling","isAlive","scrollingThreshold","CustomEvent","initCustomEvent","reach","v","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","g","minScrollbarLength","maxScrollbarLength","railXWidth","isRtl","negativeScrollAdjustment","scrollLeft","containerWidth","contentWidth","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","scrollbarXRail","railYHeight","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarYRail","scrollbarX","scrollbarXLeft","scrollbarXWidth","railBorderXWidth","scrollbarY","scrollbarYTop","scrollbarYHeight","railBorderYWidth","T","clicking","unbind","ownerDocument","Element","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","main","thumb","rail","consuming","active","X","isEmpty","unbindAll","eventElements","eventElement","L","R","isWebKit","documentElement","supportsTouch","DocumentTouch","supportsIePointer","isChrome","clientWidth","containerHeight","clientHeight","scrollWidth","contentHeight","scrollHeight","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXMarginWidth","railXRatio","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYMarginHeight","railYRatio","pageY","pageX","E","wheelPropagation","isDefaultPrevented","contentDocument","shadowRoot","deltaX","deltaY","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","overflow","overflowX","overflowY","useBothWheelAxes","wheelSpeed","onwheel","onmousewheel","scrollY","targetTouches","pointerType","MSPOINTER_TYPE_MOUSE","clearInterval","swipeEasing","setInterval","isInitialized","PointerEvent","MSPointerEvent","A","P","wheel","touch","C","isNegativeScroll","marginRight","borderTopWidth","borderBottomWidth","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","$props","_g","$listeners","refs","css","media","sourceMap","singleton","styleSheet","cssText","btoa","unescape","encodeURIComponent","DEBUG","locals","linkClass","variant","BDropdownItem","inheritAttrs","computedAttrs","bvAttrs","closeDropdown","onClick","normalizeSlot","plain","formCustomMixin","custom","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","getParentOrHost","host","closest","includeCTX","_throttleTimeout","R_SPACE","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastElementChild","previousElementSibling","getRelativeScrollOffset","offsetLeft","winScroller","indexOfObject","includeSelf","gotSelf","elemCSS","dst","isRectEqual","rect1","rect2","throttle","ms","cancelThrottle","scrollBy","Polymer","$","Zepto","dom","setRect","unsetRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","repaint","easing","animated","sqrt","pow","initializeByDefault","PluginManager","mount","plugin","pluginEvent","sortable","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","bubbles","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","sum","_saveInputCheckedState","inputs","idx","checked","_nextTick","_cancelNextTick","_getDirection","originalTarget","isContentEditable","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","handleEvent","toArray","is","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","AutoScrollPlugin","AutoScroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","swapNodes","swapItem","n1","n2","i1","i2","p1","p2","isEqualNode","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","deselect","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","formSizeMixin","sizeFormClass","_vm","_h","staticStyle","$event","searchQuery","updateRouteQuery","_u","proxy","resetSortAndNavigate","perfectScrollbarSettings","model","$$v","tasks","expression","_l","task","isCompleted","handleTaskClick","updateTaskIsCompleted","nativeOn","resolveTagVariant","dueDate","assignee","avatar","resolveAvatarVariant","fullName","clearTaskData","removeTask","addTask","updateTask","isTaskHandlerSidebarActive","taskTags","directives","rawName","route","isDynamicRouteActive","Ripple","BButton","BListGroupItem","VuePerfectScrollbar","setup","taskFilters","namespaced","actions","fetchTasks","payload","axios","params","response","catch","taskData","post","taskLocal","isImportant","handleSubmit","onSubmit","validationContext","$set","errors","$store","appConfig","isRTL","assigneeOptions","tagOptions","editorOption","useTaskHandler","resetTaskLocal","require","includes","BSidebar","BFormGroup","BFormInput","BAvatar","BFormInvalidFeedback","vSelect","flatPickr","ValidationProvider","ValidationObserver","email","BDropdown","BFormCheckbox","BBadge","TodoLeftSidebar","TodoTaskHandlerSidebar","sortOptions","sortBy","currentRouteQuery","router","description","isDeleted","blankTask","q","currentRoute","thisNumberValue","fails","nativeToFixed","FORCED","forced","fractionDigits","z","fractDigits","sign","multiply","c2","divide","dataToString","__WEBPACK_EXTERNAL_MODULE_a352__","toStringTag","LIBRARY","$export","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","defined","TO_STRING","that","at","unicode","anObject","sticky","$keys","enumBugKeys","O","dP","getKeys","Properties","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","string","arg","isObject","it","cof","ARG","tryGet","B","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","write","uid","USE_SYMBOL","$exports","INCLUDES","createDesc","toObject","ObjectProto","bitmap","MATCH","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","aLen","getSymbols","isEnum","__g","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","ch","isRegExp","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","__webpack_exports__","insertNodeAt","removeNode","getConsole","cached","hit","regex","parentElement","fatherNode","px","random","addToUnscopables","iterated","_k","Arguments","arrayIndexOf","STARTS_WITH","$startsWith","search","currentScript","scripts","readyState","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_nonIterableRest","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","elt","elm","_computeIndexes","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","componentOptions","getSlot","slot","scopedSlot","computeChildrenAndOffsets","headerOffset","footer","getComponentAttributes","$attrs","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","draggableComponent","transitionMode","noneFunctionalComponentMode","_computeChildrenAndOf","getTag","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","__vue__","_componentTag","emitChanges","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedInList","draggedContext","futureIndex","sendEvt","onDragEnd","Vue","vuedraggable","_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","renderHeaderClose","renderHeader","$content","$title","$close","renderBody","renderFooter","$footer","renderContent","$header","renderBackdrop","localShow","onBackdropClick","transitionProps","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","hasTitle","hasNormalizedSlot","titleId","emitState","fullPath","$_returnFocusEl","listenOnRoot","handleToggle","handleSync","emitSync","onTopTrapFocus","tabables","enforceFocus","onBottomTrapFocus","onBeforeEnter","onAfterEnter","onAfterLeave","$sidebar","beforeEnter","afterEnter","afterLeave","$backdrop","noFade","$tabTrapTop","$tabTrapBottom","keydown","onInput","validator","fp","getElem","fpInput","$on","$watch","watchDisabled","immediate","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","bvGroup","isChecked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","$input","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","today","resolvedRoute","useRouter","getCurrentInstance","reactive","toRefs","$router","BInputGroupAppend","BInputGroupText","actionTags","linkProps","action","_class","itemProps","_methods","buttonVariant","formRadioCheckMixin","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","isRequired","computedName","groupName","computedForm","form","computedSize","computedState","computedButtonVariant","buttonClasses","stateClass","handleFocus","$button","$label","for","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","$split","btnProps","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","rounded","square","bvAvatarGroup","localSrc","computedVariant","computedRounded","fontSize","marginStyle","overlapScale","badgeStyle","onImgError","_class2","$badge","hasBadgeSlot","badgeText","pill"],"mappings":"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","file":"js/chunk-43606f39.ce7877cd.js","sourcesContent":["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 { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","import { isToday } from './utils'\n\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\n\nexport const title = (value, replacer = ' ') => {\n if (!value) return ''\n const str = value.toString()\n\n const arr = str.split(replacer)\n const capitalizedArray = []\n arr.forEach(word => {\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\n capitalizedArray.push(capitalized)\n })\n return capitalizedArray.join(' ')\n}\n\nexport const avatarText = value => {\n if (!value) return ''\n const nameArray = value.split(' ')\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\n}\n\n/**\n * Format and return date in Humanize format\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\n * @param {String} value date to format\n * @param {Object} formatting Intl object to format with\n */\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\n if (!value) return value\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n/**\n * Return short human friendly month representation of date\n * Can also convert date to only time if date is of today (Better UX)\n * @param {String} value date to format\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\n */\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\n const date = new Date(value)\n let formatting = { month: 'short', day: 'numeric' }\n\n if (toTimeForCurrentDay && isToday(date)) {\n formatting = { hour: 'numeric', minute: 'numeric' }\n }\n\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n// Strip all the tags from markup and return plain text\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","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});","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!./TodoTaskHandlerSidebar.vue?vue&type=style&index=1&id=6b93e4ba&lang=scss&scoped=true&\"","import store from '@/store'\nimport { ref, watch, computed } from '@vue/composition-api'\n\nexport const useResponsiveAppLeftSidebarVisibility = () => {\n const mqShallShowLeftSidebar = ref(false)\n // Close Active Sidebars and other stuff when going in large device\n const currentBreakPoint = computed(() => store.getters['app/currentBreakPoint'])\n watch(currentBreakPoint, (val, oldVal) => {\n // Reset chats & contacts left sidebar\n if (oldVal === 'md' && val === 'lg') mqShallShowLeftSidebar.value = false\n })\n\n return {\n mqShallShowLeftSidebar,\n }\n}\n\nexport const _ = {}\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_LIST_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isString } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n flush: makeProp(PROP_TYPE_BOOLEAN, false),\n horizontal: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_LIST_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BListGroup = /*#__PURE__*/Vue.extend({\n name: NAME_LIST_GROUP,\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 var horizontal = props.horizontal === '' ? true : props.horizontal;\n horizontal = props.flush ? false : horizontal;\n var componentData = {\n staticClass: 'list-group',\n class: _defineProperty({\n 'list-group-flush': props.flush,\n 'list-group-horizontal': horizontal === true\n }, \"list-group-horizontal-\".concat(horizontal), isString(horizontal))\n };\n return h(props.tag, mergeData(data, componentData), children);\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, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\n }), children);\n }\n});","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\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 var append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","import { ref, nextTick } from '@vue/composition-api'\n\n// ===========================================================\n// ! This is coupled with \"veeValidate\" plugin\n// ===========================================================\n\nexport default function formValidation(resetFormData, clearFormData = () => {}) {\n // ------------------------------------------------\n // refFormObserver\n // ! This is for veeValidate Observer\n // * Used for veeValidate form observer\n // ------------------------------------------------\n const refFormObserver = ref(null)\n\n // ------------------------------------------------\n // resetObserver\n // ! This function is coupled with veeValidate\n // * It resets form observer\n // ------------------------------------------------\n const resetObserver = () => {\n refFormObserver.value.reset()\n }\n\n // ------------------------------------------------\n // getValidationState\n // ! This function is coupled with veeValidate\n // * It returns true/false based on validation\n // ------------------------------------------------\n // eslint-disable-next-line object-curly-newline\n const getValidationState = ({ dirty, validated, required: fieldRequired, changed, valid = null }) => {\n const result = dirty || validated ? valid : null\n return !fieldRequired && !changed ? null : result\n }\n\n // ------------------------------------------------\n // resetForm\n // ! This function is coupled with veeValidate\n // * This uses resetFormData arg to reset form data\n // ------------------------------------------------\n const resetForm = () => {\n resetFormData()\n nextTick(() => {\n resetObserver()\n })\n }\n\n // ------------------------------------------------\n // clearForm\n // ! This function is coupled with veeValidate\n // * This uses clearFormData arg to reset form data\n // ------------------------------------------------\n const clearForm = () => {\n clearFormData()\n nextTick(() => {\n resetObserver()\n })\n }\n\n return {\n refFormObserver,\n resetObserver,\n getValidationState,\n resetForm,\n clearForm,\n }\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!./TodoTaskHandlerSidebar.vue?vue&type=style&index=0&lang=scss&\"","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_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\n }\n});","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n \n ${weekdays.join(\"\")}\n \n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\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!./Todo.vue?vue&type=style&index=1&lang=scss&\"","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\n };\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}])});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\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\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","module.exports=function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,i){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,\"a\",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/dist/\",e(e.s=2)}([function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px}.ps__thumb-x,.ps__thumb-y{background-color:#aaa;border-radius:6px;position:absolute}.ps__thumb-y{transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}\",\"\"])},function(t,e,r){e=t.exports=r(0)(),e.i(r(4),\"\"),e.push([t.i,\".ps-container{position:relative}\",\"\"])},function(t,e,r){\"use strict\";/*!\n * perfect-scrollbar v1.4.0\n * (c) 2018 Hyunje Jun\n * @license MIT\n */\nfunction i(t){return getComputedStyle(t)}function n(t,e){for(var r in e){var i=e[r];\"number\"==typeof i&&(i+=\"px\"),t.style[r]=i}return t}function o(t){var e=document.createElement(\"div\");return e.className=t,e}function l(t,e){if(!w)throw new Error(\"No element matching method supported\");return w.call(t,e)}function s(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function a(t,e){return Array.prototype.filter.call(t.children,function(t){return l(t,e)})}function c(t,e){var r=t.element.classList,i=Y.state.scrolling(e);r.contains(i)?clearTimeout(_[e]):r.add(i)}function h(t,e){_[e]=setTimeout(function(){return t.isAlive&&t.element.classList.remove(Y.state.scrolling(e))},t.settings.scrollingThreshold)}function u(t,e){c(t,e),h(t,e)}function p(t){if(\"function\"==typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent(\"CustomEvent\");return e.initCustomEvent(t,!1,!1,void 0),e}function d(t,e,r,i,n){var o=r[0],l=r[1],s=r[2],a=r[3],c=r[4],h=r[5];void 0===i&&(i=!0),void 0===n&&(n=!1);var d=t.element;t.reach[a]=null,d[s]<1&&(t.reach[a]=\"start\"),d[s]>t[o]-t[l]-1&&(t.reach[a]=\"end\"),e&&(d.dispatchEvent(p(\"ps-scroll-\"+a)),e<0?d.dispatchEvent(p(\"ps-scroll-\"+c)):e>0&&d.dispatchEvent(p(\"ps-scroll-\"+h)),i&&u(t,a)),t.reach[a]&&(e||n)&&d.dispatchEvent(p(\"ps-\"+a+\"-reach-\"+t.reach[a]))}function f(t){return parseInt(t,10)||0}function b(t){return l(t,\"input,[contenteditable]\")||l(t,\"select,[contenteditable]\")||l(t,\"textarea,[contenteditable]\")||l(t,\"button,[contenteditable]\")}function v(t){var e=i(t);return f(e.width)+f(e.paddingLeft)+f(e.paddingRight)+f(e.borderLeftWidth)+f(e.borderRightWidth)}function g(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function m(t,e){var r={width:e.railXWidth},i=Math.floor(t.scrollTop);e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:r.left=t.scrollLeft,e.isScrollbarXUsingBottom?r.bottom=e.scrollbarXBottom-i:r.top=e.scrollbarXTop+i,n(e.scrollbarXRail,r);var o={top:i,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?o.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:o.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?o.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:o.left=e.scrollbarYLeft+t.scrollLeft,n(e.scrollbarYRail,o),n(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),n(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}function y(t,e){function r(e){b[p]=v+m*(e[l]-g),c(t,d),T(t),e.stopPropagation(),e.preventDefault()}function i(){h(t,d),t[f].classList.remove(Y.state.clicking),t.event.unbind(t.ownerDocument,\"mousemove\",r)}var n=e[0],o=e[1],l=e[2],s=e[3],a=e[4],u=e[5],p=e[6],d=e[7],f=e[8],b=t.element,v=null,g=null,m=null;t.event.bind(t[a],\"mousedown\",function(e){v=b[p],g=e[l],m=(t[o]-t[n])/(t[s]-t[u]),t.event.bind(t.ownerDocument,\"mousemove\",r),t.event.once(t.ownerDocument,\"mouseup\",i),t[f].classList.add(Y.state.clicking),e.stopPropagation(),e.preventDefault()})}var w=\"undefined\"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector),Y={main:\"ps\",element:{thumb:function(t){return\"ps__thumb-\"+t},rail:function(t){return\"ps__rail-\"+t},consuming:\"ps__child--consume\"},state:{focus:\"ps--focus\",clicking:\"ps--clicking\",active:function(t){return\"ps--active-\"+t},scrolling:function(t){return\"ps--scrolling-\"+t}}},_={x:null,y:null},X=function(t){this.element=t,this.handlers={}},W={isEmpty:{configurable:!0}};X.prototype.bind=function(t,e){void 0===this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},X.prototype.unbind=function(t,e){var r=this;this.handlers[t]=this.handlers[t].filter(function(i){return!(!e||i===e)||(r.element.removeEventListener(t,i,!1),!1)})},X.prototype.unbindAll=function(){var t=this;for(var e in t.handlers)t.unbind(e)},W.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every(function(e){return 0===t.handlers[e].length})},Object.defineProperties(X.prototype,W);var x=function(){this.eventElements=[]};x.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return e||(e=new X(t),this.eventElements.push(e)),e},x.prototype.bind=function(t,e,r){this.eventElement(t).bind(e,r)},x.prototype.unbind=function(t,e,r){var i=this.eventElement(t);i.unbind(e,r),i.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(i),1)},x.prototype.unbindAll=function(){this.eventElements.forEach(function(t){return t.unbindAll()}),this.eventElements=[]},x.prototype.once=function(t,e,r){var i=this.eventElement(t),n=function(t){i.unbind(e,n),r(t)};i.bind(e,n)};var L=function(t,e,r,i,n){void 0===i&&(i=!0),void 0===n&&(n=!1);var o;if(\"top\"===e)o=[\"contentHeight\",\"containerHeight\",\"scrollTop\",\"y\",\"up\",\"down\"];else{if(\"left\"!==e)throw new Error(\"A proper axis should be provided\");o=[\"contentWidth\",\"containerWidth\",\"scrollLeft\",\"x\",\"left\",\"right\"]}d(t,r,o,i,n)},R={isWebKit:\"undefined\"!=typeof document&&\"WebkitAppearance\"in document.documentElement.style,supportsTouch:\"undefined\"!=typeof window&&(\"ontouchstart\"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:\"undefined\"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:\"undefined\"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)},T=function(t){var e=t.element,r=Math.floor(e.scrollTop);t.containerWidth=e.clientWidth,t.containerHeight=e.clientHeight,t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight,e.contains(t.scrollbarXRail)||(a(e,Y.element.rail(\"x\")).forEach(function(t){return s(t)}),e.appendChild(t.scrollbarXRail)),e.contains(t.scrollbarYRail)||(a(e,Y.element.rail(\"y\")).forEach(function(t){return s(t)}),e.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),m(e,t),t.scrollbarXActive?e.classList.add(Y.state.active(\"x\")):(e.classList.remove(Y.state.active(\"x\")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,e.scrollLeft=0),t.scrollbarYActive?e.classList.add(Y.state.active(\"y\")):(e.classList.remove(Y.state.active(\"y\")),t.scrollbarYHeight=0,t.scrollbarYTop=0,e.scrollTop=0)},S=function(t){t.event.bind(t.scrollbarY,\"mousedown\",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarYRail,\"mousedown\",function(e){var r=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top,i=r>t.scrollbarYTop?1:-1;t.element.scrollTop+=i*t.containerHeight,T(t),e.stopPropagation()}),t.event.bind(t.scrollbarX,\"mousedown\",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarXRail,\"mousedown\",function(e){var r=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left,i=r>t.scrollbarXLeft?1:-1;t.element.scrollLeft+=i*t.containerWidth,T(t),e.stopPropagation()})},H=function(t){y(t,[\"containerWidth\",\"contentWidth\",\"pageX\",\"railXWidth\",\"scrollbarX\",\"scrollbarXWidth\",\"scrollLeft\",\"x\",\"scrollbarXRail\"]),y(t,[\"containerHeight\",\"contentHeight\",\"pageY\",\"railYHeight\",\"scrollbarY\",\"scrollbarYHeight\",\"scrollTop\",\"y\",\"scrollbarYRail\"])},E=function(t){function e(e,i){var n=Math.floor(r.scrollTop);if(0===e){if(!t.scrollbarYActive)return!1;if(0===n&&i>0||n>=t.contentHeight-t.containerHeight&&i<0)return!t.settings.wheelPropagation}var o=r.scrollLeft;if(0===i){if(!t.scrollbarXActive)return!1;if(0===o&&e<0||o>=t.contentWidth-t.containerWidth&&e>0)return!t.settings.wheelPropagation}return!0}var r=t.element,i=function(){return l(r,\":hover\")},n=function(){return l(t.scrollbarX,\":focus\")||l(t.scrollbarY,\":focus\")};t.event.bind(t.ownerDocument,\"keydown\",function(o){if(!(o.isDefaultPrevented&&o.isDefaultPrevented()||o.defaultPrevented)&&(i()||n())){var l=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(l){if(\"IFRAME\"===l.tagName)l=l.contentDocument.activeElement;else for(;l.shadowRoot;)l=l.shadowRoot.activeElement;if(b(l))return}var s=0,a=0;switch(o.which){case 37:s=o.metaKey?-t.contentWidth:o.altKey?-t.containerWidth:-30;break;case 38:a=o.metaKey?t.contentHeight:o.altKey?t.containerHeight:30;break;case 39:s=o.metaKey?t.contentWidth:o.altKey?t.containerWidth:30;break;case 40:a=o.metaKey?-t.contentHeight:o.altKey?-t.containerHeight:-30;break;case 32:a=o.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:a=t.containerHeight;break;case 34:a=-t.containerHeight;break;case 36:a=t.contentHeight;break;case 35:a=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==s||t.settings.suppressScrollY&&0!==a||(r.scrollTop-=a,r.scrollLeft+=s,T(t),e(s,a)&&o.preventDefault())}})},M=function(t){function e(e,r){var i=Math.floor(l.scrollTop),n=0===l.scrollTop,o=i+l.offsetHeight===l.scrollHeight,s=0===l.scrollLeft,a=l.scrollLeft+l.offsetWidth===l.scrollWidth;return!(Math.abs(r)>Math.abs(e)?n||o:s||a)||!t.settings.wheelPropagation}function r(t){var e=t.deltaX,r=-1*t.deltaY;return void 0!==e&&void 0!==r||(e=-1*t.wheelDeltaX/6,r=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,r*=10),e!==e&&r!==r&&(e=0,r=t.wheelDelta),t.shiftKey?[-r,-e]:[e,r]}function n(t,e,r){if(!R.isWebKit&&l.querySelector(\"select:focus\"))return!0;if(!l.contains(t))return!1;for(var n=t;n&&n!==l;){if(n.classList.contains(Y.element.consuming))return!0;var o=i(n);if([o.overflow,o.overflowX,o.overflowY].join(\"\").match(/(scroll|auto)/)){var s=n.scrollHeight-n.clientHeight;if(s>0&&!(0===n.scrollTop&&r>0||n.scrollTop===s&&r<0))return!0;var a=n.scrollWidth-n.clientWidth;if(a>0&&!(0===n.scrollLeft&&e<0||n.scrollLeft===a&&e>0))return!0}n=n.parentNode}return!1}function o(i){var o=r(i),s=o[0],a=o[1];if(!n(i.target,s,a)){var c=!1;t.settings.useBothWheelAxes?t.scrollbarYActive&&!t.scrollbarXActive?(a?l.scrollTop-=a*t.settings.wheelSpeed:l.scrollTop+=s*t.settings.wheelSpeed,c=!0):t.scrollbarXActive&&!t.scrollbarYActive&&(s?l.scrollLeft+=s*t.settings.wheelSpeed:l.scrollLeft-=a*t.settings.wheelSpeed,c=!0):(l.scrollTop-=a*t.settings.wheelSpeed,l.scrollLeft+=s*t.settings.wheelSpeed),T(t),c=c||e(s,a),c&&!i.ctrlKey&&(i.stopPropagation(),i.preventDefault())}}var l=t.element;void 0!==window.onwheel?t.event.bind(l,\"wheel\",o):void 0!==window.onmousewheel&&t.event.bind(l,\"mousewheel\",o)},k=function(t){function e(e,r){var i=Math.floor(h.scrollTop),n=h.scrollLeft,o=Math.abs(e),l=Math.abs(r);if(l>o){if(r<0&&i===t.contentHeight-t.containerHeight||r>0&&0===i)return 0===window.scrollY&&r>0&&R.isChrome}else if(o>l&&(e<0&&n===t.contentWidth-t.containerWidth||e>0&&0===n))return!0;return!0}function r(e,r){h.scrollTop-=r,h.scrollLeft-=e,T(t)}function n(t){return t.targetTouches?t.targetTouches[0]:t}function o(t){return(!t.pointerType||\"pen\"!==t.pointerType||0!==t.buttons)&&(!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||\"mouse\"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function l(t){if(o(t)){var e=n(t);u.pageX=e.pageX,u.pageY=e.pageY,p=(new Date).getTime(),null!==f&&clearInterval(f)}}function s(t,e,r){if(!h.contains(t))return!1;for(var n=t;n&&n!==h;){if(n.classList.contains(Y.element.consuming))return!0;var o=i(n);if([o.overflow,o.overflowX,o.overflowY].join(\"\").match(/(scroll|auto)/)){var l=n.scrollHeight-n.clientHeight;if(l>0&&!(0===n.scrollTop&&r>0||n.scrollTop===l&&r<0))return!0;var s=n.scrollLeft-n.clientWidth;if(s>0&&!(0===n.scrollLeft&&e<0||n.scrollLeft===s&&e>0))return!0}n=n.parentNode}return!1}function a(t){if(o(t)){var i=n(t),l={pageX:i.pageX,pageY:i.pageY},a=l.pageX-u.pageX,c=l.pageY-u.pageY;if(s(t.target,a,c))return;r(a,c),u=l;var h=(new Date).getTime(),f=h-p;f>0&&(d.x=a/f,d.y=c/f,p=h),e(a,c)&&t.preventDefault()}}function c(){t.settings.swipeEasing&&(clearInterval(f),f=setInterval(function(){return t.isInitialized?void clearInterval(f):d.x||d.y?Math.abs(d.x)<.01&&Math.abs(d.y)<.01?void clearInterval(f):(r(30*d.x,30*d.y),d.x*=.8,void(d.y*=.8)):void clearInterval(f)},10))}if(R.supportsTouch||R.supportsIePointer){var h=t.element,u={},p=0,d={},f=null;R.supportsTouch?(t.event.bind(h,\"touchstart\",l),t.event.bind(h,\"touchmove\",a),t.event.bind(h,\"touchend\",c)):R.supportsIePointer&&(window.PointerEvent?(t.event.bind(h,\"pointerdown\",l),t.event.bind(h,\"pointermove\",a),t.event.bind(h,\"pointerup\",c)):window.MSPointerEvent&&(t.event.bind(h,\"MSPointerDown\",l),t.event.bind(h,\"MSPointerMove\",a),t.event.bind(h,\"MSPointerUp\",c)))}},A=function(){return{handlers:[\"click-rail\",\"drag-thumb\",\"keyboard\",\"wheel\",\"touch\"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1}},P={\"click-rail\":S,\"drag-thumb\":H,keyboard:E,wheel:M,touch:k},C=function(t,e){var r=this;if(void 0===e&&(e={}),\"string\"==typeof t&&(t=document.querySelector(t)),!t||!t.nodeName)throw new Error(\"no element is specified to initialize PerfectScrollbar\");this.element=t,t.classList.add(Y.main),this.settings=A();for(var l in e)r.settings[l]=e[l];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var s=function(){return t.classList.add(Y.state.focus)},a=function(){return t.classList.remove(Y.state.focus)};this.isRtl=\"rtl\"===i(t).direction,this.isNegativeScroll=function(){var e=t.scrollLeft,r=null;return t.scrollLeft=-1,r=t.scrollLeft<0,t.scrollLeft=e,r}(),this.negativeScrollAdjustment=this.isNegativeScroll?t.scrollWidth-t.clientWidth:0,this.event=new x,this.ownerDocument=t.ownerDocument||document,this.scrollbarXRail=o(Y.element.rail(\"x\")),t.appendChild(this.scrollbarXRail),this.scrollbarX=o(Y.element.thumb(\"x\")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute(\"tabindex\",0),this.event.bind(this.scrollbarX,\"focus\",s),this.event.bind(this.scrollbarX,\"blur\",a),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var c=i(this.scrollbarXRail);this.scrollbarXBottom=parseInt(c.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=f(c.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=f(c.borderLeftWidth)+f(c.borderRightWidth),n(this.scrollbarXRail,{display:\"block\"}),this.railXMarginWidth=f(c.marginLeft)+f(c.marginRight),n(this.scrollbarXRail,{display:\"\"}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=o(Y.element.rail(\"y\")),t.appendChild(this.scrollbarYRail),this.scrollbarY=o(Y.element.thumb(\"y\")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute(\"tabindex\",0),this.event.bind(this.scrollbarY,\"focus\",s),this.event.bind(this.scrollbarY,\"blur\",a),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var h=i(this.scrollbarYRail);this.scrollbarYRight=parseInt(h.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=f(h.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?v(this.scrollbarY):null,this.railBorderYWidth=f(h.borderTopWidth)+f(h.borderBottomWidth),n(this.scrollbarYRail,{display:\"block\"}),this.railYMarginHeight=f(h.marginTop)+f(h.marginBottom),n(this.scrollbarYRail,{display:\"\"}),this.railYHeight=null,this.railYRatio=null,this.reach={x:t.scrollLeft<=0?\"start\":t.scrollLeft>=this.contentWidth-this.containerWidth?\"end\":null,y:t.scrollTop<=0?\"start\":t.scrollTop>=this.contentHeight-this.containerHeight?\"end\":null},this.isAlive=!0,this.settings.handlers.forEach(function(t){return P[t](r)}),this.lastScrollTop=Math.floor(t.scrollTop),this.lastScrollLeft=t.scrollLeft,this.event.bind(this.element,\"scroll\",function(t){return r.onScroll(t)}),T(this)};C.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,n(this.scrollbarXRail,{display:\"block\"}),n(this.scrollbarYRail,{display:\"block\"}),this.railXMarginWidth=f(i(this.scrollbarXRail).marginLeft)+f(i(this.scrollbarXRail).marginRight),this.railYMarginHeight=f(i(this.scrollbarYRail).marginTop)+f(i(this.scrollbarYRail).marginBottom),n(this.scrollbarXRail,{display:\"none\"}),n(this.scrollbarYRail,{display:\"none\"}),T(this),L(this,\"top\",0,!1,!0),L(this,\"left\",0,!1,!0),n(this.scrollbarXRail,{display:\"\"}),n(this.scrollbarYRail,{display:\"\"}))},C.prototype.onScroll=function(t){this.isAlive&&(T(this),L(this,\"top\",this.element.scrollTop-this.lastScrollTop),L(this,\"left\",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},C.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),s(this.scrollbarX),s(this.scrollbarY),s(this.scrollbarXRail),s(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},C.prototype.removePsClasses=function(){this.element.className=this.element.className.split(\" \").filter(function(t){return!t.match(/^ps([-_].+|)$/)}).join(\" \")},e.a=C},function(t,e){t.exports=function(t,e,r,i){var n,o=t=t||{},l=typeof t.default;\"object\"!==l&&\"function\"!==l||(n=t,o=t.default);var s=\"function\"==typeof o?o.options:o;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),r&&(s._scopeId=r),i){var a=s.computed||(s.computed={});Object.keys(i).forEach(function(t){var e=i[t];a[t]=function(){return e}})}return{esModule:n,exports:o,options:s}}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(t.$props.tagname,t._g({tag:\"section\",staticClass:\"ps-container\",on:{\"~mouseover\":function(e){return t.update(e)}}},t.$listeners),[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){function r(t,e){for(var r=0;r=0&&v.splice(e,1)}function l(t){var e=document.createElement(\"style\");return e.type=\"text/css\",n(t,e),e}function s(t,e){var r,i,n;if(e.singleton){var s=b++;r=f||(f=l(e)),i=a.bind(null,r,s,!1),n=a.bind(null,r,s,!0)}else r=l(e),i=c.bind(null,r),n=function(){o(r)};return i(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;i(t=e)}else n()}}function a(t,e,r,i){var n=r?\"\":i.css;if(t.styleSheet)t.styleSheet.cssText=g(e,n);else{var o=document.createTextNode(n),l=t.childNodes;l[e]&&t.removeChild(l[e]),l.length?t.insertBefore(o,l[e]):t.appendChild(o)}}function c(t,e){var r=e.css,i=e.media,n=e.sourceMap;if(i&&t.setAttribute(\"media\",i),n&&(r+=\"\\n/*# sourceURL=\"+n.sources[0]+\" */\",r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\"),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var h={},u=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},p=u(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),d=u(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),f=null,b=0,v=[];t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},void 0===e.singleton&&(e.singleton=p()),void 0===e.insertAt&&(e.insertAt=\"bottom\");var n=i(t);return r(n,e),function(t){for(var o=[],l=0;l time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\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!./Todo.vue?vue&type=style&index=0&id=53380294&lang=scss&scoped=true&\"","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"inherit\"}},[_c('div',{staticClass:\"body-content-overlay\",class:{'show': _vm.mqShallShowLeftSidebar},on:{\"click\":function($event){_vm.mqShallShowLeftSidebar = false}}}),_c('div',{staticClass:\"todo-app-list\"},[_c('div',{staticClass:\"app-fixed-search d-flex align-items-center\"},[_c('div',{staticClass:\"sidebar-toggle d-block d-lg-none ml-1\"},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"MenuIcon\",\"size\":\"21\"},on:{\"click\":function($event){_vm.mqShallShowLeftSidebar = true}}})],1),_c('div',{staticClass:\"d-flex align-content-center justify-content-between w-100\"},[_c('b-input-group',{staticClass:\"input-group-merge\"},[_c('b-input-group-prepend',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"text-muted\",attrs:{\"icon\":\"SearchIcon\"}})],1),_c('b-form-input',{attrs:{\"value\":_vm.searchQuery,\"placeholder\":\"Search task\"},on:{\"input\":_vm.updateRouteQuery}})],1)],1),_c('div',{staticClass:\"dropdown\"},[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"no-caret\":\"\",\"toggle-class\":\"p-0 mr-1\",\"right\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('feather-icon',{staticClass:\"align-middle text-body\",attrs:{\"icon\":\"MoreVerticalIcon\",\"size\":\"16\"}})]},proxy:true}])},[_c('b-dropdown-item',{on:{\"click\":_vm.resetSortAndNavigate}},[_vm._v(\" Reset Sort \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'title-asc'}) }}},[_vm._v(\" Sort A-Z \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'title-desc'}) }}},[_vm._v(\" Sort Z-A \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'assignee'}) }}},[_vm._v(\" Sort Assignee \")]),_c('b-dropdown-item',{attrs:{\"to\":{ name: _vm.$route.name, query: Object.assign({}, _vm.$route.query, {sort: 'due-date'}) }}},[_vm._v(\" Sort Due Date \")])],1)],1)]),_c('vue-perfect-scrollbar',{staticClass:\"todo-task-list-wrapper list-group scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[_c('draggable',{staticClass:\"todo-task-list media-list\",attrs:{\"handle\":\".draggable-task-handle\",\"tag\":\"ul\"},model:{value:(_vm.tasks),callback:function ($$v) {_vm.tasks=$$v},expression:\"tasks\"}},_vm._l((_vm.tasks),function(task){return _c('li',{key:task.id,staticClass:\"todo-item\",class:{ 'completed': task.isCompleted },on:{\"click\":function($event){return _vm.handleTaskClick(task)}}},[_c('feather-icon',{staticClass:\"draggable-task-handle d-inline\",attrs:{\"icon\":\"MoreVerticalIcon\"}}),_c('div',{staticClass:\"todo-title-wrapper\"},[_c('div',{staticClass:\"todo-title-area\"},[_c('div',{staticClass:\"title-wrapper\"},[_c('b-form-checkbox',{attrs:{\"checked\":task.isCompleted},on:{\"change\":function($event){return _vm.updateTaskIsCompleted(task)}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}}),_c('span',{staticClass:\"todo-title\"},[_vm._v(_vm._s(task.title))])],1)]),_c('div',{staticClass:\"todo-item-action\"},[_c('div',{staticClass:\"badge-wrapper mr-1\"},_vm._l((task.tags),function(tag){return _c('b-badge',{key:tag,staticClass:\"text-capitalize\",attrs:{\"pill\":\"\",\"variant\":(\"light-\" + (_vm.resolveTagVariant(tag)))}},[_vm._v(\" \"+_vm._s(tag)+\" \")])}),1),_c('small',{staticClass:\"text-nowrap text-muted mr-1\"},[_vm._v(_vm._s(_vm.formatDate(task.dueDate, { month: 'short', day: 'numeric'})))]),(task.assignee)?_c('b-avatar',{attrs:{\"size\":\"32\",\"src\":task.assignee.avatar,\"variant\":(\"light-\" + (_vm.resolveAvatarVariant(task.tags))),\"text\":_vm.avatarText(task.assignee.fullName)}}):_c('b-avatar',{attrs:{\"size\":\"32\",\"variant\":\"light-secondary\"}},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"size\":\"16\"}})],1)],1)])],1)}),0),_c('div',{staticClass:\"no-results\",class:{'show': !_vm.tasks.length}},[_c('h5',[_vm._v(\"No Items Found\")])])],1)],1),_c('todo-task-handler-sidebar',{attrs:{\"task\":_vm.task,\"clear-task-data\":_vm.clearTaskData},on:{\"remove-task\":_vm.removeTask,\"add-task\":_vm.addTask,\"update-task\":_vm.updateTask},model:{value:(_vm.isTaskHandlerSidebarActive),callback:function ($$v) {_vm.isTaskHandlerSidebarActive=$$v},expression:\"isTaskHandlerSidebarActive\"}}),_c('portal',{attrs:{\"to\":\"content-renderer-sidebar-left\"}},[_c('todo-left-sidebar',{class:{'show': _vm.mqShallShowLeftSidebar},attrs:{\"task-tags\":_vm.taskTags,\"is-task-handler-sidebar-active\":_vm.isTaskHandlerSidebarActive},on:{\"update:isTaskHandlerSidebarActive\":function($event){_vm.isTaskHandlerSidebarActive=$event},\"update:is-task-handler-sidebar-active\":function($event){_vm.isTaskHandlerSidebarActive=$event},\"close-left-sidebar\":function($event){_vm.mqShallShowLeftSidebar = false}}})],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('div',{staticClass:\"sidebar-left\"},[_c('div',{staticClass:\"sidebar\"},[_c('div',{staticClass:\"sidebar-content todo-sidebar\"},[_c('div',{staticClass:\"todo-app-menu\"},[_c('div',{staticClass:\"add-task\"},[_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}}],attrs:{\"variant\":\"primary\",\"block\":\"\"},on:{\"click\":function($event){_vm.$emit('update:is-task-handler-sidebar-active', true); _vm.$emit('close-left-sidebar')}}},[_vm._v(\" Add Task \")])],1),_c('vue-perfect-scrollbar',{staticClass:\"sidebar-menu-list scroll-area\",attrs:{\"settings\":_vm.perfectScrollbarSettings}},[_c('b-list-group',{staticClass:\"list-group-filters\"},_vm._l((_vm.taskFilters),function(filter){return _c('b-list-group-item',{key:filter.title + _vm.$route.path,attrs:{\"to\":filter.route,\"active\":_vm.isDynamicRouteActive(filter.route)},on:{\"click\":function($event){return _vm.$emit('close-left-sidebar')}}},[_c('feather-icon',{staticClass:\"mr-75\",attrs:{\"icon\":filter.icon,\"size\":\"18\"}}),_c('span',{staticClass:\"align-text-bottom line-height-1\"},[_vm._v(_vm._s(filter.title))])],1)}),1),_c('div',{staticClass:\"mt-3 px-2 d-flex justify-content-between\"},[_c('h6',{staticClass:\"section-label mb-1\"},[_vm._v(\" Tags \")]),_c('feather-icon',{attrs:{\"icon\":\"PlusIcon\"}})],1),_c('b-list-group',{staticClass:\"list-group-labels\"},_vm._l((_vm.taskTags),function(tag){return _c('b-list-group-item',{key:tag.title + _vm.$route.path,attrs:{\"to\":tag.route,\"active\":_vm.isDynamicRouteActive(tag.route)},on:{\"click\":function($event){return _vm.$emit('close-left-sidebar')}}},[_c('span',{staticClass:\"bullet bullet-sm mr-1\",class:(\"bullet-\" + (tag.color))}),_c('span',[_vm._v(_vm._s(tag.title))])])}),1)],1)],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TodoLeftSidebar.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!./TodoLeftSidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TodoLeftSidebar.vue?vue&type=template&id=288a3f66&\"\nimport script from \"./TodoLeftSidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./TodoLeftSidebar.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","import axios from '@axios'\n\nexport default {\n namespaced: true,\n state: {},\n getters: {},\n mutations: {},\n actions: {\n fetchTasks(ctx, payload) {\n return new Promise((resolve, reject) => {\n axios\n .get('/apps/todo/tasks', { params: payload })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n addTask(ctx, taskData) {\n return new Promise((resolve, reject) => {\n axios\n .post('/apps/todo/tasks', { task: taskData })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n updateTask(ctx, { task }) {\n return new Promise((resolve, reject) => {\n axios\n .post(`/apps/todo/tasks/${task.id}`, { task })\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n removeTask(ctx, { id }) {\n return new Promise((resolve, reject) => {\n axios\n .delete(`/apps/todo/tasks/${id}`)\n .then(response => resolve(response))\n .catch(error => reject(error))\n })\n },\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-sidebar',{attrs:{\"id\":\"sidebar-task-handler\",\"sidebar-class\":\"sidebar-lg\",\"visible\":_vm.isTaskHandlerSidebarActive,\"bg-variant\":\"white\",\"shadow\":\"\",\"backdrop\":\"\",\"no-header\":\"\",\"right\":\"\"},on:{\"change\":function (val) { return _vm.$emit('update:is-task-handler-sidebar-active', val); },\"hidden\":_vm.clearForm},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hide = ref.hide;\nreturn [_c('div',{staticClass:\"d-flex justify-content-between align-items-center content-sidebar-header px-2 py-1\"},[(_vm.taskLocal.id)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":_vm.taskLocal.isCompleted ? 'outline-success' : 'outline-secondary'},on:{\"click\":function($event){_vm.taskLocal.isCompleted = !_vm.taskLocal.isCompleted}}},[_vm._v(\" \"+_vm._s(_vm.taskLocal.isCompleted ? 'Completed' : 'Mark Complete')+\" \")]):_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Add Task \")]),_c('div',[_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.taskLocal.id),expression:\"taskLocal.id\"}],staticClass:\"cursor-pointer\",attrs:{\"icon\":\"TrashIcon\"},on:{\"click\":function($event){_vm.$emit('remove-task'); hide();}}}),_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",class:{ 'text-warning': _vm.taskLocal.isImportant },attrs:{\"icon\":\"StarIcon\",\"size\":\"16\"},on:{\"click\":function($event){_vm.taskLocal.isImportant = !_vm.taskLocal.isImportant}}}),_c('feather-icon',{staticClass:\"ml-1 cursor-pointer\",attrs:{\"icon\":\"XIcon\",\"size\":\"16\"},on:{\"click\":hide}})],1)],1),_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)},\"reset\":function($event){$event.preventDefault();return _vm.resetForm($event)}}},[_c('validation-provider',{attrs:{\"name\":\"Title\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Title\",\"label-for\":\"task-title\"}},[_c('b-form-input',{attrs:{\"id\":\"task-title\",\"autofocus\":\"\",\"state\":_vm.getValidationState(validationContext),\"trim\":\"\",\"placeholder\":\"Task Title\"},model:{value:(_vm.taskLocal.title),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"title\", $$v)},expression:\"taskLocal.title\"}}),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)}),_c('b-form-group',{attrs:{\"label\":\"Assignee\",\"label-for\":\"assignee\"}},[_c('v-select',{staticClass:\"assignee-selector\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.assigneeOptions,\"label\":\"fullName\",\"input-id\":\"assignee\"},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar avatar = ref.avatar;\nvar fullName = ref.fullName;\nreturn [_c('b-avatar',{attrs:{\"size\":\"26\",\"src\":avatar}}),_c('span',{staticClass:\"ml-50 d-inline-block align-middle\"},[_vm._v(\" \"+_vm._s(fullName))])]}},{key:\"selected-option\",fn:function(ref){\nvar avatar = ref.avatar;\nvar fullName = ref.fullName;\nreturn [_c('b-avatar',{attrs:{\"size\":\"26\",\"src\":avatar,\"variant\":(\"light-\" + (_vm.resolveAvatarVariant(_vm.taskLocal.tags))),\"text\":_vm.avatarText(fullName)}}),_c('span',{staticClass:\"ml-50 d-inline-block align-middle\"},[_vm._v(\" \"+_vm._s(fullName))])]}}],null,true),model:{value:(_vm.taskLocal.assignee),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"assignee\", $$v)},expression:\"taskLocal.assignee\"}})],1),_c('validation-provider',{attrs:{\"name\":\"Due Date\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Due Date\",\"label-for\":\"due-date\"}},[_c('flat-pickr',{staticClass:\"form-control\",model:{value:(_vm.taskLocal.dueDate),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"dueDate\", $$v)},expression:\"taskLocal.dueDate\"}}),_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.getValidationState(validationContext)}},[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)}),_c('b-form-group',{attrs:{\"label\":\"Tag\",\"label-for\":\"tag\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"multiple\":\"\",\"close-on-select\":false,\"options\":_vm.tagOptions,\"reduce\":function (option) { return option.value; },\"input-id\":\"tags\"},model:{value:(_vm.taskLocal.tags),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"tags\", $$v)},expression:\"taskLocal.tags\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Description\",\"label-for\":\"task-description\"}},[_c('quill-editor',{staticClass:\"border-bottom-0\",attrs:{\"id\":\"quil-content\",\"options\":_vm.editorOption},model:{value:(_vm.taskLocal.description),callback:function ($$v) {_vm.$set(_vm.taskLocal, \"description\", $$v)},expression:\"taskLocal.description\"}}),_c('div',{staticClass:\"d-flex justify-content-end border-top-0\",attrs:{\"id\":\"quill-toolbar\"}},[_c('button',{staticClass:\"ql-bold\"}),_c('button',{staticClass:\"ql-italic\"}),_c('button',{staticClass:\"ql-underline\"}),_c('button',{staticClass:\"ql-align\"}),_c('button',{staticClass:\"ql-link\"})])],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mr-2\",attrs:{\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\" \"+_vm._s(_vm.taskLocal.id ? 'Update' : 'Add ')+\" \")]),_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(\" Reset \")])],1)],1)]}}],null,true)})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, watch } from '@vue/composition-api'\n// import store from '@/store'\n\nexport default function useTaskHandler(props, emit) {\n // ------------------------------------------------\n // taskLocal\n // ------------------------------------------------\n const taskLocal = ref(JSON.parse(JSON.stringify(props.task.value)))\n const resetTaskLocal = () => {\n taskLocal.value = JSON.parse(JSON.stringify(props.task.value))\n }\n watch(props.task, () => {\n resetTaskLocal()\n })\n\n // ------------------------------------------------\n // isEventHandlerSidebarActive\n // * Clear form if sidebar is closed\n // ! We can hide it using @hidden event\n // ------------------------------------------------\n // watch(props.isEventHandlerSidebarActive, val => {\n // // ? Don't reset event till transition is finished\n // if (!val) {\n // setTimeout(() => {\n // clearForm.value()\n // }, 350)\n // }\n // })\n\n const onSubmit = () => {\n const taskData = JSON.parse(JSON.stringify(taskLocal))\n\n // * If event has id => Edit Event\n // Emit event for add/update event\n if (props.task.value.id) emit('update-task', taskData.value)\n else emit('add-task', taskData.value)\n\n // Close sidebar\n emit('update:is-task-handler-sidebar-active', false)\n }\n\n // *===============================================---*\n // *--------- UI ---------------------------------------*\n // *===============================================---*\n\n // ------------------------------------------------\n // guestOptions\n // ------------------------------------------------\n\n /* eslint-disable global-require */\n const assigneeOptions = [\n { avatar: require('@/assets/images/avatars/1-small.png'), fullName: 'Jane Foster' },\n { avatar: require('@/assets/images/avatars/3-small.png'), fullName: 'Donna Frank' },\n { avatar: require('@/assets/images/avatars/5-small.png'), fullName: 'Gabrielle Robertson' },\n { avatar: require('@/assets/images/avatars/7-small.png'), fullName: 'Lori Spears' },\n { avatar: require('@/assets/images/avatars/9-small.png'), fullName: 'Sandy Vega' },\n { avatar: require('@/assets/images/avatars/11-small.png'), fullName: 'Cheryl May' },\n ]\n /* eslint-enable global-require */\n\n const resolveAvatarVariant = tags => {\n if (tags.includes('high')) return 'primary'\n if (tags.includes('medium')) return 'warning'\n if (tags.includes('low')) return 'success'\n if (tags.includes('update')) return 'danger'\n if (tags.includes('team')) return 'info'\n return 'primary'\n }\n\n const tagOptions = [\n { label: 'Team', value: 'team' },\n { label: 'Low', value: 'low' },\n { label: 'Medium', value: 'medium' },\n { label: 'High', value: 'high' },\n { label: 'Update', value: 'update' },\n ]\n\n return {\n taskLocal,\n resetTaskLocal,\n\n // UI\n assigneeOptions,\n resolveAvatarVariant,\n tagOptions,\n onSubmit,\n }\n}\n","\n\n\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!./TodoTaskHandlerSidebar.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!./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TodoTaskHandlerSidebar.vue?vue&type=template&id=6b93e4ba&scoped=true&\"\nimport script from \"./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./TodoTaskHandlerSidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TodoTaskHandlerSidebar.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TodoTaskHandlerSidebar.vue?vue&type=style&index=1&id=6b93e4ba&lang=scss&scoped=true&\"\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 \"6b93e4ba\",\n null\n \n)\n\nexport default component.exports","\n\n\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!./Todo.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!./Todo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Todo.vue?vue&type=template&id=53380294&scoped=true&\"\nimport script from \"./Todo.vue?vue&type=script&lang=js&\"\nexport * from \"./Todo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Todo.vue?vue&type=style&index=0&id=53380294&lang=scss&scoped=true&\"\nimport style1 from \"./Todo.vue?vue&type=style&index=1&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 \"53380294\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","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});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e),n.d(e,\"Component\",(function(){return c})),n.d(e,\"Plugin\",(function(){return p}));var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import router from '@/router'\n// eslint-disable-next-line object-curly-newline\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\n\nexport const isObject = obj => typeof obj === 'object' && obj !== null\n\nexport const isToday = date => {\n const today = new Date()\n return (\n /* eslint-disable operator-linebreak */\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n /* eslint-enable */\n )\n}\n\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\n\n// ? Light and Dark variant is not included\n// prettier-ignore\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\n\nexport const isDynamicRouteActive = route => {\n const { route: resolvedRoute } = router.resolve(route)\n return resolvedRoute.path === router.currentRoute.path\n}\n\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\nexport const useRouter = () => {\n const vm = getCurrentInstance().proxy\n const state = reactive({\n route: vm.$route,\n })\n\n watch(\n () => vm.$route,\n r => {\n state.route = r\n },\n )\n\n return { ...toRefs(state), router: vm.$router }\n}\n\n/**\n * This is just enhancement over Object.extend [Gives deep extend]\n * @param {target} a Object which contains values to be overridden\n * @param {source} b Object which contains values to override\n */\n// export const objectExtend = (a, b) => {\n// // Don't touch 'null' or 'undefined' objects.\n// if (a == null || b == null) {\n// return a\n// }\n\n// Object.keys(b).forEach(key => {\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = objectExtend(a[key], b[key])\n// }\n// } else {\n// // eslint-disable-next-line no-param-reassign\n// a[key] = b[key]\n// }\n// })\n\n// return a\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, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_TEXT,\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(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\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, mergeData } from '../../vue';\nimport { NAME_LIST_GROUP_ITEM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { isTag } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar actionTags = ['a', 'router-link', 'button', 'b-link']; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n action: makeProp(PROP_TYPE_BOOLEAN, false),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_LIST_GROUP_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BListGroupItem = /*#__PURE__*/Vue.extend({\n name: NAME_LIST_GROUP_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var button = props.button,\n variant = props.variant,\n active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = button ? 'button' : !link ? props.tag : BLink;\n var action = !!(props.action || link || button || arrayIncludes(actionTags, props.tag));\n var attrs = {};\n var itemProps = {};\n\n if (isTag(tag, 'button')) {\n if (!data.attrs || !data.attrs.type) {\n // Add a type for button is one not provided in passed attributes\n attrs.type = 'button';\n }\n\n if (props.disabled) {\n // Set disabled attribute if button and disabled\n attrs.disabled = true;\n }\n } else {\n itemProps = pluckProps(linkProps, props);\n }\n\n return h(tag, mergeData(data, {\n attrs: attrs,\n props: itemProps,\n staticClass: 'list-group-item',\n class: (_class = {}, _defineProperty(_class, \"list-group-item-\".concat(variant), variant), _defineProperty(_class, 'list-group-item-action', action), _defineProperty(_class, \"active\", active), _defineProperty(_class, \"disabled\", disabled), _class)\n }), children);\n }\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});","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_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\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\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\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, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\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 var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});"],"sourceRoot":""}