{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","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?40b8","webpack:///./src/@core/comp-functions/ui/app.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.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/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./src/@core/comp-functions/forms/form-validation.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?7785","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?ade8","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./src/views/apps/todo/Todo.vue?b6bd","webpack:///./node_modules/vee-validate/dist/rules.js","webpack:///./src/@core/utils/validations/validators.js","webpack:///./src/@core/utils/validations/validations.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///./node_modules/vue-perfect-scrollbar/dist/index.js","webpack:///./node_modules/core-js/modules/es.array.join.js","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?cc33","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue?c2b0","webpack:///src/views/apps/todo/TodoLeftSidebar.vue","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue?6c63","webpack:///./src/views/apps/todo/TodoLeftSidebar.vue","webpack:///./src/views/apps/todo/todoStoreModule.js","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?e2e7","webpack:///./src/views/apps/todo/useTaskHandler.js","webpack:///src/views/apps/todo/TodoTaskHandlerSidebar.vue","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue?007c","webpack:///./src/views/apps/todo/TodoTaskHandlerSidebar.vue","webpack:///src/views/apps/todo/Todo.vue","webpack:///./src/views/apps/todo/Todo.vue?0e08","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/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":["formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","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","result","n","Infinity","RangeError","id","inline","novalidate","validated","BForm","children","class","attrs","useResponsiveAppLeftSidebarVisibility","mqShallShowLeftSidebar","ref","currentBreakPoint","store","getters","watch","oldVal","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","redefine","anObject","fails","flags","TO_STRING","RegExpPrototype","RegExp","prototype","nativeToString","NOT_GENERIC","call","INCORRECT_NAME","R","p","rf","f","undefined","unsafe","flush","horizontal","tag","BListGroup","componentData","staticClass","BInputGroupPrepend","append","classof","TypeError","_makeModelMixin","type","defaultValue","event","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","formatter","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","mixins","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","newValue","stringifyValue","modifiedValue","clearDebounce","created","$_inputDebounceTimer","mounted","$on","beforeDestroy","clearTimeout","formatValue","force","updateValue","_this","doUpdate","$emit","$input","setTimeout","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","focus","disabled","$el","blur","isText","BInputGroupAddon","TYPES","list","max","min","noWheel","step","BFormInput","localType","computedAttrs","form","required","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","on","onWheelFocus","onWheelBlur","document","stopWheel","domProps","formValidation","resetFormData","clearFormData","refFormObserver","resetObserver","reset","getValidationState","dirty","fieldRequired","changed","valid","resetForm","nextTick","clearForm","fixRegExpWellKnownSymbolLogic","toObject","toLength","advanceStringIndex","regExpExec","Math","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","regexp","indexOf","res","done","rx","S","functionalReplace","global","fullUnicode","unicode","lastIndex","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","index","captures","j","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","m","match","ch","capture","appendHtml","prepend","prependHtml","size","BInputGroup","slots","scopedSlots","$scopedSlots","$slots","slotScope","$prepend","hasPrependSlot","$append","hasAppendSlot","role","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","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","round","hourIncrement","ignoredFocusElements","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","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","bool","fn","wait","t","arrayify","Array","toggleClass","elem","className","classList","add","remove","createElement","content","e","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","composedPath","path","error","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","parseFloat","H","J","K","getHours","test","M","shortMonth","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","setFullYear","Z","ISODate","d","minutes","setMinutes","l","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","parseDate","ops","matchIndex","regexStr","token","isBackSlash","escaped","exec","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","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","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","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","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","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","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","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__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","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","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","inputType","mobileFormatStr","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","args","__assign","hasOwnProperty","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","next","rejected","then","__generator","g","label","sent","trys","verb","Symbol","iterator","v","op","pop","__spreadArrays","il","r","jl","isNullOrUndefined","isEmptyArray","isArray","isObject","isRefEqual","lhs","rhs","isEqual","every","isSpecified","isCallable","isLocator","__locatorRef","findIndex","arrayLike","predicate","toArray","find","idx","includes","collection","item","_copyArray","values","merge","createFlags","untouched","touched","pristine","invalid","pending","passed","failed","cancelled","_i","later","timeout","interpolate","template","RULES","normalizeSchema","schema","params","param","RuleContainer","computesRequired","isLazy","isRequireRule","getRuleDefinition","ruleName","guardExtend","validate","validator","DEFAULT_CONFIG","defaultMessage","skipOptional","classes","bails","useConstraintAttrs","currentConfig","getConfig","setConfig","newConf","normalizeRules","rules","_$$isNormalized","prev","curr","buildParams","parsedRule","parseRule","provided","ruleSchema","definedParams","lastDefinedParam_1","isTarget","createLocator","cast","castFn","locator","crossTable","extractLocators","shouldBail","skipIfEmpty","field","errors","failedRules","regenerateMap","forceRequired","names","customMessages","_validate","msg","_b","isInitial","_c","shouldSkip","_d","_shouldSkip","_test","requireRules","isEmpty","isEmptyAndOptional","isRequired","normalizedValue","values_1","castValue","fillTargetValues","_field_","_value_","_rule_","_generateFieldError","ruleTargets","_getRuleTargets","_getUserTargets","userTargets","userMessage","_normalizeMessage","numTargets","ruleConfig","name_1","targetPart","normalize","aggressive","eager","passive","modes","EVENT_BUS","localeChanged","DICTIONARY","Dictionary","dictionary","_e","_f","_g","_h","fieldContainer","fields","messageContainer","messages","hasRule","isEvent","Event","srcElement","normalizeEventValue","files","_vModifiers","valueAsNumber","trimmedValue","isTextInput","vnode","elm","findModel","nonStandardVNodeData","model","directives","findValue","findModelConfig","componentOptions","propsData","propsDataWithValue","extractChildren","findInputNodes","candidates","Ctor","mergeVNodeListeners","eventName","fns","invoker","addNativeNodeListener","addComponentNodeListener","listeners","addVNodeListener","getInputEventName","event_1","modifiers","isHTMLNode","resolveTextualRules","email","regex","maxlength","minlength","min_value","Number","max_value","resolveRules","htmlTags","normalizeChildren","context","slotProps","shouldValidate","_ignoreImmediate","immediate","normalizedEvents","_needsValidation","initialized","createValidationCtx","ariaInput","ariaMsg","onRenderUpdate","vm","initialValue","validateNow","triggerThreadSafeValidation","validateSilent","$once","computeModeSetting","compute","pendingPromise","_pendingValidation","applyResult","createCommonHandlers","$veeOnInput","syncValue","setFlags","$veeOnBlur","onValidate","$veeHandler","$veeDebounce","$nextTick","_pendingReset","addListeners","_inputEventName","PROVIDER_COUNTER","fieldName","defaultValues","isActive","ValidationProvider","inject","$_veeObserver","$vnode","createObserver","vid","Function","Boolean","slim","detectInput","deep","fieldDeps","normalizedRules","deps","dep","depName","watchCrossFieldDep","_resolvedRules","computeClassObj","onLocaleChanged","_regenerateMap","errors_1","failedRules_1","$off","registerField","inputs","resolved","unobserve","flag","createLookup","setErrors","updateRenderingContextRefs","_loop_1","cls","providers","refs","reduced","extractId","providedId","observe","withHooks","_veeWatchers","$watch","FLAGS_STRATEGIES","OBSERVER_COUNTER","data$1","createObserverFlags","observers","provideSelf","ValidationObserver","provide","register","computeObserverState","unregister","prepareSlotProps","$listeners","subscriber","kind","o","provider","$delete","validateWithInfo","silent","isValid","all","obs","handleSubmit","cb","errorArr","observer","passes","vms","method","alpha","cs","da","de","es","fa","fr","lt","nl","hu","pl","pt","ro","ru","sk","sr","sv","tr","uk","ar","az","alphanumeric","alphaDash","loc","alpha$1","validate$1","params$1","alpha_dash","validate$2","params$2","alpha_num","validate$4","params$4","between","validate$5","params$5","confirmed","validate$6","strVal","params$6","digits","validate$8","multiple","re","emailStr","params$8","validate$d","integer","validate$g","params$b","validate$k","params$e","validate$n","params$g","validate$o","allowFalse","params$h","validatorPositive","validatorPassword","password","regExp","validPassword","validatorCreditCard","creditnum","cRegExp","validCreditCard","validatorUrlValidator","rule_required","rule_email","rule_min","rule_confirmed","rule_regex","rule_between","rule_alpha","rule_integer","rule_digits","rule_alpha_dash","alphaNum","rule_alpha_num","rule_length","url","root","factory","modules","installedModules","__webpack_require__","moduleId","getter","__esModule","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","query","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","__","constructor","ParchmentError","_super","attributes","tags","types","BlotClass","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","tagName","TYPE","Definitions","Definition","blotName","attrName","keyName","tagNames","diff","equal","NULL_CHARACTER","fromCharCode","Delta","insert","text","newOp","retain","lastOp","unshift","chop","partition","initial","changeLength","delete","start","end","iter","hasNext","nextOp","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","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","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","attribute","BLOCK_ATTRIBUTE","def","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","descendants","leaf","lines","shift","tail","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","_slicedToArray","sliceIterator","_arr","_n","_s","_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","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","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","height","getLength","_overload7","_overload8","getContents","getFormat","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","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","log","_len2","_key2","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","attributeBit","ATTRIBUTE","canAdd","Code","_block","_block2","_Inline","CodeBlock","_Block","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","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","bullet","_toConsumableArray","arr2","Selection","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","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","takeRecords","SHORTKEY","_quill","_quill2","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","metaKey","altKey","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","binding","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","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","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","togglePicker","escape","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","trigger","_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","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","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","isFinite","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","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","install","quillEditor","globalOptions","boundary","script","color","background","font","_options","_content","defaultOptions","initialize","pasteHTML","setText","staticRenderFns","_compiled","_scopeId","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","$createElement","_self","_t","_v","settings","tagname","ps","__init","__uninit","$route","$isServer","updated","state","scrolling","isAlive","scrollingThreshold","CustomEvent","initCustomEvent","reach","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","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","unbindAll","eventElements","eventElement","L","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","wheel","touch","C","isNegativeScroll","marginRight","borderTopWidth","borderBottomWidth","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","$props","css","media","sourceMap","singleton","styleSheet","cssText","btoa","unescape","encodeURIComponent","DEBUG","locals","$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","forced","plain","formCustomMixin","custom","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","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","visible","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","modified","modifyOption","getEventProperties","eventProperties","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","bubbles","cancelable","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","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","items","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","_vm","staticStyle","$event","searchQuery","updateRouteQuery","_u","proxy","resetSortAndNavigate","perfectScrollbarSettings","checkMove","$$v","tasks","expression","_l","task","isCompleted","handleTaskClick","updateTaskIsCompleted","nativeOn","resolveTagVariant","dueDate","assignee","avatar","resolveAvatarVariant","fullName","clearTaskData","removeTask","addTask","updateTask","isTaskHandlerSidebarActive","taskTags","rawName","route","isDynamicRouteActive","Ripple","BButton","BListGroupItem","VuePerfectScrollbar","setup","taskFilters","namespaced","actions","fetchTasks","payload","axios","response","catch","taskData","post","taskLocal","isImportant","onSubmit","validationContext","$set","$store","appConfig","isRTL","assigneeOptions","tagOptions","editorOption","useTaskHandler","resetTaskLocal","require","BSidebar","BFormGroup","BAvatar","BFormInvalidFeedback","vSelect","flatPickr","BDropdown","BDropdownItem","BFormCheckbox","BBadge","TodoLeftSidebar","TodoTaskHandlerSidebar","sortOptions","sortBy","currentRouteQuery","router","description","isDeleted","blankTask","q","currentRoute","draggedContext","thisNumberValue","nativeToFixed","FORCED","fractionDigits","z","fractDigits","sign","multiply","c2","divide","dataToString","__WEBPACK_EXTERNAL_MODULE_a352__","toStringTag","LIBRARY","$export","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","IteratorPrototype","getMethod","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","defined","that","at","sticky","$keys","enumBugKeys","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","nativeMethod","arg2","forceStringMethod","strfn","rxfn","string","arg","cof","ARG","tryGet","B","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","gt","contentWindow","write","uid","USE_SYMBOL","$exports","INCLUDES","createDesc","ObjectProto","bitmap","MATCH","regexpFlags","nativeExec","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","$replace","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","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","_computeIndexes","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","getSlot","slot","scopedSlot","computeChildrenAndOffsets","headerOffset","footer","getComponentAttributes","$attrs","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","draggableComponent","inheritAttrs","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","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","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","ariaLabel","ariaLabelledby","backdrop","backdropVariant","bgVariant","bodyClass","closeLabel","footerClass","headerClass","noCloseOnBackdrop","noCloseOnEsc","noCloseOnRouteChange","noEnforceFocus","noHeader","noHeaderClose","noSlide","shadow","sidebarClass","textVariant","zIndex","renderHeaderTitle","normalizeSlot","renderHeaderClose","renderHeader","$content","$title","$close","renderBody","renderFooter","$footer","renderContent","$header","renderBackdrop","localShow","onBackdropClick","transitionProps","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","hasTitle","hasNormalizedSlot","titleId","bvAttrs","emitState","fullPath","$_returnFocusEl","listenOnRoot","handleToggle","handleSync","emitSync","emitOnRoot","onKeydown","onTopTrapFocus","tabables","enforceFocus","onBottomTrapFocus","onBeforeEnter","onAfterEnter","onAfterLeave","$sidebar","beforeEnter","afterEnter","afterLeave","$backdrop","noFade","$tabTrapTop","$tabTrapBottom","keydown","fp","getElem","fpInput","watchDisabled","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","bvGroup","isChecked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","today","resolvedRoute","useRouter","getCurrentInstance","reactive","toRefs","$router","BInputGroupAppend","BInputGroupText","actionTags","linkProps","action","variant","_class","itemProps","_methods","buttonVariant","formRadioCheckMixin","isBtnMode","isPlain","isCustom","isSwitch","switches","switch","isInline","isDisabled","computedName","groupName","computedForm","computedSize","computedState","computedButtonVariant","buttonClasses","handleFocus","$button","$label","for","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","onClick","_class2","$badge","hasBadgeSlot","badgeText","pill"],"mappings":"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","file":"js/chunk-7ff8541f.ac3d08bb.js","sourcesContent":["import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\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, 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'\r\n\r\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\r\n\r\nexport const title = (value, replacer = ' ') => {\r\n if (!value) return ''\r\n const str = value.toString()\r\n\r\n const arr = str.split(replacer)\r\n const capitalizedArray = []\r\n arr.forEach(word => {\r\n const capitalized = word.charAt(0).toUpperCase() + word.slice(1)\r\n capitalizedArray.push(capitalized)\r\n })\r\n return capitalizedArray.join(' ')\r\n}\r\n\r\nexport const avatarText = value => {\r\n if (!value) return ''\r\n const nameArray = value.split(' ')\r\n return nameArray.map(word => word.charAt(0).toUpperCase()).join('')\r\n}\r\n\r\n/**\r\n * Format and return date in Humanize format\r\n * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\r\n if (!value) return value\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n/**\r\n * Return short human friendly month representation of date\r\n * Can also convert date to only time if date is of today (Better UX)\r\n * @param {String} value date to format\r\n * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current\r\n */\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value)\r\n let formatting = { month: 'short', day: 'numeric' }\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' }\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\r\n}\r\n\r\n// Strip all the tags from markup and return plain text\r\nexport const filterTags = value => value.replace(/<\\/?[^>]+(>|$)/g, '')\r\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'\r\nimport { ref, watch, computed } from '@vue/composition-api'\r\n\r\nexport const useResponsiveAppLeftSidebarVisibility = () => {\r\n const mqShallShowLeftSidebar = ref(false)\r\n // Close Active Sidebars and other stuff when going in large device\r\n const currentBreakPoint = computed(() => store.getters['app/currentBreakPoint'])\r\n watch(currentBreakPoint, (val, oldVal) => {\r\n // Reset chats & contacts left sidebar\r\n if (oldVal === 'md' && val === 'lg') mqShallShowLeftSidebar.value = false\r\n })\r\n\r\n return {\r\n mqShallShowLeftSidebar,\r\n }\r\n}\r\n\r\nexport const _ = {}\r\n","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_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","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 { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\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({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\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});","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_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","import { ref, nextTick } from '@vue/composition-api'\r\n\r\n// ===========================================================\r\n// ! This is coupled with \"veeValidate\" plugin\r\n// ===========================================================\r\n\r\nexport default function formValidation(resetFormData, clearFormData = () => {}) {\r\n // ------------------------------------------------\r\n // refFormObserver\r\n // ! This is for veeValidate Observer\r\n // * Used for veeValidate form observer\r\n // ------------------------------------------------\r\n const refFormObserver = ref(null)\r\n\r\n // ------------------------------------------------\r\n // resetObserver\r\n // ! This function is coupled with veeValidate\r\n // * It resets form observer\r\n // ------------------------------------------------\r\n const resetObserver = () => {\r\n refFormObserver.value.reset()\r\n }\r\n\r\n // ------------------------------------------------\r\n // getValidationState\r\n // ! This function is coupled with veeValidate\r\n // * It returns true/false based on validation\r\n // ------------------------------------------------\r\n // eslint-disable-next-line object-curly-newline\r\n const getValidationState = ({ dirty, validated, required: fieldRequired, changed, valid = null }) => {\r\n const result = dirty || validated ? valid : null\r\n return !fieldRequired && !changed ? null : result\r\n }\r\n\r\n // ------------------------------------------------\r\n // resetForm\r\n // ! This function is coupled with veeValidate\r\n // * This uses resetFormData arg to reset form data\r\n // ------------------------------------------------\r\n const resetForm = () => {\r\n resetFormData()\r\n nextTick(() => {\r\n resetObserver()\r\n })\r\n }\r\n\r\n // ------------------------------------------------\r\n // clearForm\r\n // ! This function is coupled with veeValidate\r\n // * This uses clearFormData arg to reset form data\r\n // ------------------------------------------------\r\n const clearForm = () => {\r\n clearFormData()\r\n nextTick(() => {\r\n resetObserver()\r\n })\r\n }\r\n\r\n return {\r\n refFormObserver,\r\n resetObserver,\r\n getValidationState,\r\n resetForm,\r\n clearForm,\r\n }\r\n}\r\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\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\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\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 = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.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 if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\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\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\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 nativeReplace.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","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 * vee-validate v3.4.5\n * (c) 2020 Abdelrahman Awad\n * @license MIT\n */\nimport Vue from 'vue';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nfunction isNaN(value) {\r\n // NaN is the one value that does not equal itself.\r\n // eslint-disable-next-line\r\n return value !== value;\r\n}\r\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n return Array.isArray(arr) && arr.length === 0;\r\n}\r\nvar isObject = function (obj) {\r\n return obj !== null && obj && typeof obj === 'object' && !Array.isArray(obj);\r\n};\r\n/**\r\n * A reference comparison function with NaN support\r\n */\r\nfunction isRefEqual(lhs, rhs) {\r\n if (isNaN(lhs) && isNaN(rhs)) {\r\n return true;\r\n }\r\n return lhs === rhs;\r\n}\r\n/**\r\n * Shallow object comparison.\r\n */\r\nfunction isEqual(lhs, rhs) {\r\n if (lhs instanceof RegExp && rhs instanceof RegExp) {\r\n return isEqual(lhs.source, rhs.source) && isEqual(lhs.flags, rhs.flags);\r\n }\r\n if (Array.isArray(lhs) && Array.isArray(rhs)) {\r\n if (lhs.length !== rhs.length)\r\n return false;\r\n for (var i = 0; i < lhs.length; i++) {\r\n if (!isEqual(lhs[i], rhs[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // if both are objects, compare each key recursively.\r\n if (isObject(lhs) && isObject(rhs)) {\r\n return (Object.keys(lhs).every(function (key) {\r\n return isEqual(lhs[key], rhs[key]);\r\n }) &&\r\n Object.keys(rhs).every(function (key) {\r\n return isEqual(lhs[key], rhs[key]);\r\n }));\r\n }\r\n return isRefEqual(lhs, rhs);\r\n}\r\n// Checks if a given value is not an empty string or null or undefined.\r\nfunction isSpecified(val) {\r\n if (val === '') {\r\n return false;\r\n }\r\n return !isNullOrUndefined(val);\r\n}\r\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\r\nfunction isLocator(value) {\r\n return isCallable(value) && !!value.__locatorRef;\r\n}\n\nfunction findIndex(arrayLike, predicate) {\r\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n if (isCallable(array.findIndex)) {\r\n return array.findIndex(predicate);\r\n }\r\n /* istanbul ignore next */\r\n for (var i = 0; i < array.length; i++) {\r\n if (predicate(array[i], i)) {\r\n return i;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n return -1;\r\n}\r\n/**\r\n * finds the first element that satisfies the predicate callback, polyfills array.find\r\n */\r\nfunction find(arrayLike, predicate) {\r\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n var idx = findIndex(array, predicate);\r\n return idx === -1 ? undefined : array[idx];\r\n}\r\nfunction includes(collection, item) {\r\n return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n if (isCallable(Array.from)) {\r\n return Array.from(arrayLike);\r\n }\r\n /* istanbul ignore next */\r\n return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n var array = [];\r\n var length = arrayLike.length;\r\n for (var i = 0; i < length; i++) {\r\n array.push(arrayLike[i]);\r\n }\r\n return array;\r\n}\r\nfunction values(obj) {\r\n if (isCallable(Object.values)) {\r\n return Object.values(obj);\r\n }\r\n // fallback to keys()\r\n /* istanbul ignore next */\r\n return Object.keys(obj).map(function (k) { return obj[k]; });\r\n}\r\nfunction merge(target, source) {\r\n Object.keys(source).forEach(function (key) {\r\n if (isObject(source[key])) {\r\n if (!target[key]) {\r\n target[key] = {};\r\n }\r\n merge(target[key], source[key]);\r\n return;\r\n }\r\n target[key] = source[key];\r\n });\r\n return target;\r\n}\n\nfunction createFlags() {\r\n return {\r\n untouched: true,\r\n touched: false,\r\n dirty: false,\r\n pristine: true,\r\n valid: false,\r\n invalid: false,\r\n validated: false,\r\n pending: false,\r\n required: false,\r\n changed: false,\r\n passed: false,\r\n failed: false\r\n };\r\n}\n\nfunction identity(x) {\r\n return x;\r\n}\r\nfunction debounce(fn, wait, token) {\r\n if (wait === void 0) { wait = 0; }\r\n if (token === void 0) { token = { cancelled: false }; }\r\n if (wait === 0) {\r\n return fn;\r\n }\r\n var timeout;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var later = function () {\r\n timeout = undefined;\r\n // check if the fn call was cancelled.\r\n if (!token.cancelled)\r\n fn.apply(void 0, args);\r\n };\r\n // because we might want to use Node.js setTimout for SSR.\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n}\n\n/**\r\n * Emits a warning to the console\r\n */\r\nfunction warn(message) {\r\n console.warn(\"[vee-validate] \" + message);\r\n}\r\n/**\r\n * Replaces placeholder values in a string with their actual values\r\n */\r\nfunction interpolate(template, values) {\r\n return template.replace(/{([^}]+)}/g, function (_, p) {\r\n return p in values ? values[p] : \"{\" + p + \"}\";\r\n });\r\n}\n\nvar RULES = {};\r\nfunction normalizeSchema(schema) {\r\n var _a;\r\n if ((_a = schema.params) === null || _a === void 0 ? void 0 : _a.length) {\r\n schema.params = schema.params.map(function (param) {\r\n if (typeof param === 'string') {\r\n return { name: param };\r\n }\r\n return param;\r\n });\r\n }\r\n return schema;\r\n}\r\nvar RuleContainer = /** @class */ (function () {\r\n function RuleContainer() {\r\n }\r\n RuleContainer.extend = function (name, schema) {\r\n // if rule already exists, overwrite it.\r\n var rule = normalizeSchema(schema);\r\n if (RULES[name]) {\r\n RULES[name] = merge(RULES[name], schema);\r\n return;\r\n }\r\n RULES[name] = __assign({ lazy: false, computesRequired: false }, rule);\r\n };\r\n RuleContainer.isLazy = function (name) {\r\n var _a;\r\n return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.lazy);\r\n };\r\n RuleContainer.isRequireRule = function (name) {\r\n var _a;\r\n return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.computesRequired);\r\n };\r\n RuleContainer.getRuleDefinition = function (ruleName) {\r\n return RULES[ruleName];\r\n };\r\n return RuleContainer;\r\n}());\r\n/**\r\n * Adds a custom validator to the list of validation rules.\r\n */\r\nfunction extend(name, schema) {\r\n // makes sure new rules are properly formatted.\r\n guardExtend(name, schema);\r\n // Full schema object.\r\n if (typeof schema === 'object') {\r\n RuleContainer.extend(name, schema);\r\n return;\r\n }\r\n RuleContainer.extend(name, {\r\n validate: schema\r\n });\r\n}\r\n/**\r\n * Guards from extension violations.\r\n */\r\nfunction guardExtend(name, validator) {\r\n if (isCallable(validator)) {\r\n return;\r\n }\r\n if (isCallable(validator.validate)) {\r\n return;\r\n }\r\n if (RuleContainer.getRuleDefinition(name)) {\r\n return;\r\n }\r\n throw new Error(\"Extension Error: The validator '\" + name + \"' must be a function or have a 'validate' method.\");\r\n}\n\nvar DEFAULT_CONFIG = {\r\n defaultMessage: \"{_field_} is not valid.\",\r\n skipOptional: true,\r\n classes: {\r\n touched: 'touched',\r\n untouched: 'untouched',\r\n valid: 'valid',\r\n invalid: 'invalid',\r\n pristine: 'pristine',\r\n dirty: 'dirty' // control has been interacted with\r\n },\r\n bails: true,\r\n mode: 'aggressive',\r\n useConstraintAttrs: true\r\n};\r\nvar currentConfig = __assign({}, DEFAULT_CONFIG);\r\nvar getConfig = function () { return currentConfig; };\r\nvar setConfig = function (newConf) {\r\n currentConfig = __assign(__assign({}, currentConfig), newConf);\r\n};\r\nvar configure = function (cfg) {\r\n setConfig(cfg);\r\n};\n\n/**\r\n * Normalizes the given rules expression.\r\n */\r\nfunction normalizeRules(rules) {\r\n // if falsy value return an empty object.\r\n var acc = {};\r\n Object.defineProperty(acc, '_$$isNormalized', {\r\n value: true,\r\n writable: false,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n if (!rules) {\r\n return acc;\r\n }\r\n // Object is already normalized, skip.\r\n if (isObject(rules) && rules._$$isNormalized) {\r\n return rules;\r\n }\r\n if (isObject(rules)) {\r\n return Object.keys(rules).reduce(function (prev, curr) {\r\n var params = [];\r\n if (rules[curr] === true) {\r\n params = [];\r\n }\r\n else if (Array.isArray(rules[curr])) {\r\n params = rules[curr];\r\n }\r\n else if (isObject(rules[curr])) {\r\n params = rules[curr];\r\n }\r\n else {\r\n params = [rules[curr]];\r\n }\r\n if (rules[curr] !== false) {\r\n prev[curr] = buildParams(curr, params);\r\n }\r\n return prev;\r\n }, acc);\r\n }\r\n /* istanbul ignore if */\r\n if (typeof rules !== 'string') {\r\n warn('rules must be either a string or an object.');\r\n return acc;\r\n }\r\n return rules.split('|').reduce(function (prev, rule) {\r\n var parsedRule = parseRule(rule);\r\n if (!parsedRule.name) {\r\n return prev;\r\n }\r\n prev[parsedRule.name] = buildParams(parsedRule.name, parsedRule.params);\r\n return prev;\r\n }, acc);\r\n}\r\nfunction buildParams(ruleName, provided) {\r\n var ruleSchema = RuleContainer.getRuleDefinition(ruleName);\r\n if (!ruleSchema) {\r\n return provided;\r\n }\r\n var params = {};\r\n if (!ruleSchema.params && !Array.isArray(provided)) {\r\n throw new Error('You provided an object params to a rule that has no defined schema.');\r\n }\r\n // Rule probably uses an array for their args, keep it as is.\r\n if (Array.isArray(provided) && !ruleSchema.params) {\r\n return provided;\r\n }\r\n var definedParams;\r\n // collect the params schema.\r\n if (!ruleSchema.params || (ruleSchema.params.length < provided.length && Array.isArray(provided))) {\r\n var lastDefinedParam_1;\r\n // collect any additional parameters in the last item.\r\n definedParams = provided.map(function (_, idx) {\r\n var _a;\r\n var param = (_a = ruleSchema.params) === null || _a === void 0 ? void 0 : _a[idx];\r\n lastDefinedParam_1 = param || lastDefinedParam_1;\r\n if (!param) {\r\n param = lastDefinedParam_1;\r\n }\r\n return param;\r\n });\r\n }\r\n else {\r\n definedParams = ruleSchema.params;\r\n }\r\n // Match the provided array length with a temporary schema.\r\n for (var i = 0; i < definedParams.length; i++) {\r\n var options = definedParams[i];\r\n var value = options.default;\r\n // if the provided is an array, map element value.\r\n if (Array.isArray(provided)) {\r\n if (i in provided) {\r\n value = provided[i];\r\n }\r\n }\r\n else {\r\n // If the param exists in the provided object.\r\n if (options.name in provided) {\r\n value = provided[options.name];\r\n // if the provided is the first param value.\r\n }\r\n else if (definedParams.length === 1) {\r\n value = provided;\r\n }\r\n }\r\n // if the param is a target, resolve the target value.\r\n if (options.isTarget) {\r\n value = createLocator(value, options.cast);\r\n }\r\n // A target param using interpolation\r\n if (typeof value === 'string' && value[0] === '@') {\r\n value = createLocator(value.slice(1), options.cast);\r\n }\r\n // If there is a transformer defined.\r\n if (!isLocator(value) && options.cast) {\r\n value = options.cast(value);\r\n }\r\n // already been set, probably multiple values.\r\n if (params[options.name]) {\r\n params[options.name] = Array.isArray(params[options.name]) ? params[options.name] : [params[options.name]];\r\n params[options.name].push(value);\r\n }\r\n else {\r\n // set the value.\r\n params[options.name] = value;\r\n }\r\n }\r\n return params;\r\n}\r\n/**\r\n * Parses a rule string expression.\r\n */\r\nvar parseRule = function (rule) {\r\n var params = [];\r\n var name = rule.split(':')[0];\r\n if (includes(rule, ':')) {\r\n params = rule\r\n .split(':')\r\n .slice(1)\r\n .join(':')\r\n .split(',');\r\n }\r\n return { name: name, params: params };\r\n};\r\nfunction createLocator(value, castFn) {\r\n var locator = function (crossTable) {\r\n var val = crossTable[value];\r\n return castFn ? castFn(val) : val;\r\n };\r\n locator.__locatorRef = value;\r\n return locator;\r\n}\r\nfunction extractLocators(params) {\r\n if (Array.isArray(params)) {\r\n return params.filter(function (param) {\r\n return isLocator(param) || (typeof param === 'string' && param[0] === '@');\r\n });\r\n }\r\n return Object.keys(params)\r\n .filter(function (key) { return isLocator(params[key]); })\r\n .map(function (key) { return params[key]; });\r\n}\n\n/**\r\n * Validates a value against the rules.\r\n */\r\nfunction validate(value, rules, options) {\r\n if (options === void 0) { options = {}; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var shouldBail, skipIfEmpty, field, result, errors, failedRules, regenerateMap;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n shouldBail = options === null || options === void 0 ? void 0 : options.bails;\r\n skipIfEmpty = options === null || options === void 0 ? void 0 : options.skipIfEmpty;\r\n field = {\r\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\r\n rules: normalizeRules(rules),\r\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\r\n skipIfEmpty: skipIfEmpty !== null && skipIfEmpty !== void 0 ? skipIfEmpty : true,\r\n forceRequired: false,\r\n crossTable: (options === null || options === void 0 ? void 0 : options.values) || {},\r\n names: (options === null || options === void 0 ? void 0 : options.names) || {},\r\n customMessages: (options === null || options === void 0 ? void 0 : options.customMessages) || {}\r\n };\r\n return [4 /*yield*/, _validate(field, value, options)];\r\n case 1:\r\n result = _a.sent();\r\n errors = [];\r\n failedRules = {};\r\n regenerateMap = {};\r\n result.errors.forEach(function (e) {\r\n var msg = e.msg();\r\n errors.push(msg);\r\n failedRules[e.rule] = msg;\r\n regenerateMap[e.rule] = e.msg;\r\n });\r\n return [2 /*return*/, {\r\n valid: result.valid,\r\n errors: errors,\r\n failedRules: failedRules,\r\n regenerateMap: regenerateMap\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Starts the validation process.\r\n */\r\nfunction _validate(field, value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _c, shouldSkip, errors, rules, length, i, rule, result;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, _shouldSkip(field, value)];\r\n case 1:\r\n _c = _d.sent(), shouldSkip = _c.shouldSkip, errors = _c.errors;\r\n if (shouldSkip) {\r\n return [2 /*return*/, {\r\n valid: !errors.length,\r\n errors: errors\r\n }];\r\n }\r\n rules = Object.keys(field.rules).filter(function (rule) { return !RuleContainer.isRequireRule(rule); });\r\n length = rules.length;\r\n i = 0;\r\n _d.label = 2;\r\n case 2:\r\n if (!(i < length)) return [3 /*break*/, 5];\r\n if (isInitial && RuleContainer.isLazy(rules[i])) {\r\n return [3 /*break*/, 4];\r\n }\r\n rule = rules[i];\r\n return [4 /*yield*/, _test(field, value, {\r\n name: rule,\r\n params: field.rules[rule]\r\n })];\r\n case 3:\r\n result = _d.sent();\r\n if (!result.valid && result.error) {\r\n errors.push(result.error);\r\n if (field.bails) {\r\n return [2 /*return*/, {\r\n valid: false,\r\n errors: errors\r\n }];\r\n }\r\n }\r\n _d.label = 4;\r\n case 4:\r\n i++;\r\n return [3 /*break*/, 2];\r\n case 5: return [2 /*return*/, {\r\n valid: !errors.length,\r\n errors: errors\r\n }];\r\n }\r\n });\r\n });\r\n}\r\nfunction _shouldSkip(field, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var requireRules, length, errors, isEmpty, isEmptyAndOptional, isRequired, i, rule, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requireRules = Object.keys(field.rules).filter(RuleContainer.isRequireRule);\r\n length = requireRules.length;\r\n errors = [];\r\n isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);\r\n isEmptyAndOptional = isEmpty && field.skipIfEmpty;\r\n isRequired = false;\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < length)) return [3 /*break*/, 4];\r\n rule = requireRules[i];\r\n return [4 /*yield*/, _test(field, value, {\r\n name: rule,\r\n params: field.rules[rule]\r\n })];\r\n case 2:\r\n result = _a.sent();\r\n if (!isObject(result)) {\r\n throw new Error('Require rules has to return an object (see docs)');\r\n }\r\n if (result.required) {\r\n isRequired = true;\r\n }\r\n if (!result.valid && result.error) {\r\n errors.push(result.error);\r\n // Exit early as the field is required and failed validation.\r\n if (field.bails) {\r\n return [2 /*return*/, {\r\n shouldSkip: true,\r\n errors: errors\r\n }];\r\n }\r\n }\r\n _a.label = 3;\r\n case 3:\r\n i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (isEmpty && !isRequired && !field.skipIfEmpty) {\r\n return [2 /*return*/, {\r\n shouldSkip: false,\r\n errors: errors\r\n }];\r\n }\r\n // field is configured to run through the pipeline regardless\r\n if (!field.bails && !isEmptyAndOptional) {\r\n return [2 /*return*/, {\r\n shouldSkip: false,\r\n errors: errors\r\n }];\r\n }\r\n // skip if the field is not required and has an empty value.\r\n return [2 /*return*/, {\r\n shouldSkip: !isRequired && isEmpty,\r\n errors: errors\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Tests a single input value against a rule.\r\n */\r\nfunction _test(field, value, rule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var ruleSchema, normalizedValue, params, result, values_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ruleSchema = RuleContainer.getRuleDefinition(rule.name);\r\n if (!ruleSchema || !ruleSchema.validate) {\r\n throw new Error(\"No such validator '\" + rule.name + \"' exists.\");\r\n }\r\n normalizedValue = ruleSchema.castValue ? ruleSchema.castValue(value) : value;\r\n params = fillTargetValues(rule.params, field.crossTable);\r\n return [4 /*yield*/, ruleSchema.validate(normalizedValue, params)];\r\n case 1:\r\n result = _a.sent();\r\n if (typeof result === 'string') {\r\n values_1 = __assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: rule.name });\r\n return [2 /*return*/, {\r\n valid: false,\r\n error: { rule: rule.name, msg: function () { return interpolate(result, values_1); } }\r\n }];\r\n }\r\n if (!isObject(result)) {\r\n result = { valid: result };\r\n }\r\n return [2 /*return*/, {\r\n valid: result.valid,\r\n required: result.required,\r\n error: result.valid ? undefined : _generateFieldError(field, value, ruleSchema, rule.name, params)\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Generates error messages.\r\n */\r\nfunction _generateFieldError(field, value, ruleSchema, ruleName, params) {\r\n var _a;\r\n var message = (_a = field.customMessages[ruleName]) !== null && _a !== void 0 ? _a : ruleSchema.message;\r\n var ruleTargets = _getRuleTargets(field, ruleSchema, ruleName);\r\n var _b = _getUserTargets(field, ruleSchema, ruleName, message), userTargets = _b.userTargets, userMessage = _b.userMessage;\r\n var values = __assign(__assign(__assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: ruleName }), ruleTargets), userTargets);\r\n return {\r\n msg: function () { return _normalizeMessage(userMessage || getConfig().defaultMessage, field.name, values); },\r\n rule: ruleName\r\n };\r\n}\r\nfunction _getRuleTargets(field, ruleSchema, ruleName) {\r\n var params = ruleSchema.params;\r\n if (!params) {\r\n return {};\r\n }\r\n var numTargets = params.filter(function (param) { return param.isTarget; }).length;\r\n if (numTargets <= 0) {\r\n return {};\r\n }\r\n var names = {};\r\n var ruleConfig = field.rules[ruleName];\r\n if (!Array.isArray(ruleConfig) && isObject(ruleConfig)) {\r\n ruleConfig = params.map(function (param) {\r\n return ruleConfig[param.name];\r\n });\r\n }\r\n for (var index = 0; index < params.length; index++) {\r\n var param = params[index];\r\n var key = ruleConfig[index];\r\n if (!isLocator(key)) {\r\n continue;\r\n }\r\n key = key.__locatorRef;\r\n var name_1 = field.names[key] || key;\r\n names[param.name] = name_1;\r\n names[\"_\" + param.name + \"_\"] = field.crossTable[key];\r\n }\r\n return names;\r\n}\r\nfunction _getUserTargets(field, ruleSchema, ruleName, userMessage) {\r\n var userTargets = {};\r\n var rules = field.rules[ruleName];\r\n var params = ruleSchema.params || [];\r\n // early return if no rules\r\n if (!rules) {\r\n return {};\r\n }\r\n // check all rules to convert targets\r\n Object.keys(rules).forEach(function (key, index) {\r\n // get the rule\r\n var rule = rules[key];\r\n if (!isLocator(rule)) {\r\n return {};\r\n }\r\n // get associated parameter\r\n var param = params[index];\r\n if (!param) {\r\n return {};\r\n }\r\n // grab the name of the target\r\n var name = rule.__locatorRef;\r\n userTargets[param.name] = field.names[name] || name;\r\n userTargets[\"_\" + param.name + \"_\"] = field.crossTable[name];\r\n });\r\n return {\r\n userTargets: userTargets,\r\n userMessage: userMessage\r\n };\r\n}\r\nfunction _normalizeMessage(template, field, values) {\r\n if (typeof template === 'function') {\r\n return template(field, values);\r\n }\r\n return interpolate(template, __assign(__assign({}, values), { _field_: field }));\r\n}\r\nfunction fillTargetValues(params, crossTable) {\r\n if (Array.isArray(params)) {\r\n return params.map(function (param) {\r\n var targetPart = typeof param === 'string' && param[0] === '@' ? param.slice(1) : param;\r\n if (targetPart in crossTable) {\r\n return crossTable[targetPart];\r\n }\r\n return param;\r\n });\r\n }\r\n var values = {};\r\n var normalize = function (value) {\r\n if (isLocator(value)) {\r\n return value(crossTable);\r\n }\r\n return value;\r\n };\r\n Object.keys(params).forEach(function (param) {\r\n values[param] = normalize(params[param]);\r\n });\r\n return values;\r\n}\n\nvar aggressive = function () { return ({\r\n on: ['input', 'blur']\r\n}); };\r\nvar lazy = function () { return ({\r\n on: ['change', 'blur']\r\n}); };\r\nvar eager = function (_a) {\r\n var errors = _a.errors;\r\n if (errors.length) {\r\n return {\r\n on: ['input', 'change']\r\n };\r\n }\r\n return {\r\n on: ['change', 'blur']\r\n };\r\n};\r\nvar passive = function () { return ({\r\n on: []\r\n}); };\r\nvar modes = {\r\n aggressive: aggressive,\r\n eager: eager,\r\n passive: passive,\r\n lazy: lazy\r\n};\r\nvar setInteractionMode = function (mode, implementation) {\r\n setConfig({ mode: mode });\r\n if (!implementation) {\r\n return;\r\n }\r\n if (!isCallable(implementation)) {\r\n throw new Error('A mode implementation must be a function');\r\n }\r\n modes[mode] = implementation;\r\n};\n\nvar EVENT_BUS = new Vue();\r\nfunction localeChanged() {\r\n EVENT_BUS.$emit('change:locale');\r\n}\n\nvar Dictionary = /** @class */ (function () {\r\n function Dictionary(locale, dictionary) {\r\n this.container = {};\r\n this.locale = locale;\r\n this.merge(dictionary);\r\n }\r\n Dictionary.prototype.resolve = function (field, rule, values) {\r\n return this.format(this.locale, field, rule, values);\r\n };\r\n Dictionary.prototype.format = function (locale, field, rule, values) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var message;\r\n // find if specific message for that field was specified.\r\n var fieldContainer = (_c = (_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[field]) === null || _c === void 0 ? void 0 : _c[rule];\r\n var messageContainer = (_e = (_d = this.container[locale]) === null || _d === void 0 ? void 0 : _d.messages) === null || _e === void 0 ? void 0 : _e[rule];\r\n message = fieldContainer || messageContainer || '';\r\n if (!message) {\r\n message = '{_field_} is not valid';\r\n }\r\n field = (_h = (_g = (_f = this.container[locale]) === null || _f === void 0 ? void 0 : _f.names) === null || _g === void 0 ? void 0 : _g[field]) !== null && _h !== void 0 ? _h : field;\r\n return isCallable(message) ? message(field, values) : interpolate(message, __assign(__assign({}, values), { _field_: field }));\r\n };\r\n Dictionary.prototype.merge = function (dictionary) {\r\n merge(this.container, dictionary);\r\n };\r\n Dictionary.prototype.hasRule = function (name) {\r\n var _a, _b;\r\n return !!((_b = (_a = this.container[this.locale]) === null || _a === void 0 ? void 0 : _a.messages) === null || _b === void 0 ? void 0 : _b[name]);\r\n };\r\n return Dictionary;\r\n}());\r\nvar DICTIONARY;\r\nfunction localize(locale, dictionary) {\r\n var _a;\r\n if (!DICTIONARY) {\r\n DICTIONARY = new Dictionary('en', {});\r\n setConfig({\r\n defaultMessage: function (field, values) {\r\n return DICTIONARY.resolve(field, values === null || values === void 0 ? void 0 : values._rule_, values || {});\r\n }\r\n });\r\n }\r\n if (typeof locale === 'string') {\r\n DICTIONARY.locale = locale;\r\n if (dictionary) {\r\n DICTIONARY.merge((_a = {}, _a[locale] = dictionary, _a));\r\n }\r\n localeChanged();\r\n return;\r\n }\r\n DICTIONARY.merge(locale);\r\n}\n\nvar isEvent = function (evt) {\r\n if (!evt) {\r\n return false;\r\n }\r\n if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\r\n return true;\r\n }\r\n // this is for IE\r\n /* istanbul ignore next */\r\n if (evt && evt.srcElement) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nfunction normalizeEventValue(value) {\r\n var _a, _b;\r\n if (!isEvent(value)) {\r\n return value;\r\n }\r\n var input = value.target;\r\n if (input.type === 'file' && input.files) {\r\n return toArray(input.files);\r\n }\r\n // If the input has a `v-model.number` modifier applied.\r\n if ((_a = input._vModifiers) === null || _a === void 0 ? void 0 : _a.number) {\r\n // as per the spec the v-model.number uses parseFloat\r\n var valueAsNumber = parseFloat(input.value);\r\n if (isNaN(valueAsNumber)) {\r\n return input.value;\r\n }\r\n return valueAsNumber;\r\n }\r\n if ((_b = input._vModifiers) === null || _b === void 0 ? void 0 : _b.trim) {\r\n var trimmedValue = typeof input.value === 'string' ? input.value.trim() : input.value;\r\n return trimmedValue;\r\n }\r\n return input.value;\r\n}\n\nvar isTextInput = function (vnode) {\r\n var _a;\r\n var attrs = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) || vnode.elm;\r\n // it will fallback to being a text input per browsers spec.\r\n if (vnode.tag === 'input' && (!attrs || !attrs.type)) {\r\n return true;\r\n }\r\n if (vnode.tag === 'textarea') {\r\n return true;\r\n }\r\n return includes(['text', 'password', 'search', 'email', 'tel', 'url', 'number'], attrs === null || attrs === void 0 ? void 0 : attrs.type);\r\n};\r\n// export const isCheckboxOrRadioInput = (vnode: VNode): boolean => {\r\n// const attrs = (vnode.data && vnode.data.attrs) || vnode.elm;\r\n// return includes(['radio', 'checkbox'], attrs && attrs.type);\r\n// };\r\n// Gets the model object on the vnode.\r\nfunction findModel(vnode) {\r\n if (!vnode.data) {\r\n return undefined;\r\n }\r\n // Component Model\r\n // THIS IS NOT TYPED IN OFFICIAL VUE TYPINGS\r\n // eslint-disable-next-line\r\n var nonStandardVNodeData = vnode.data;\r\n if ('model' in nonStandardVNodeData) {\r\n return nonStandardVNodeData.model;\r\n }\r\n if (!vnode.data.directives) {\r\n return undefined;\r\n }\r\n return find(vnode.data.directives, function (d) { return d.name === 'model'; });\r\n}\r\nfunction findValue(vnode) {\r\n var _a, _b;\r\n var model = findModel(vnode);\r\n if (model) {\r\n return { value: model.value };\r\n }\r\n var config = findModelConfig(vnode);\r\n var prop = (config === null || config === void 0 ? void 0 : config.prop) || 'value';\r\n if (((_a = vnode.componentOptions) === null || _a === void 0 ? void 0 : _a.propsData) && prop in vnode.componentOptions.propsData) {\r\n var propsDataWithValue = vnode.componentOptions.propsData;\r\n return { value: propsDataWithValue[prop] };\r\n }\r\n if (((_b = vnode.data) === null || _b === void 0 ? void 0 : _b.domProps) && 'value' in vnode.data.domProps) {\r\n return { value: vnode.data.domProps.value };\r\n }\r\n return undefined;\r\n}\r\nfunction extractChildren(vnode) {\r\n if (Array.isArray(vnode)) {\r\n return vnode;\r\n }\r\n if (Array.isArray(vnode.children)) {\r\n return vnode.children;\r\n }\r\n /* istanbul ignore next */\r\n if (vnode.componentOptions && Array.isArray(vnode.componentOptions.children)) {\r\n return vnode.componentOptions.children;\r\n }\r\n return [];\r\n}\r\nfunction findInputNodes(vnode) {\r\n if (!Array.isArray(vnode) && findValue(vnode) !== undefined) {\r\n return [vnode];\r\n }\r\n var children = extractChildren(vnode);\r\n return children.reduce(function (nodes, node) {\r\n var candidates = findInputNodes(node);\r\n if (candidates.length) {\r\n nodes.push.apply(nodes, candidates);\r\n }\r\n return nodes;\r\n }, []);\r\n}\r\n// Resolves v-model config if exists.\r\nfunction findModelConfig(vnode) {\r\n /* istanbul ignore next */\r\n if (!vnode.componentOptions)\r\n return null;\r\n // This is also not typed in the standard Vue TS.\r\n return vnode.componentOptions.Ctor.options.model;\r\n}\r\n// Adds a listener to vnode listener object.\r\nfunction mergeVNodeListeners(obj, eventName, handler) {\r\n // no listener at all.\r\n if (isNullOrUndefined(obj[eventName])) {\r\n obj[eventName] = [handler];\r\n return;\r\n }\r\n // Is an invoker.\r\n if (isCallable(obj[eventName]) && obj[eventName].fns) {\r\n var invoker = obj[eventName];\r\n invoker.fns = Array.isArray(invoker.fns) ? invoker.fns : [invoker.fns];\r\n if (!includes(invoker.fns, handler)) {\r\n invoker.fns.push(handler);\r\n }\r\n return;\r\n }\r\n if (isCallable(obj[eventName])) {\r\n var prev = obj[eventName];\r\n obj[eventName] = [prev];\r\n }\r\n if (Array.isArray(obj[eventName]) && !includes(obj[eventName], handler)) {\r\n obj[eventName].push(handler);\r\n }\r\n}\r\n// Adds a listener to a native HTML vnode.\r\nfunction addNativeNodeListener(node, eventName, handler) {\r\n /* istanbul ignore next */\r\n if (!node.data) {\r\n node.data = {};\r\n }\r\n if (isNullOrUndefined(node.data.on)) {\r\n node.data.on = {};\r\n }\r\n mergeVNodeListeners(node.data.on, eventName, handler);\r\n}\r\n// Adds a listener to a Vue component vnode.\r\nfunction addComponentNodeListener(node, eventName, handler) {\r\n /* istanbul ignore next */\r\n if (!node.componentOptions) {\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!node.componentOptions.listeners) {\r\n node.componentOptions.listeners = {};\r\n }\r\n mergeVNodeListeners(node.componentOptions.listeners, eventName, handler);\r\n}\r\nfunction addVNodeListener(vnode, eventName, handler) {\r\n if (vnode.componentOptions) {\r\n addComponentNodeListener(vnode, eventName, handler);\r\n return;\r\n }\r\n addNativeNodeListener(vnode, eventName, handler);\r\n}\r\n// Determines if `change` should be used over `input` for listeners.\r\nfunction getInputEventName(vnode, model) {\r\n var _a;\r\n // Is a component.\r\n if (vnode.componentOptions) {\r\n var event_1 = (findModelConfig(vnode) || { event: 'input' }).event;\r\n return event_1;\r\n }\r\n // Lazy Models typically use change event\r\n if ((_a = model === null || model === void 0 ? void 0 : model.modifiers) === null || _a === void 0 ? void 0 : _a.lazy) {\r\n return 'change';\r\n }\r\n // is a textual-type input.\r\n if (isTextInput(vnode)) {\r\n return 'input';\r\n }\r\n return 'change';\r\n}\r\nfunction isHTMLNode(node) {\r\n return includes(['input', 'select', 'textarea'], node.tag);\r\n}\r\n// TODO: Type this one properly.\r\nfunction normalizeSlots(slots, ctx) {\r\n var acc = [];\r\n return Object.keys(slots).reduce(function (arr, key) {\r\n slots[key].forEach(function (vnode) {\r\n if (!vnode.context) {\r\n slots[key].context = ctx;\r\n if (!vnode.data) {\r\n vnode.data = {};\r\n }\r\n vnode.data.slot = key;\r\n }\r\n });\r\n return arr.concat(slots[key]);\r\n }, acc);\r\n}\r\nfunction resolveTextualRules(vnode) {\r\n var _a;\r\n var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n var rules = {};\r\n if (!attrs)\r\n return rules;\r\n if (attrs.type === 'email' && RuleContainer.getRuleDefinition('email')) {\r\n rules.email = ['multiple' in attrs];\r\n }\r\n if (attrs.pattern && RuleContainer.getRuleDefinition('regex')) {\r\n rules.regex = attrs.pattern;\r\n }\r\n if (attrs.maxlength >= 0 && RuleContainer.getRuleDefinition('max')) {\r\n rules.max = attrs.maxlength;\r\n }\r\n if (attrs.minlength >= 0 && RuleContainer.getRuleDefinition('min')) {\r\n rules.min = attrs.minlength;\r\n }\r\n if (attrs.type === 'number') {\r\n if (isSpecified(attrs.min) && RuleContainer.getRuleDefinition('min_value')) {\r\n rules.min_value = Number(attrs.min);\r\n }\r\n if (isSpecified(attrs.max) && RuleContainer.getRuleDefinition('max_value')) {\r\n rules.max_value = Number(attrs.max);\r\n }\r\n }\r\n return rules;\r\n}\r\nfunction resolveRules(vnode) {\r\n var _a;\r\n var htmlTags = ['input', 'select', 'textarea'];\r\n var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n if (!includes(htmlTags, vnode.tag) || !attrs) {\r\n return {};\r\n }\r\n var rules = {};\r\n if ('required' in attrs && attrs.required !== false && RuleContainer.getRuleDefinition('required')) {\r\n rules.required = attrs.type === 'checkbox' ? [true] : true;\r\n }\r\n if (isTextInput(vnode)) {\r\n return normalizeRules(__assign(__assign({}, rules), resolveTextualRules(vnode)));\r\n }\r\n return normalizeRules(rules);\r\n}\r\nfunction normalizeChildren(context, slotProps) {\r\n if (context.$scopedSlots.default) {\r\n return context.$scopedSlots.default(slotProps) || [];\r\n }\r\n return context.$slots.default || [];\r\n}\n\n/**\r\n * Determines if a provider needs to run validation.\r\n */\r\nfunction shouldValidate(ctx, value) {\r\n // when an immediate/initial validation is needed and wasn't done before.\r\n if (!ctx._ignoreImmediate && ctx.immediate) {\r\n return true;\r\n }\r\n // when the value changes for whatever reason.\r\n if (!isRefEqual(ctx.value, value) && ctx.normalizedEvents.length) {\r\n return true;\r\n }\r\n // when it needs validation due to props/cross-fields changes.\r\n if (ctx._needsValidation) {\r\n return true;\r\n }\r\n // when the initial value is undefined and the field wasn't rendered yet.\r\n if (!ctx.initialized && value === undefined) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction createValidationCtx(ctx) {\r\n return __assign(__assign({}, ctx.flags), { errors: ctx.errors, classes: ctx.classes, failedRules: ctx.failedRules, reset: function () { return ctx.reset(); }, validate: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return ctx.validate.apply(ctx, args);\r\n }, ariaInput: {\r\n 'aria-invalid': ctx.flags.invalid ? 'true' : 'false',\r\n 'aria-required': ctx.isRequired ? 'true' : 'false',\r\n 'aria-errormessage': \"vee_\" + ctx.id\r\n }, ariaMsg: {\r\n id: \"vee_\" + ctx.id,\r\n 'aria-live': ctx.errors.length ? 'assertive' : 'off'\r\n } });\r\n}\r\nfunction onRenderUpdate(vm, value) {\r\n if (!vm.initialized) {\r\n vm.initialValue = value;\r\n }\r\n var validateNow = shouldValidate(vm, value);\r\n vm._needsValidation = false;\r\n vm.value = value;\r\n vm._ignoreImmediate = true;\r\n if (!validateNow) {\r\n return;\r\n }\r\n var validate = function () {\r\n if (vm.immediate || vm.flags.validated) {\r\n return triggerThreadSafeValidation(vm);\r\n }\r\n vm.validateSilent();\r\n };\r\n if (vm.initialized) {\r\n validate();\r\n return;\r\n }\r\n vm.$once('hook:mounted', function () { return validate(); });\r\n}\r\nfunction computeModeSetting(ctx) {\r\n var compute = (isCallable(ctx.mode) ? ctx.mode : modes[ctx.mode]);\r\n return compute(ctx);\r\n}\r\nfunction triggerThreadSafeValidation(vm) {\r\n var pendingPromise = vm.validateSilent();\r\n // avoids race conditions between successive validations.\r\n vm._pendingValidation = pendingPromise;\r\n return pendingPromise.then(function (result) {\r\n if (pendingPromise === vm._pendingValidation) {\r\n vm.applyResult(result);\r\n vm._pendingValidation = undefined;\r\n }\r\n return result;\r\n });\r\n}\r\n// Creates the common handlers for a validatable context.\r\nfunction createCommonHandlers(vm) {\r\n if (!vm.$veeOnInput) {\r\n vm.$veeOnInput = function (e) {\r\n vm.syncValue(e); // track and keep the value updated.\r\n vm.setFlags({ dirty: true, pristine: false });\r\n };\r\n }\r\n var onInput = vm.$veeOnInput;\r\n if (!vm.$veeOnBlur) {\r\n vm.$veeOnBlur = function () {\r\n vm.setFlags({ touched: true, untouched: false });\r\n };\r\n }\r\n // Blur event listener.\r\n var onBlur = vm.$veeOnBlur;\r\n var onValidate = vm.$veeHandler;\r\n var mode = computeModeSetting(vm);\r\n // Handle debounce changes.\r\n if (!onValidate || vm.$veeDebounce !== vm.debounce) {\r\n onValidate = debounce(function () {\r\n vm.$nextTick(function () {\r\n if (!vm._pendingReset) {\r\n triggerThreadSafeValidation(vm);\r\n }\r\n vm._pendingReset = false;\r\n });\r\n }, mode.debounce || vm.debounce);\r\n // Cache the handler so we don't create it each time.\r\n vm.$veeHandler = onValidate;\r\n // cache the debounce value so we detect if it was changed.\r\n vm.$veeDebounce = vm.debounce;\r\n }\r\n return { onInput: onInput, onBlur: onBlur, onValidate: onValidate };\r\n}\r\n// Adds all plugin listeners to the vnode.\r\nfunction addListeners(vm, node) {\r\n var value = findValue(node);\r\n // cache the input eventName.\r\n vm._inputEventName = vm._inputEventName || getInputEventName(node, findModel(node));\r\n onRenderUpdate(vm, value === null || value === void 0 ? void 0 : value.value);\r\n var _a = createCommonHandlers(vm), onInput = _a.onInput, onBlur = _a.onBlur, onValidate = _a.onValidate;\r\n addVNodeListener(node, vm._inputEventName, onInput);\r\n addVNodeListener(node, 'blur', onBlur);\r\n // add the validation listeners.\r\n vm.normalizedEvents.forEach(function (evt) {\r\n addVNodeListener(node, evt, onValidate);\r\n });\r\n vm.initialized = true;\r\n}\n\nvar PROVIDER_COUNTER = 0;\r\nfunction data() {\r\n var errors = [];\r\n var fieldName = '';\r\n var defaultValues = {\r\n errors: errors,\r\n value: undefined,\r\n initialized: false,\r\n initialValue: undefined,\r\n flags: createFlags(),\r\n failedRules: {},\r\n isActive: true,\r\n fieldName: fieldName,\r\n id: ''\r\n };\r\n return defaultValues;\r\n}\r\nvar ValidationProvider = Vue.extend({\r\n inject: {\r\n $_veeObserver: {\r\n from: '$_veeObserver',\r\n default: function () {\r\n if (!this.$vnode.context.$_veeObserver) {\r\n this.$vnode.context.$_veeObserver = createObserver();\r\n }\r\n return this.$vnode.context.$_veeObserver;\r\n }\r\n }\r\n },\r\n props: {\r\n vid: {\r\n type: String,\r\n default: ''\r\n },\r\n name: {\r\n type: String,\r\n default: null\r\n },\r\n mode: {\r\n type: [String, Function],\r\n default: function () {\r\n return getConfig().mode;\r\n }\r\n },\r\n rules: {\r\n type: [Object, String],\r\n default: null\r\n },\r\n immediate: {\r\n type: Boolean,\r\n default: false\r\n },\r\n bails: {\r\n type: Boolean,\r\n default: function () { return getConfig().bails; }\r\n },\r\n skipIfEmpty: {\r\n type: Boolean,\r\n default: function () { return getConfig().skipOptional; }\r\n },\r\n debounce: {\r\n type: Number,\r\n default: 0\r\n },\r\n tag: {\r\n type: String,\r\n default: 'span'\r\n },\r\n slim: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n customMessages: {\r\n type: Object,\r\n default: function () {\r\n return {};\r\n }\r\n },\r\n detectInput: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n watch: {\r\n rules: {\r\n deep: true,\r\n handler: function (val, oldVal) {\r\n this._needsValidation = !isEqual(val, oldVal);\r\n }\r\n }\r\n },\r\n data: data,\r\n computed: {\r\n fieldDeps: function () {\r\n var _this = this;\r\n return Object.keys(this.normalizedRules).reduce(function (acc, rule) {\r\n var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) {\r\n return isLocator(dep) ? dep.__locatorRef : dep.slice(1);\r\n });\r\n acc.push.apply(acc, deps);\r\n deps.forEach(function (depName) {\r\n watchCrossFieldDep(_this, depName);\r\n });\r\n return acc;\r\n }, []);\r\n },\r\n normalizedEvents: function () {\r\n var _this = this;\r\n var on = computeModeSetting(this).on;\r\n return (on || []).map(function (e) {\r\n if (e === 'input') {\r\n return _this._inputEventName;\r\n }\r\n return e;\r\n });\r\n },\r\n isRequired: function () {\r\n var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);\r\n this.flags.required = !!isRequired;\r\n return isRequired;\r\n },\r\n classes: function () {\r\n var names = getConfig().classes;\r\n return computeClassObj(names, this.flags);\r\n },\r\n normalizedRules: function () {\r\n return normalizeRules(this.rules);\r\n }\r\n },\r\n mounted: function () {\r\n var _this = this;\r\n var onLocaleChanged = function () {\r\n if (!_this.flags.validated) {\r\n return;\r\n }\r\n var regenerateMap = _this._regenerateMap;\r\n if (regenerateMap) {\r\n var errors_1 = [];\r\n var failedRules_1 = {};\r\n Object.keys(regenerateMap).forEach(function (rule) {\r\n var msg = regenerateMap[rule]();\r\n errors_1.push(msg);\r\n failedRules_1[rule] = msg;\r\n });\r\n _this.applyResult({ errors: errors_1, failedRules: failedRules_1, regenerateMap: regenerateMap });\r\n return;\r\n }\r\n _this.validate();\r\n };\r\n EVENT_BUS.$on('change:locale', onLocaleChanged);\r\n this.$on('hook:beforeDestroy', function () {\r\n EVENT_BUS.$off('change:locale', onLocaleChanged);\r\n });\r\n },\r\n render: function (h) {\r\n var _this = this;\r\n this.registerField();\r\n var ctx = createValidationCtx(this);\r\n var children = normalizeChildren(this, ctx);\r\n // Automatic v-model detection\r\n if (this.detectInput) {\r\n var inputs = findInputNodes(children);\r\n if (inputs.length) {\r\n inputs.forEach(function (input, idx) {\r\n var _a, _b, _c, _d, _e, _f;\r\n // If the elements are not checkboxes and there are more input nodes\r\n if (!includes(['checkbox', 'radio'], (_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.type) && idx > 0) {\r\n return;\r\n }\r\n var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};\r\n if (!isEqual(_this._resolvedRules, resolved)) {\r\n _this._needsValidation = true;\r\n }\r\n if (isHTMLNode(input)) {\r\n _this.fieldName = ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.name) || ((_f = (_e = input.data) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.id);\r\n }\r\n _this._resolvedRules = resolved;\r\n addListeners(_this, input);\r\n });\r\n }\r\n }\r\n return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);\r\n },\r\n beforeDestroy: function () {\r\n // cleanup reference.\r\n this.$_veeObserver.unobserve(this.id);\r\n },\r\n activated: function () {\r\n this.isActive = true;\r\n },\r\n deactivated: function () {\r\n this.isActive = false;\r\n },\r\n methods: {\r\n setFlags: function (flags) {\r\n var _this = this;\r\n Object.keys(flags).forEach(function (flag) {\r\n _this.flags[flag] = flags[flag];\r\n });\r\n },\r\n syncValue: function (v) {\r\n var value = normalizeEventValue(v);\r\n this.value = value;\r\n this.flags.changed = this.initialValue !== value;\r\n },\r\n reset: function () {\r\n var _this = this;\r\n this.errors = [];\r\n this.initialValue = this.value;\r\n var flags = createFlags();\r\n flags.required = this.isRequired;\r\n this.setFlags(flags);\r\n this.failedRules = {};\r\n this.validateSilent();\r\n this._pendingValidation = undefined;\r\n this._pendingReset = true;\r\n setTimeout(function () {\r\n _this._pendingReset = false;\r\n }, this.debounce);\r\n },\r\n validate: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (args.length > 0) {\r\n this.syncValue(args[0]);\r\n }\r\n return [2 /*return*/, triggerThreadSafeValidation(this)];\r\n });\r\n });\r\n },\r\n validateSilent: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var rules, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.setFlags({ pending: true });\r\n rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n Object.defineProperty(rules, '_$$isNormalized', {\r\n value: true,\r\n writable: false,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n return [4 /*yield*/, validate(this.value, rules, __assign(__assign({ name: this.name || this.fieldName }, createLookup(this)), { bails: this.bails, skipIfEmpty: this.skipIfEmpty, isInitial: !this.initialized, customMessages: this.customMessages }))];\r\n case 1:\r\n result = _a.sent();\r\n this.setFlags({\r\n pending: false,\r\n valid: result.valid,\r\n invalid: !result.valid\r\n });\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n },\r\n setErrors: function (errors) {\r\n this.applyResult({ errors: errors, failedRules: {} });\r\n },\r\n applyResult: function (_a) {\r\n var errors = _a.errors, failedRules = _a.failedRules, regenerateMap = _a.regenerateMap;\r\n this.errors = errors;\r\n this._regenerateMap = regenerateMap;\r\n this.failedRules = __assign({}, (failedRules || {}));\r\n this.setFlags({\r\n valid: !errors.length,\r\n passed: !errors.length,\r\n invalid: !!errors.length,\r\n failed: !!errors.length,\r\n validated: true,\r\n changed: this.value !== this.initialValue\r\n });\r\n },\r\n registerField: function () {\r\n updateRenderingContextRefs(this);\r\n }\r\n }\r\n});\r\nfunction computeClassObj(names, flags) {\r\n var acc = {};\r\n var keys = Object.keys(flags);\r\n var length = keys.length;\r\n var _loop_1 = function (i) {\r\n var flag = keys[i];\r\n var className = (names && names[flag]) || flag;\r\n var value = flags[flag];\r\n if (isNullOrUndefined(value)) {\r\n return \"continue\";\r\n }\r\n if ((flag === 'valid' || flag === 'invalid') && !flags.validated) {\r\n return \"continue\";\r\n }\r\n if (typeof className === 'string') {\r\n acc[className] = value;\r\n }\r\n else if (Array.isArray(className)) {\r\n className.forEach(function (cls) {\r\n acc[cls] = value;\r\n });\r\n }\r\n };\r\n for (var i = 0; i < length; i++) {\r\n _loop_1(i);\r\n }\r\n return acc;\r\n}\r\nfunction createLookup(vm) {\r\n var providers = vm.$_veeObserver.refs;\r\n var reduced = {\r\n names: {},\r\n values: {}\r\n };\r\n return vm.fieldDeps.reduce(function (acc, depName) {\r\n if (!providers[depName]) {\r\n return acc;\r\n }\r\n acc.values[depName] = providers[depName].value;\r\n acc.names[depName] = providers[depName].name;\r\n return acc;\r\n }, reduced);\r\n}\r\nfunction extractId(vm) {\r\n if (vm.vid) {\r\n return vm.vid;\r\n }\r\n if (vm.name) {\r\n return vm.name;\r\n }\r\n if (vm.id) {\r\n return vm.id;\r\n }\r\n if (vm.fieldName) {\r\n return vm.fieldName;\r\n }\r\n PROVIDER_COUNTER++;\r\n return \"_vee_\" + PROVIDER_COUNTER;\r\n}\r\nfunction updateRenderingContextRefs(vm) {\r\n var providedId = extractId(vm);\r\n var id = vm.id;\r\n // Nothing has changed.\r\n if (!vm.isActive || (id === providedId && vm.$_veeObserver.refs[id])) {\r\n return;\r\n }\r\n // vid was changed.\r\n if (id !== providedId && vm.$_veeObserver.refs[id] === vm) {\r\n vm.$_veeObserver.unobserve(id);\r\n }\r\n vm.id = providedId;\r\n vm.$_veeObserver.observe(vm);\r\n}\r\nfunction createObserver() {\r\n return {\r\n refs: {},\r\n observe: function (vm) {\r\n this.refs[vm.id] = vm;\r\n },\r\n unobserve: function (id) {\r\n delete this.refs[id];\r\n }\r\n };\r\n}\r\nfunction watchCrossFieldDep(ctx, depName, withHooks) {\r\n if (withHooks === void 0) { withHooks = true; }\r\n var providers = ctx.$_veeObserver.refs;\r\n if (!ctx._veeWatchers) {\r\n ctx._veeWatchers = {};\r\n }\r\n if (!providers[depName] && withHooks) {\r\n return ctx.$once('hook:mounted', function () {\r\n watchCrossFieldDep(ctx, depName, false);\r\n });\r\n }\r\n if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {\r\n ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {\r\n if (ctx.flags.validated) {\r\n ctx._needsValidation = true;\r\n ctx.validate();\r\n }\r\n });\r\n }\r\n}\n\nvar FLAGS_STRATEGIES = [\r\n ['pristine', 'every'],\r\n ['dirty', 'some'],\r\n ['touched', 'some'],\r\n ['untouched', 'every'],\r\n ['valid', 'every'],\r\n ['invalid', 'some'],\r\n ['pending', 'some'],\r\n ['validated', 'every'],\r\n ['changed', 'some'],\r\n ['passed', 'every'],\r\n ['failed', 'some']\r\n];\r\nvar OBSERVER_COUNTER = 0;\r\nfunction data$1() {\r\n var refs = {};\r\n var errors = {};\r\n var flags = createObserverFlags();\r\n var fields = {};\r\n // FIXME: Not sure of this one can be typed, circular type reference.\r\n var observers = [];\r\n return {\r\n id: '',\r\n refs: refs,\r\n observers: observers,\r\n errors: errors,\r\n flags: flags,\r\n fields: fields\r\n };\r\n}\r\nfunction provideSelf() {\r\n return {\r\n $_veeObserver: this\r\n };\r\n}\r\nvar ValidationObserver = Vue.extend({\r\n name: 'ValidationObserver',\r\n provide: provideSelf,\r\n inject: {\r\n $_veeObserver: {\r\n from: '$_veeObserver',\r\n default: function () {\r\n if (!this.$vnode.context.$_veeObserver) {\r\n return null;\r\n }\r\n return this.$vnode.context.$_veeObserver;\r\n }\r\n }\r\n },\r\n props: {\r\n tag: {\r\n type: String,\r\n default: 'span'\r\n },\r\n vid: {\r\n type: String,\r\n default: function () {\r\n return \"obs_\" + OBSERVER_COUNTER++;\r\n }\r\n },\r\n slim: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data: data$1,\r\n created: function () {\r\n var _this = this;\r\n this.id = this.vid;\r\n register(this);\r\n var onChange = debounce(function (_a) {\r\n var errors = _a.errors, flags = _a.flags, fields = _a.fields;\r\n _this.errors = errors;\r\n _this.flags = flags;\r\n _this.fields = fields;\r\n }, 16);\r\n this.$watch(computeObserverState, onChange);\r\n },\r\n activated: function () {\r\n register(this);\r\n },\r\n deactivated: function () {\r\n unregister(this);\r\n },\r\n beforeDestroy: function () {\r\n unregister(this);\r\n },\r\n render: function (h) {\r\n var children = normalizeChildren(this, prepareSlotProps(this));\r\n return this.slim && children.length <= 1 ? children[0] : h(this.tag, { on: this.$listeners }, children);\r\n },\r\n methods: {\r\n observe: function (subscriber, kind) {\r\n var _a;\r\n if (kind === void 0) { kind = 'provider'; }\r\n if (kind === 'observer') {\r\n this.observers.push(subscriber);\r\n return;\r\n }\r\n this.refs = __assign(__assign({}, this.refs), (_a = {}, _a[subscriber.id] = subscriber, _a));\r\n },\r\n unobserve: function (id, kind) {\r\n if (kind === void 0) { kind = 'provider'; }\r\n if (kind === 'provider') {\r\n var provider = this.refs[id];\r\n if (!provider) {\r\n return;\r\n }\r\n this.$delete(this.refs, id);\r\n return;\r\n }\r\n var idx = findIndex(this.observers, function (o) { return o.id === id; });\r\n if (idx !== -1) {\r\n this.observers.splice(idx, 1);\r\n }\r\n },\r\n validateWithInfo: function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var results, isValid, _c, errors, flags, fields;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, Promise.all(__spreadArrays(values(this.refs)\r\n .filter(function (r) { return !r.disabled; })\r\n .map(function (ref) { return ref[silent ? 'validateSilent' : 'validate']().then(function (r) { return r.valid; }); }), this.observers.filter(function (o) { return !o.disabled; }).map(function (obs) { return obs.validate({ silent: silent }); })))];\r\n case 1:\r\n results = _d.sent();\r\n isValid = results.every(function (r) { return r; });\r\n _c = computeObserverState.call(this), errors = _c.errors, flags = _c.flags, fields = _c.fields;\r\n this.errors = errors;\r\n this.flags = flags;\r\n this.fields = fields;\r\n return [2 /*return*/, {\r\n errors: errors,\r\n flags: flags,\r\n fields: fields,\r\n isValid: isValid\r\n }];\r\n }\r\n });\r\n });\r\n },\r\n validate: function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isValid;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, this.validateWithInfo({ silent: silent })];\r\n case 1:\r\n isValid = (_c.sent()).isValid;\r\n return [2 /*return*/, isValid];\r\n }\r\n });\r\n });\r\n },\r\n handleSubmit: function (cb) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isValid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validate()];\r\n case 1:\r\n isValid = _a.sent();\r\n if (!isValid || !cb) {\r\n return [2 /*return*/];\r\n }\r\n return [2 /*return*/, cb()];\r\n }\r\n });\r\n });\r\n },\r\n reset: function () {\r\n return __spreadArrays(values(this.refs), this.observers).forEach(function (ref) { return ref.reset(); });\r\n },\r\n setErrors: function (errors) {\r\n var _this = this;\r\n Object.keys(errors).forEach(function (key) {\r\n var provider = _this.refs[key];\r\n if (!provider)\r\n return;\r\n var errorArr = errors[key] || [];\r\n errorArr = typeof errorArr === 'string' ? [errorArr] : errorArr;\r\n provider.setErrors(errorArr);\r\n });\r\n this.observers.forEach(function (observer) {\r\n observer.setErrors(errors);\r\n });\r\n }\r\n }\r\n});\r\nfunction unregister(vm) {\r\n if (vm.$_veeObserver) {\r\n vm.$_veeObserver.unobserve(vm.id, 'observer');\r\n }\r\n}\r\nfunction register(vm) {\r\n if (vm.$_veeObserver) {\r\n vm.$_veeObserver.observe(vm, 'observer');\r\n }\r\n}\r\nfunction prepareSlotProps(vm) {\r\n return __assign(__assign({}, vm.flags), { errors: vm.errors, fields: vm.fields, validate: vm.validate, validateWithInfo: vm.validateWithInfo, passes: vm.handleSubmit, handleSubmit: vm.handleSubmit, reset: vm.reset });\r\n}\r\n// Creates a modified version of validation flags\r\nfunction createObserverFlags() {\r\n return __assign(__assign({}, createFlags()), { valid: true, invalid: false });\r\n}\r\nfunction computeObserverState() {\r\n var vms = __spreadArrays(values(this.refs), this.observers.filter(function (o) { return !o.disabled; }));\r\n var errors = {};\r\n var flags = createObserverFlags();\r\n var fields = {};\r\n var length = vms.length;\r\n for (var i = 0; i < length; i++) {\r\n var vm = vms[i];\r\n // validation provider\r\n if (Array.isArray(vm.errors)) {\r\n errors[vm.id] = vm.errors;\r\n fields[vm.id] = __assign({ id: vm.id, name: vm.name, failedRules: vm.failedRules }, vm.flags);\r\n continue;\r\n }\r\n // Nested observer, merge errors and fields\r\n errors = __assign(__assign({}, errors), vm.errors);\r\n fields = __assign(__assign({}, fields), vm.fields);\r\n }\r\n FLAGS_STRATEGIES.forEach(function (_a) {\r\n var flag = _a[0], method = _a[1];\r\n flags[flag] = vms[method](function (vm) { return vm.flags[flag]; });\r\n });\r\n return { errors: errors, flags: flags, fields: fields };\r\n}\n\nfunction withValidation(component, mapProps) {\r\n var _a;\r\n if (mapProps === void 0) { mapProps = identity; }\r\n var options = 'options' in component ? component.options : component;\r\n var providerOpts = ValidationProvider.options;\r\n var hoc = {\r\n name: (options.name || 'AnonymousHoc') + \"WithValidation\",\r\n props: __assign({}, providerOpts.props),\r\n data: providerOpts.data,\r\n computed: __assign({}, providerOpts.computed),\r\n methods: __assign({}, providerOpts.methods),\r\n beforeDestroy: providerOpts.beforeDestroy,\r\n inject: providerOpts.inject\r\n };\r\n var eventName = ((_a = options === null || options === void 0 ? void 0 : options.model) === null || _a === void 0 ? void 0 : _a.event) || 'input';\r\n hoc.render = function (h) {\r\n var _a;\r\n this.registerField();\r\n var vctx = createValidationCtx(this);\r\n var listeners = __assign({}, this.$listeners);\r\n var model = findModel(this.$vnode);\r\n this._inputEventName = this._inputEventName || getInputEventName(this.$vnode, model);\r\n var value = findValue(this.$vnode);\r\n onRenderUpdate(this, value === null || value === void 0 ? void 0 : value.value);\r\n var _b = createCommonHandlers(this), onInput = _b.onInput, onBlur = _b.onBlur, onValidate = _b.onValidate;\r\n mergeVNodeListeners(listeners, eventName, onInput);\r\n mergeVNodeListeners(listeners, 'blur', onBlur);\r\n this.normalizedEvents.forEach(function (evt) {\r\n mergeVNodeListeners(listeners, evt, onValidate);\r\n });\r\n // Props are any attrs not associated with ValidationProvider Plus the model prop.\r\n // WARNING: Accidental prop overwrite will probably happen.\r\n var prop = (findModelConfig(this.$vnode) || { prop: 'value' }).prop;\r\n var props = __assign(__assign(__assign({}, this.$attrs), (_a = {}, _a[prop] = model === null || model === void 0 ? void 0 : model.value, _a)), mapProps(vctx));\r\n return h(options, {\r\n attrs: this.$attrs,\r\n props: props,\r\n on: listeners,\r\n scopedSlots: this.$scopedSlots\r\n }, normalizeSlots(this.$slots, this.$vnode.context));\r\n };\r\n return hoc;\r\n}\n\nvar version = '3.4.5';\n\nexport { ValidationObserver, ValidationProvider, configure, extend, localeChanged, localize, normalizeRules, setInteractionMode, validate, version, withValidation };\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=59cdd37c&lang=scss&scoped=true&\"","/**\n * vee-validate v3.4.5\n * (c) 2020 Abdelrahman Awad\n * @license MIT\n */\n/**\r\n * Some Alpha Regex helpers.\r\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\r\n */\r\n/* eslint-disable no-misleading-character-class */\r\nvar alpha = {\r\n en: /^[A-Z]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[A-ZÆØÅ]*$/i,\r\n de: /^[A-ZÄÖÜß]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ro: /^[A-ZĂÂÎŞŢ]*$/i,\r\n ru: /^[А-ЯЁ]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[A-ZÅÄÖ]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,\r\n el: /^[Α-ώ]*$/i\r\n};\r\nvar alphaSpaces = {\r\n en: /^[A-Z\\s]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\\s]*$/i,\r\n da: /^[A-ZÆØÅ\\s]*$/i,\r\n de: /^[A-ZÄÖÜß\\s]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ\\s]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\\s]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ\\s]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ\\s]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ\\s]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\\s]*$/i,\r\n ro: /^[A-ZĂÂÎŞŢ\\s]*$/i,\r\n ru: /^[А-ЯЁ\\s]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\\s]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ\\s]*$/i,\r\n sv: /^[A-ZÅÄÖ\\s]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ\\s]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\\s]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ\\s]*$/i,\r\n el: /^[Α-ώ\\s]*$/i\r\n};\r\nvar alphanumeric = {\r\n en: /^[0-9A-Z]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[0-9A-ZÆØÅ]$/i,\r\n de: /^[0-9A-ZÄÖÜß]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ro: /^[0-9A-ZĂÂÎŞŢ]*$/i,\r\n ru: /^[0-9А-ЯЁ]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,\r\n el: /^[0-9Α-ώ]*$/i\r\n};\r\nvar alphaDash = {\r\n en: /^[0-9A-Z_-]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,\r\n da: /^[0-9A-ZÆØÅ_-]*$/i,\r\n de: /^[0-9A-ZÄÖÜß_-]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,\r\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ_-]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,\r\n ro: /^[0-9A-ZĂÂÎŞŢ_-]*$/i,\r\n ru: /^[0-9А-ЯЁ_-]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ_-]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ_-]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,\r\n el: /^[0-9Α-ώ_-]*$/i\r\n};\n\nvar validate = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });\r\n }\r\n return (alpha[locale] || alpha.en).test(value);\r\n};\r\nvar params = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha$1 = {\r\n validate: validate,\r\n params: params\r\n};\n\nvar validate$1 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$1(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaDash).some(function (loc) { return alphaDash[loc].test(value); });\r\n }\r\n return (alphaDash[locale] || alphaDash.en).test(value);\r\n};\r\nvar params$1 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_dash = {\r\n validate: validate$1,\r\n params: params$1\r\n};\n\nvar validate$2 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$2(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphanumeric).some(function (loc) { return alphanumeric[loc].test(value); });\r\n }\r\n return (alphanumeric[locale] || alphanumeric.en).test(value);\r\n};\r\nvar params$2 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_num = {\r\n validate: validate$2,\r\n params: params$2\r\n};\n\nvar validate$3 = function (value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$3(val, { locale: locale }); });\r\n }\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaSpaces).some(function (loc) { return alphaSpaces[loc].test(value); });\r\n }\r\n return (alphaSpaces[locale] || alphaSpaces.en).test(value);\r\n};\r\nvar params$3 = [\r\n {\r\n name: 'locale'\r\n }\r\n];\r\nvar alpha_spaces = {\r\n validate: validate$3,\r\n params: params$3\r\n};\n\nvar validate$4 = function (value, _a) {\r\n var _b = _a === void 0 ? {} : _a, min = _b.min, max = _b.max;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return !!validate$4(val, { min: min, max: max }); });\r\n }\r\n return Number(min) <= value && Number(max) >= value;\r\n};\r\nvar params$4 = [\r\n {\r\n name: 'min'\r\n },\r\n {\r\n name: 'max'\r\n }\r\n];\r\nvar between = {\r\n validate: validate$4,\r\n params: params$4\r\n};\n\nvar validate$5 = function (value, _a) {\r\n var target = _a.target;\r\n return String(value) === String(target);\r\n};\r\nvar params$5 = [\r\n {\r\n name: 'target',\r\n isTarget: true\r\n }\r\n];\r\nvar confirmed = {\r\n validate: validate$5,\r\n params: params$5\r\n};\n\nvar validate$6 = function (value, _a) {\r\n var length = _a.length;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$6(val, { length: length }); });\r\n }\r\n var strVal = String(value);\r\n return /^[0-9]*$/.test(strVal) && strVal.length === length;\r\n};\r\nvar params$6 = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar digits = {\r\n validate: validate$6,\r\n params: params$6\r\n};\n\nvar validateImage = function (file, width, height) {\r\n var URL = window.URL || window.webkitURL;\r\n return new Promise(function (resolve) {\r\n var image = new Image();\r\n image.onerror = function () { return resolve(false); };\r\n image.onload = function () { return resolve(image.width === width && image.height === height); };\r\n image.src = URL.createObjectURL(file);\r\n });\r\n};\r\nvar validate$7 = function (files, _a) {\r\n var width = _a.width, height = _a.height;\r\n var list = [];\r\n files = Array.isArray(files) ? files : [files];\r\n for (var i = 0; i < files.length; i++) {\r\n // if file is not an image, reject.\r\n if (!/\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(files[i].name)) {\r\n return Promise.resolve(false);\r\n }\r\n list.push(files[i]);\r\n }\r\n return Promise.all(list.map(function (file) { return validateImage(file, width, height); })).then(function (values) {\r\n return values.every(function (v) { return v; });\r\n });\r\n};\r\nvar params$7 = [\r\n {\r\n name: 'width',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n },\r\n {\r\n name: 'height',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar dimensions = {\r\n validate: validate$7,\r\n params: params$7\r\n};\n\nvar validate$8 = function (value, _a) {\r\n var multiple = (_a === void 0 ? {} : _a).multiple;\r\n // eslint-disable-next-line\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (multiple && !Array.isArray(value)) {\r\n value = String(value)\r\n .split(',')\r\n .map(function (emailStr) { return emailStr.trim(); });\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return re.test(String(val)); });\r\n }\r\n return re.test(String(value));\r\n};\r\nvar params$8 = [\r\n {\r\n name: 'multiple',\r\n default: false\r\n }\r\n];\r\nvar email = {\r\n validate: validate$8,\r\n params: params$8\r\n};\n\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n return Array.isArray(arr) && arr.length === 0;\r\n}\r\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\n\nfunction includes(collection, item) {\r\n return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n if (isCallable(Array.from)) {\r\n return Array.from(arrayLike);\r\n }\r\n /* istanbul ignore next */\r\n return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n var array = [];\r\n var length = arrayLike.length;\r\n for (var i = 0; i < length; i++) {\r\n array.push(arrayLike[i]);\r\n }\r\n return array;\r\n}\n\nvar validate$9 = function (value, options) {\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$9(val, options); });\r\n }\r\n return toArray(options).some(function (item) {\r\n // eslint-disable-next-line\r\n return item == value;\r\n });\r\n};\r\nvar oneOf = {\r\n validate: validate$9\r\n};\n\nvar validate$a = function (value, args) {\r\n return !validate$9(value, args);\r\n};\r\nvar excluded = {\r\n validate: validate$a\r\n};\n\nvar validate$b = function (files, extensions) {\r\n var regex = new RegExp(\".(\" + extensions.join('|') + \")$\", 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.name); });\r\n }\r\n return regex.test(files.name);\r\n};\r\nvar ext = {\r\n validate: validate$b\r\n};\n\nvar validate$c = function (files) {\r\n var regex = /\\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.name); });\r\n }\r\n return regex.test(files.name);\r\n};\r\nvar image = {\r\n validate: validate$c\r\n};\n\nvar validate$d = function (value) {\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });\r\n }\r\n return /^-?[0-9]+$/.test(String(value));\r\n};\r\nvar integer = {\r\n validate: validate$d\r\n};\n\nvar validate$e = function (value, _a) {\r\n var other = _a.other;\r\n return value === other;\r\n};\r\nvar params$9 = [\r\n {\r\n name: 'other'\r\n }\r\n];\r\nvar is = {\r\n validate: validate$e,\r\n params: params$9\r\n};\n\nvar validate$f = function (value, _a) {\r\n var other = _a.other;\r\n return value !== other;\r\n};\r\nvar params$a = [\r\n {\r\n name: 'other'\r\n }\r\n];\r\nvar is_not = {\r\n validate: validate$f,\r\n params: params$a\r\n};\n\nvar validate$g = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (typeof value === 'string') {\r\n value = toArray(value);\r\n }\r\n if (typeof value === 'number') {\r\n value = String(value);\r\n }\r\n if (!value.length) {\r\n value = toArray(value);\r\n }\r\n return value.length === length;\r\n};\r\nvar params$b = [\r\n {\r\n name: 'length',\r\n cast: function (value) { return Number(value); }\r\n }\r\n];\r\nvar length = {\r\n validate: validate$g,\r\n params: params$b\r\n};\n\nvar validate$h = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return length >= 0;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$h(val, { length: length }); });\r\n }\r\n return String(value).length <= length;\r\n};\r\nvar params$c = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar max = {\r\n validate: validate$h,\r\n params: params$c\r\n};\n\nvar validate$i = function (value, _a) {\r\n var max = _a.max;\r\n if (isNullOrUndefined(value) || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(function (val) { return validate$i(val, { max: max }); });\r\n }\r\n return Number(value) <= max;\r\n};\r\nvar params$d = [\r\n {\r\n name: 'max',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar max_value = {\r\n validate: validate$i,\r\n params: params$d\r\n};\n\nvar validate$j = function (files, mimes) {\r\n var regex = new RegExp(mimes.join('|').replace('*', '.+') + \"$\", 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(function (file) { return regex.test(file.type); });\r\n }\r\n return regex.test(files.type);\r\n};\r\nvar mimes = {\r\n validate: validate$j\r\n};\n\nvar validate$k = function (value, _a) {\r\n var length = _a.length;\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$k(val, { length: length }); });\r\n }\r\n return String(value).length >= length;\r\n};\r\nvar params$e = [\r\n {\r\n name: 'length',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar min = {\r\n validate: validate$k,\r\n params: params$e\r\n};\n\nvar validate$l = function (value, _a) {\r\n var min = _a.min;\r\n if (isNullOrUndefined(value) || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(function (val) { return validate$l(val, { min: min }); });\r\n }\r\n return Number(value) >= min;\r\n};\r\nvar params$f = [\r\n {\r\n name: 'min',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar min_value = {\r\n validate: validate$l,\r\n params: params$f\r\n};\n\nvar ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\r\nvar en = /^[0-9]+$/;\r\nvar validate$m = function (value) {\r\n var testValue = function (val) {\r\n var strValue = String(val);\r\n return en.test(strValue) || ar.test(strValue);\r\n };\r\n if (Array.isArray(value)) {\r\n return value.every(testValue);\r\n }\r\n return testValue(value);\r\n};\r\nvar numeric = {\r\n validate: validate$m\r\n};\n\nvar validate$n = function (value, _a) {\r\n var regex = _a.regex;\r\n if (Array.isArray(value)) {\r\n return value.every(function (val) { return validate$n(val, { regex: regex }); });\r\n }\r\n return regex.test(String(value));\r\n};\r\nvar params$g = [\r\n {\r\n name: 'regex',\r\n cast: function (value) {\r\n if (typeof value === 'string') {\r\n return new RegExp(value);\r\n }\r\n return value;\r\n }\r\n }\r\n];\r\nvar regex = {\r\n validate: validate$n,\r\n params: params$g\r\n};\n\nvar validate$o = function (value, _a) {\r\n var allowFalse = (_a === void 0 ? { allowFalse: true } : _a).allowFalse;\r\n var result = {\r\n valid: false,\r\n required: true\r\n };\r\n if (isNullOrUndefined(value) || isEmptyArray(value)) {\r\n return result;\r\n }\r\n // incase a field considers `false` as an empty value like checkboxes.\r\n if (value === false && !allowFalse) {\r\n return result;\r\n }\r\n result.valid = !!String(value).trim().length;\r\n return result;\r\n};\r\nvar computesRequired = true;\r\nvar params$h = [\r\n {\r\n name: 'allowFalse',\r\n default: true\r\n }\r\n];\r\nvar required = {\r\n validate: validate$o,\r\n params: params$h,\r\n computesRequired: computesRequired\r\n};\n\nvar testEmpty = function (value) {\r\n return isEmptyArray(value) || includes([false, null, undefined], value) || !String(value).trim().length;\r\n};\r\nvar validate$p = function (value, _a) {\r\n var target = _a.target, values = _a.values;\r\n var required;\r\n if (values && values.length) {\r\n if (!Array.isArray(values) && typeof values === 'string') {\r\n values = [values];\r\n }\r\n // eslint-disable-next-line\r\n required = values.some(function (val) { return val == String(target).trim(); });\r\n }\r\n else {\r\n required = !testEmpty(target);\r\n }\r\n if (!required) {\r\n return {\r\n valid: true,\r\n required: required\r\n };\r\n }\r\n return {\r\n valid: !testEmpty(value),\r\n required: required\r\n };\r\n};\r\nvar params$i = [\r\n {\r\n name: 'target',\r\n isTarget: true\r\n },\r\n {\r\n name: 'values'\r\n }\r\n];\r\nvar computesRequired$1 = true;\r\nvar required_if = {\r\n validate: validate$p,\r\n params: params$i,\r\n computesRequired: computesRequired$1\r\n};\n\nvar validate$q = function (files, _a) {\r\n var size = _a.size;\r\n if (isNaN(size)) {\r\n return false;\r\n }\r\n var nSize = size * 1024;\r\n if (!Array.isArray(files)) {\r\n return files.size <= nSize;\r\n }\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].size > nSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\nvar params$j = [\r\n {\r\n name: 'size',\r\n cast: function (value) {\r\n return Number(value);\r\n }\r\n }\r\n];\r\nvar size = {\r\n validate: validate$q,\r\n params: params$j\r\n};\n\nvar validate$r = function (value, params) {\r\n var _a = params || {}, _b = _a.decimals, decimals = _b === void 0 ? 0 : _b, _c = _a.separator, separator = _c === void 0 ? 'dot' : _c;\r\n var separators = {\r\n dot: '.',\r\n comma: ','\r\n };\r\n var regexPart = +decimals === 0 ? '+' : \"{\" + decimals + \"}\";\r\n var regex = new RegExp(\"^-?\\\\d+\\\\\" + (separators[separator] || '.') + \"\\\\d\" + regexPart + \"$\");\r\n return Array.isArray(value) ? value.every(function (val) { return regex.test(String(val)); }) : regex.test(String(value));\r\n};\r\nvar params$k = [\r\n {\r\n name: 'decimals',\r\n default: 0\r\n },\r\n {\r\n name: 'separator',\r\n default: 'dot'\r\n }\r\n];\r\nvar double = {\r\n validate: validate$r,\r\n params: params$k\r\n};\n\nexport { alpha$1 as alpha, alpha_dash, alpha_num, alpha_spaces, between, confirmed, digits, dimensions, double, email, excluded, ext, image, integer, is, is_not, length, max, max_value, mimes, min, min_value, numeric, oneOf, regex, required, required_if, size };\n","export const validatorPositive = value => {\r\n if (value >= 0) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nexport const validatorPassword = password => {\r\n /* eslint-disable no-useless-escape */\r\n const regExp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*()]).{8,}/\r\n /* eslint-enable no-useless-escape */\r\n const validPassword = regExp.test(password)\r\n return validPassword\r\n}\r\n\r\nexport const validatorCreditCard = creditnum => {\r\n /* eslint-disable no-useless-escape */\r\n const cRegExp = /^(?:3[47][0-9]{13})$/\r\n /* eslint-enable no-useless-escape */\r\n const validCreditCard = cRegExp.test(creditnum)\r\n return validCreditCard\r\n}\r\n\r\nexport const validatorUrlValidator = val => {\r\n if (val === undefined || val === null || val.length === 0) {\r\n return true\r\n }\r\n /* eslint-disable no-useless-escape */\r\n const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\r\n /* eslint-enable no-useless-escape */\r\n return re.test(val)\r\n}\r\n","import { extend, localize } from 'vee-validate'\r\nimport {\r\n required as rule_required,\r\n email as rule_email,\r\n min as rule_min,\r\n confirmed as rule_confirmed,\r\n regex as rule_regex,\r\n between as rule_between,\r\n alpha as rule_alpha,\r\n integer as rule_integer,\r\n digits as rule_digits,\r\n alpha_dash as rule_alpha_dash,\r\n alpha_num as rule_alpha_num,\r\n length as rule_length,\r\n} from 'vee-validate/dist/rules'\r\nimport ar from 'vee-validate/dist/locale/ar.json'\r\nimport en from 'vee-validate/dist/locale/en.json'\r\n\r\n// eslint-disable-next-line object-curly-newline\r\nimport { validatorPositive, validatorUrlValidator, validatorPassword, validatorCreditCard } from './validators'\r\n\r\n// ////////////////////////////////////////////////////////\r\n// General\r\n// ////////////////////////////////////////////////////////\r\n\r\nexport const required = extend('required', rule_required)\r\n\r\nexport const email = extend('email', rule_email)\r\n\r\nexport const min = extend('min', rule_min)\r\n\r\nexport const confirmed = extend('confirmed', rule_confirmed)\r\n\r\nexport const regex = extend('regex', rule_regex)\r\n\r\nexport const between = extend('between', rule_between)\r\n\r\nexport const alpha = extend('alpha', rule_alpha)\r\n\r\nexport const integer = extend('integer', rule_integer)\r\n\r\nexport const digits = extend('digits', rule_digits)\r\n\r\nexport const alphaDash = extend('alpha-dash', rule_alpha_dash)\r\n\r\nexport const alphaNum = extend('alpha-num', rule_alpha_num)\r\n\r\nexport const length = extend('length', rule_length)\r\n\r\nexport const positive = extend('positive', {\r\n validate: validatorPositive,\r\n message: 'Please enter positive number!',\r\n})\r\n\r\nexport const credit = extend('credit-card', {\r\n validate: validatorCreditCard,\r\n message: 'It is not valid credit card!',\r\n})\r\n\r\nexport const password = extend('password', {\r\n validate: validatorPassword,\r\n message: 'Your {_field_} must contain at least one uppercase, one lowercase, one special character and one digit',\r\n})\r\n\r\nexport const url = extend('url', {\r\n validate: validatorUrlValidator,\r\n message: 'URL is invalid',\r\n})\r\n\r\n// Install English and Arabic localizations.\r\nlocalize({\r\n en: {\r\n messages: en.messages,\r\n names: {\r\n email: 'Email',\r\n password: 'Password',\r\n },\r\n fields: {\r\n password: {\r\n min: '{_field_} is too short, you want to get hacked?',\r\n },\r\n },\r\n },\r\n ar: {\r\n messages: ar.messages,\r\n names: {\r\n email: 'البريد الإلكتروني',\r\n password: 'كلمة السر',\r\n },\r\n fields: {\r\n password: {\r\n min: 'كلمة السر قصيرة جداً سيتم اختراقك',\r\n },\r\n },\r\n },\r\n})\r\n// ////////////////////////////////////////////////////////\r\n// NOTE:\r\n// Quasar validation for reference only\r\n// Remove this note once development is finished and make sure to\r\n// to convert all of them in veevalidate version\r\n// ////////////////////////////////////////////////////////\r\n\r\n// export const required = (val) => {\r\n// return (val && val.length > 0) || '*Field is required'\r\n// }\r\n\r\n// export const required_obj = (obj) => {\r\n// if (obj === null || obj === undefined) return '*Field is required'\r\n// return (Object.entries(obj).length > 0 && obj.constructor === Object) || '*Field is required'\r\n// }\r\n\r\n// export const no_blank_spaces_arr = (arr) => {\r\n// return arr.every(val => (val.trim() && val.trim().length > 0)) || 'Blank Spaces are not allowed'\r\n// }\r\n\r\n// export const url = val => {\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// // Used\r\n// // https://stackoverflow.com/questions/4314741/url-regex-validation\r\n\r\n// // Other\r\n// // https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\r\n// // https://www.w3resource.com/javascript-exercises/javascript-regexp-exercise-9.php\r\n// // https://www.geeksforgeeks.org/how-to-validate-url-using-regular-expression-in-javascript/\r\n\r\n// /* eslint-disable no-useless-escape */\r\n// const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\r\n// /* eslint-enable no-useless-escape */\r\n// return re.test(val) || 'URL is invalid'\r\n// }\r\n\r\n// export const date = val => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// // https://github.com/quasarframework/quasar/blob/dev/ui/src/utils/patterns.js\r\n// return /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(val) || 'Date is invalid'\r\n// }\r\n\r\n// export const max = (val, max) => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null) return true\r\n\r\n// return val.length <= max || `More than ${max} characters are not allowed`\r\n// }\r\n\r\n// export const max_arr = (val, max) => {\r\n// return val.length <= max || `More than ${max} values are not allowed`\r\n// }\r\n\r\n// export const min = (val, min) => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// return val.length >= min || `Minimum ${min} characters are required`\r\n// }\r\n\r\n// export const num_range = (val, min, max) => {\r\n\r\n// // If blank return\r\n// if (val === undefined || val === null || val.length === 0) return true\r\n\r\n// const msg = 'Value is invalid'\r\n// if (min === null) return val <= max || msg\r\n// else if (max === null) return val >= min || msg\r\n// else return (val >= min && val <= max) || msg\r\n// }\r\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}])});","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\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\",\"move\":_vm.checkMove},model:{value:(_vm.tasks),callback:function ($$v) {_vm.tasks=$$v},expression:\"tasks\"}},_vm._l((_vm.tasks),function(task,index){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(index)+\" - \"+_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 }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {},\r\n getters: {},\r\n mutations: {},\r\n actions: {\r\n fetchTasks(ctx, payload) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get('/apps/todo/tasks', { params: payload })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n addTask(ctx, taskData) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post('/apps/todo/tasks', { task: taskData })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n updateTask(ctx, { task }) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(`/apps/todo/tasks/${task.id}`, { task })\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n removeTask(ctx, { id }) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .delete(`/apps/todo/tasks/${id}`)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n },\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_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'\r\n// import store from '@/store'\r\n\r\nexport default function useTaskHandler(props, emit) {\r\n // ------------------------------------------------\r\n // taskLocal\r\n // ------------------------------------------------\r\n const taskLocal = ref(JSON.parse(JSON.stringify(props.task.value)))\r\n const resetTaskLocal = () => {\r\n taskLocal.value = JSON.parse(JSON.stringify(props.task.value))\r\n }\r\n watch(props.task, () => {\r\n resetTaskLocal()\r\n })\r\n\r\n // ------------------------------------------------\r\n // isEventHandlerSidebarActive\r\n // * Clear form if sidebar is closed\r\n // ! We can hide it using @hidden event\r\n // ------------------------------------------------\r\n // watch(props.isEventHandlerSidebarActive, val => {\r\n // // ? Don't reset event till transition is finished\r\n // if (!val) {\r\n // setTimeout(() => {\r\n // clearForm.value()\r\n // }, 350)\r\n // }\r\n // })\r\n\r\n const onSubmit = () => {\r\n const taskData = JSON.parse(JSON.stringify(taskLocal))\r\n\r\n // * If event has id => Edit Event\r\n // Emit event for add/update event\r\n if (props.task.value.id) emit('update-task', taskData.value)\r\n else emit('add-task', taskData.value)\r\n\r\n // Close sidebar\r\n emit('update:is-task-handler-sidebar-active', false)\r\n }\r\n\r\n // *===============================================---*\r\n // *--------- UI ---------------------------------------*\r\n // *===============================================---*\r\n\r\n // ------------------------------------------------\r\n // guestOptions\r\n // ------------------------------------------------\r\n\r\n /* eslint-disable global-require */\r\n const assigneeOptions = [\r\n { avatar: require('@/assets/images/avatars/1-small.png'), fullName: 'Jane Foster' },\r\n { avatar: require('@/assets/images/avatars/3-small.png'), fullName: 'Donna Frank' },\r\n { avatar: require('@/assets/images/avatars/5-small.png'), fullName: 'Gabrielle Robertson' },\r\n { avatar: require('@/assets/images/avatars/7-small.png'), fullName: 'Lori Spears' },\r\n { avatar: require('@/assets/images/avatars/9-small.png'), fullName: 'Sandy Vega' },\r\n { avatar: require('@/assets/images/avatars/11-small.png'), fullName: 'Cheryl May' },\r\n ]\r\n /* eslint-enable global-require */\r\n\r\n const resolveAvatarVariant = tags => {\r\n if (tags.includes('high')) return 'primary'\r\n if (tags.includes('medium')) return 'warning'\r\n if (tags.includes('low')) return 'success'\r\n if (tags.includes('update')) return 'danger'\r\n if (tags.includes('team')) return 'info'\r\n return 'primary'\r\n }\r\n\r\n const tagOptions = [\r\n { label: 'Team', value: 'team' },\r\n { label: 'Low', value: 'low' },\r\n { label: 'Medium', value: 'medium' },\r\n { label: 'High', value: 'high' },\r\n { label: 'Update', value: 'update' },\r\n ]\r\n\r\n return {\r\n taskLocal,\r\n resetTaskLocal,\r\n\r\n // UI\r\n assigneeOptions,\r\n resolveAvatarVariant,\r\n tagOptions,\r\n onSubmit,\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=59cdd37c&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=59cdd37c&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 \"59cdd37c\",\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'\r\n// eslint-disable-next-line object-curly-newline\r\nimport { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'\r\n\r\nexport const isObject = obj => typeof obj === 'object' && obj !== null\r\n\r\nexport const isToday = date => {\r\n const today = new Date()\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n date.getDate() === today.getDate() &&\r\n date.getMonth() === today.getMonth() &&\r\n date.getFullYear() === today.getFullYear()\r\n /* eslint-enable */\r\n )\r\n}\r\n\r\nconst getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]\r\n\r\n// ? Light and Dark variant is not included\r\n// prettier-ignore\r\nexport const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])\r\n\r\nexport const isDynamicRouteActive = route => {\r\n const { route: resolvedRoute } = router.resolve(route)\r\n return resolvedRoute.path === router.currentRoute.path\r\n}\r\n\r\n// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1\r\nexport const useRouter = () => {\r\n const vm = getCurrentInstance().proxy\r\n const state = reactive({\r\n route: vm.$route,\r\n })\r\n\r\n watch(\r\n () => vm.$route,\r\n r => {\r\n state.route = r\r\n },\r\n )\r\n\r\n return { ...toRefs(state), router: vm.$router }\r\n}\r\n\r\n/**\r\n * This is just enhancement over Object.extend [Gives deep extend]\r\n * @param {target} a Object which contains values to be overridden\r\n * @param {source} b Object which contains values to override\r\n */\r\n// export const objectExtend = (a, b) => {\r\n// // Don't touch 'null' or 'undefined' objects.\r\n// if (a == null || b == null) {\r\n// return a\r\n// }\r\n\r\n// Object.keys(b).forEach(key => {\r\n// if (Object.prototype.toString.call(b[key]) === '[object Object]') {\r\n// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = objectExtend(a[key], b[key])\r\n// }\r\n// } else {\r\n// // eslint-disable-next-line no-param-reassign\r\n// a[key] = b[key]\r\n// }\r\n// })\r\n\r\n// return a\r\n// }\r\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});","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":""}