{"version":3,"sources":["webpack:///../../../src/components/VAlert/VAlert.ts","webpack:///./node_modules/moment/src/lib/create/parsing-flags.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/moment/src/lib/utils/index-of.js","webpack:///./node_modules/moment/src/lib/units/constants.js","webpack:///./node_modules/moment/src/lib/utils/deprecate.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./src/components/MessageComponents/Slots/SelectedEmailMessage.vue?70d9","webpack:///src/components/MessageComponents/Slots/SelectedEmailMessage.vue","webpack:///./src/components/MessageComponents/Slots/SelectedEmailMessage.vue?e035","webpack:///./src/components/MessageComponents/Slots/SelectedEmailMessage.vue","webpack:///../../../src/components/VOverlay/index.ts","webpack:///./node_modules/moment/src/lib/utils/has-own-prop.js","webpack:///./node_modules/moment/src/lib/locale/formats.js","webpack:///../../../src/components/VBottomSheet/VBottomSheet.ts","webpack:///./node_modules/moment/src/lib/utils/to-int.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///./node_modules/moment/src/lib/utils/extend.js","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///./node_modules/moment/src/lib/format/format.js","webpack:///./src/components/MessageComponents/Slots/SendEmail.vue?c34a","webpack:///src/components/MessageComponents/Slots/SendEmail.vue","webpack:///./src/components/MessageComponents/Slots/SendEmail.vue?f99e","webpack:///./src/components/MessageComponents/Slots/SendEmail.vue?f83a","webpack:///./src/components/MessageComponents/Slots/SendEmail.vue?d076","webpack:///./node_modules/moment/src/lib/locale/calendar.js","webpack:///./node_modules/moment/src/lib/utils/abs-floor.js","webpack:///../../../src/mixins/validatable/index.ts","webpack:///./src/components/MessageComponents/EmailReply.vue?e7a1","webpack:///./node_modules/moment/src/lib/utils/is-number.js","webpack:///./node_modules/moment/src/lib/moment/get-set.js","webpack:///./node_modules/moment/src/lib/units/day-of-week.js","webpack:///./node_modules/moment/src/lib/utils/is-date.js","webpack:///./node_modules/moment/src/lib/utils/zero-fill.js","webpack:///./node_modules/moment/src/lib/utils/map.js","webpack:///./node_modules/moment/src/lib/create/check-overflow.js","webpack:///./node_modules/moment/src/lib/create/from-string.js","webpack:///./node_modules/moment/src/lib/utils/defaults.js","webpack:///./node_modules/moment/src/lib/create/from-array.js","webpack:///./node_modules/moment/src/lib/create/from-string-and-format.js","webpack:///./node_modules/moment/src/lib/create/from-string-and-array.js","webpack:///./node_modules/moment/src/lib/create/from-object.js","webpack:///./node_modules/moment/src/lib/create/from-anything.js","webpack:///./node_modules/moment/src/lib/locale/set.js","webpack:///./node_modules/moment/src/lib/locale/ordinal.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/moment/src/lib/units/week.js","webpack:///./node_modules/moment/src/lib/locale/constructor.js","webpack:///./node_modules/moment/src/lib/utils/is-function.js","webpack:///./src/components/MessageComponents/EmailReply.vue?06f2","webpack:///src/components/MessageComponents/EmailReply.vue","webpack:///./src/components/MessageComponents/EmailReply.vue?a743","webpack:///./src/components/MessageComponents/EmailReply.vue?8884","webpack:///./src/components/MessageComponents/Slots/AttachmentsBottomSheet.vue?8f55","webpack:///src/components/MessageComponents/Slots/AttachmentsBottomSheet.vue","webpack:///./src/components/MessageComponents/Slots/AttachmentsBottomSheet.vue?2308","webpack:///./src/components/MessageComponents/Slots/AttachmentsBottomSheet.vue","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///./node_modules/moment/src/lib/units/week-calendar-utils.js","webpack:///./node_modules/moment/src/lib/utils/hooks.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/moment/src/lib/locale/relative.js","webpack:///./node_modules/moment/src/lib/create/utc.js","webpack:///./node_modules/moment/src/lib/moment/constructor.js","webpack:///./node_modules/moment/src/lib/utils/mod.js","webpack:///./node_modules/moment/src/lib/units/month.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/moment/src/lib/utils/is-undefined.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/moment/src/lib/locale/invalid.js","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///./node_modules/moment/src/lib/units/hour.js","webpack:///../../../src/components/VBtn/index.ts","webpack:///./node_modules/moment/src/lib/utils/keys.js","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///./node_modules/moment/src/lib/create/date-from-array.js","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///./node_modules/moment/src/lib/utils/is-array.js","webpack:///./node_modules/moment/src/lib/units/priorities.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./src/components/Snackbars/Snackbar.vue?82e1","webpack:///src/components/Snackbars/Snackbar.vue","webpack:///./src/components/Snackbars/Snackbar.vue?1093","webpack:///./src/components/Snackbars/Snackbar.vue?84fc","webpack:///./node_modules/moment/src/lib/parse/token.js","webpack:///./node_modules/moment/src/lib/utils/is-object-empty.js","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///./node_modules/moment/src/lib/create/local.js","webpack:///./node_modules/moment/src/lib/locale/base-config.js","webpack:///./node_modules/moment/src/lib/units/year.js","webpack:///./node_modules/moment/src/lib/locale/locales.js","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///./src/views/MessageViews/BranchEmails.vue?8841","webpack:///./src/components/MessageComponents/BranchEmails.vue?5086","webpack:///src/components/MessageComponents/BranchEmails.vue","webpack:///./src/components/MessageComponents/BranchEmails.vue?a1b8","webpack:///./src/components/MessageComponents/BranchEmails.vue","webpack:///src/views/MessageViews/BranchEmails.vue","webpack:///./src/views/MessageViews/BranchEmails.vue?77f2","webpack:///./src/views/MessageViews/BranchEmails.vue","webpack:///./node_modules/moment/src/lib/parse/regex.js","webpack:///./node_modules/moment/src/lib/moment/min-max.js","webpack:///./node_modules/moment/src/lib/moment/now.js","webpack:///./node_modules/moment/src/lib/duration/valid.js","webpack:///./node_modules/moment/src/lib/duration/constructor.js","webpack:///./node_modules/moment/src/lib/utils/abs-round.js","webpack:///./node_modules/moment/src/lib/utils/compare-arrays.js","webpack:///./node_modules/moment/src/lib/units/offset.js","webpack:///./node_modules/moment/src/lib/duration/create.js","webpack:///./node_modules/moment/src/lib/moment/add-subtract.js","webpack:///./node_modules/moment/src/lib/utils/is-string.js","webpack:///./node_modules/moment/src/lib/utils/is-moment-input.js","webpack:///./node_modules/moment/src/lib/utils/is-calendar-spec.js","webpack:///./node_modules/moment/src/lib/moment/calendar.js","webpack:///./node_modules/moment/src/lib/moment/clone.js","webpack:///./node_modules/moment/src/lib/moment/compare.js","webpack:///./node_modules/moment/src/lib/moment/diff.js","webpack:///./node_modules/moment/src/lib/moment/format.js","webpack:///./node_modules/moment/src/lib/moment/from.js","webpack:///./node_modules/moment/src/lib/moment/to.js","webpack:///./node_modules/moment/src/lib/moment/locale.js","webpack:///./node_modules/moment/src/lib/moment/start-end-of.js","webpack:///./node_modules/moment/src/lib/moment/to-type.js","webpack:///./node_modules/moment/src/lib/moment/valid.js","webpack:///./node_modules/moment/src/lib/moment/creation-data.js","webpack:///./node_modules/moment/src/lib/units/era.js","webpack:///./node_modules/moment/src/lib/units/week-year.js","webpack:///./node_modules/moment/src/lib/units/quarter.js","webpack:///./node_modules/moment/src/lib/units/day-of-month.js","webpack:///./node_modules/moment/src/lib/units/day-of-year.js","webpack:///./node_modules/moment/src/lib/units/minute.js","webpack:///./node_modules/moment/src/lib/units/second.js","webpack:///./node_modules/moment/src/lib/units/millisecond.js","webpack:///./node_modules/moment/src/lib/units/timezone.js","webpack:///./node_modules/moment/src/lib/moment/prototype.js","webpack:///./node_modules/moment/src/lib/moment/moment.js","webpack:///./node_modules/moment/src/lib/locale/pre-post-format.js","webpack:///./node_modules/moment/src/lib/locale/prototype.js","webpack:///./node_modules/moment/src/lib/locale/lists.js","webpack:///./node_modules/moment/src/lib/locale/en.js","webpack:///./node_modules/moment/src/lib/locale/locale.js","webpack:///./node_modules/moment/src/lib/duration/abs.js","webpack:///./node_modules/moment/src/lib/duration/add-subtract.js","webpack:///./node_modules/moment/src/lib/utils/abs-ceil.js","webpack:///./node_modules/moment/src/lib/duration/bubble.js","webpack:///./node_modules/moment/src/lib/duration/as.js","webpack:///./node_modules/moment/src/lib/duration/clone.js","webpack:///./node_modules/moment/src/lib/duration/get.js","webpack:///./node_modules/moment/src/lib/duration/humanize.js","webpack:///./node_modules/moment/src/lib/duration/iso-string.js","webpack:///./node_modules/moment/src/lib/duration/prototype.js","webpack:///./node_modules/moment/src/lib/units/timestamp.js","webpack:///./node_modules/moment/src/moment.js","webpack:///./node_modules/moment/src/lib/units/aliases.js","webpack:///./node_modules/moment/src/lib/utils/is-leap-year.js","webpack:///./node_modules/moment/src/lib/utils/is-object.js","webpack:///./src/components/Snackbars/Snackbar.vue?626c","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/selectable/index.ts","webpack:///./node_modules/moment/src/lib/utils/some.js","webpack:///./node_modules/moment/src/lib/create/valid.js"],"names":["mixins","VSheet","Toggleable","Transitionable","extend","name","props","border","type","String","validator","val","includes","closeLabel","default","coloredBorder","Boolean","dense","dismissible","closeIcon","icon","outlined","prominent","text","value","computed","__cachedBorder","this","data","staticClass","class","setBackgroundColor","computedColor","$createElement","__cachedDismissible","color","iconColor","VBtn","small","attrs","$vuetify","lang","t","on","click","isActive","VIcon","__cachedIcon","computedIcon","classes","options","call","hasColoredIcon","hasText","undefined","isDark","Themeable","created","$attrs","hasOwnProperty","breaking","methods","genWrapper","children","$slots","prepend","genContent","append","$scopedSlots","close","toggle","genAlert","role","listeners$","style","styles","directives","setColor","setTextColor","render","h","transition","origin","mode","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","fails","wellKnownSymbol","IS_PURE","ITERATOR","module","exports","url","URL","searchParams","result","pathname","forEach","key","toJSON","sort","href","get","URLSearchParams","username","host","hash","indexOf","Array","prototype","o","i","length","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","warn","msg","suppressDeprecationWarnings","console","deprecate","fn","firstTime","deprecationHandler","arg","args","arguments","slice","push","join","Error","stack","apply","deprecations","deprecateSimple","Object","is","x","y","baseMixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","ClickOutside","dark","disabled","fullscreen","light","maxWidth","Number","noClickAnimation","persistent","retainFocus","scrollable","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","contentClass","trim","contentClasses","hasActivator","activator","watch","show","hideScroll","removeOverlay","unbind","focus","showScroll","genOverlay","removed","beforeMount","$nextTick","isBooted","beforeDestroy","window","animateClick","clearTimeout","setTimeout","closeConditional","e","target","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","getMaxZIndex","document","documentElement","classList","add","hideOverlay","activeElement","bind","addEventListener","onFocusin","removeEventListener","onClickOutside","$emit","onKeydown","keyCode","keyCodes","esc","getOpenDependents","getActivator","getOpenDependentElements","some","el","focusable","querySelectorAll","find","hasAttribute","showLazyContent","VThemeProvider","root","tabindex","getScopeIdAttrs","keydown","zIndex","ref","genTransition","genInnerContent","appear","handler","include","transformOrigin","convertToUnit","getContentSlot","attach","genActivator","_vm","_h","_c","_self","closeMsgDialog","_v","scopedSlots","_u","_g","replyToMsgDialog","openNativeEmail","_s","selectedMessage","Subject","Attachments","breakpoint","xsOnly","toggleAttachmentSheet","smAndUp","_e","Sender","AccountName","EmailAddress","CcAccounts","_l","item","BccAccounts","domProps","Body","staticRenderFns","component","VCard","VCardSubtitle","VCardText","VCardTitle","VList","VListItem","VListItemTitle","VMenu","VSpacer","VOverlay","hasOwnProp","a","b","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","longDateFormat","format","_longDateFormat","formatUpper","toUpperCase","match","map","tok","VDialog","inset","toInt","argumentForCoercion","coercedNumber","isFinite","$","stat","EOF","DESCRIPTORS","USE_NATIVE_URL","global","uncurryThis","defineProperties","f","redefine","anInstance","hasOwn","assign","arrayFrom","arraySlice","codeAt","toASCII","$toString","setToStringTag","validateArgumentsLength","URLSearchParamsModule","InternalStateModule","setInternalState","set","getInternalURLState","getterFor","getInternalSearchParamsState","getState","NativeURL","TypeError","parseInt","floor","Math","pow","charAt","exec","numberToString","toString","pop","replace","shift","split","stringSlice","toLowerCase","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","input","partsLength","numbers","index","part","radix","number","ipv4","parts","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","base","baseState","failure","urlString","parse","bindURL","stateOverride","codePoints","bufferCodePoints","state","buffer","seenAt","seenBracket","seenPasswordToken","scheme","password","port","path","query","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","serialize","output","setHref","update","getOrigin","URLConstructor","error","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","facade","getHash","setHash","that","URLPrototype","accessorDescriptor","getter","setter","configurable","enumerable","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","forced","sham","VAutocomplete","delimiters","returnObject","editingIndex","computedCounterValue","multiple","selectedItems","internalSearch","hasSlot","VSelect","isAnyValueAllowed","menuCanShow","isFocused","hasDisplayedItems","hideNoData","searchIsDirty","onInternalSearchChanged","delimiter","d","endsWith","updateTags","updateMenuDimensions","genInput","paste","onPaste","genChipSelection","chip","componentOptions","listeners","dblclick","getText","selectedIndex","onChipInput","onEnterDown","preventDefault","getMenuIndex","updateSelf","onKeyDown","ctrlKey","home","end","left","selectionStart","enter","changeSelectedIndex","onTabDown","stopPropagation","selectItem","updateEditing","toLocaleLowerCase","setSelectedItems","internalValue","setValue","findIndex","splice","updateCombobox","isUsingSlot","selection","hasChips","menuIndex","itemToSelect","event","pastedItemText","clipboardData","_event$clipboardData","getData","findExistingIndex","clearableCallback","Colorable","PositionableFactory","app","centered","multiLine","timeout","v","vertical","activeTimeout","absolute","bottom","top","hasBackground","right","application","bar","footer","insetFooter","paddingBottom","paddingLeft","paddingRight","paddingTop","mounted","genActions","getSlot","pointerenter","pointerleave","createSimpleFunctional","valueOf","VChip","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","removeFormattingTokens","makeFormatFunction","array","mom","formatMoment","isValid","expandFormat","invalidDate","locale","replaceLongDateFormatTokens","lastIndex","test","model","$$v","sendEmailDialog","expression","closeSendEmailDialog","confirmSelectBgColor","$store","loggedInUserEmailAccounts","checkForDuplicatedEmailAccount","selectedEmailAccount","_b","JSON","stringify","validateEmailColor","$event","parent","toEmails","ccEmails","showCc","bccEmails","showBcc","subject","editorOption","onEditorBlur","onEditorFocus","onEditorReady","alert","validateEmail","sendEmail","toolbarOptions","components","quillEditor","theme","modules","toolbar","toEmailInput","valid","errorMessages","emailValidator","email","pattern","messagingEmailAccountID","to","cc","bcc","dispatch","emailDetails","then","catch","quill","onEditorChange","html","editor","myQuillEditor","isEmailAccountSelected","VAlert","VAvatar","VCol","VCombobox","VRow","VTextField","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","now","_calendar","absFloor","ceil","RegistrableInject","errorCount","messages","readonly","rules","success","successMessages","validateOnBlur","required","errorBucket","hasColor","hasFocused","hasInput","isResetting","lazyValue","isDisabled","appIsDark","hasError","internalErrorMessages","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","form","isInteractive","isReadonly","validations","validationState","newVal","oldVal","deepEqual","validate","deep","register","unregister","isArray","reset","resetValidation","force","rule","consoleError","isNumber","makeGetSet","unit","keepTime","updateOffset","_d","_isUTC","NaN","isNaN","year","month","date","stringGet","units","stringSet","prioritized","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","n","concat","weekdaysMin","weekdaysShort","weekdays","isStrict","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","week","config","weekday","_locale","_strict","invalidWeekday","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","isFormat","_week","dow","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse","weekdayName","strict","ii","llc","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","regex","_weekdaysParseExact","_fullWeekdaysParse","RegExp","getSetDayOfWeek","getUTCDay","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","cmpLenRev","minp","shortp","longp","minPieces","shortPieces","longPieces","mixedPieces","isDate","Date","zeroFill","targetLength","forceSign","absNumber","abs","zerosToFill","sign","max","substr","arr","res","checkOverflow","_a","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","_i","_isValid","_f","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","s","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","_tzm","setUTCMinutes","getUTCMinutes","configFromString","matched","hooks","createFromInputFallback","_useUTC","defaults","c","currentDateArray","nowValue","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","_w","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","w","weekYear","doy","temp","weekdayOverflow","curWeek","GG","W","E","gg","dayOfYear","ISO_8601","RFC_2822","tokens","skipped","stringLength","totalParsedInputLength","bigHour","_meridiem","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","millisecond","obj","createFromConfig","prepareConfig","preparse","configFromInput","createLocalOrUTC","isUTC","_isAMomentObject","prop","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","RangeError","fromCharCode","charCodeAt","ucs2decode","counter","extra","digitToBasic","digit","adapt","delta","numPoints","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","label","encoded","labels","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","Locale","isFunction","Function","replyToMsg","messageInfo","closeDialog","replyEmailText","sendReply","originalMessageID","toAccounts","ccAccounts","attachment","OID","downloadAttachment","Name","attachmentSheet","fileLink","functional","ctx","isGreater","functionalThemeClasses","VCounter","intersectable","Vue","isIntersecting","Intersect","inserted","onObserve","$vnode","destroyed","entries","observer","onVisible","consoleWarn","VInput","Intersectable","Loadable","dirtyTypes","resize","ripple","inheritAttrs","appendOuterIcon","autofocus","clearable","clearIcon","counterValue","filled","flat","fullWidth","placeholder","prefix","prependInnerIcon","persistentPlaceholder","reverse","rounded","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isClearing","isSingle","isSolo","isEnclosed","Validatable","hasCounter","hasDetails","isDirty","isLabelActive","hasLabel","labelPosition","offset","labelValue","rtl","showLabel","setLabelWidth","setPrefixWidth","$watch","tryAutofocus","requestAnimationFrame","onResize","onFocus","blur","genAppendSlot","slot","genIcon","genSlot","genPrependInnerSlot","genIconSlot","appendIcon","genInputSlot","genClearIcon","genCounter","attrs$","maxlength","_this$$scopedSlots$co2","genControl","genDefaultSlot","genFieldset","genTextFieldSlot","genProgress","genLegend","genLabel","focused","for","computedId","VLabel","span","innerHTML","change","inputAttrs","title","id","onBlur","onInput","modifiers","quiet","genMessages","showDetails","messagesNode","counterNode","genAffix","onClick","attachedRoot","validity","onMouseDown","onMouseUp","hasMouseDown","min","scrollWidth","offsetWidth","setPrependWidth","updateValue","firstWeekOffset","fwd","fwdlw","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","weekOfYear","resWeek","weeksInYear","weekOffsetNext","hookCallback","setHookCallback","getOwnPropertyDescriptor","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","un$EndsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","writable","proto","searchString","endPosition","len","defaultRelativeTime","future","past","ss","mm","hh","dd","ww","M","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","createUTC","utc","momentProperties","updateInProgress","copyConfig","from","_offset","Moment","getTime","isMoment","mod","daysInMonth","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","localeMonthsShort","_monthsShort","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","factory","self","installedModules","__webpack_require__","moduleId","defineProperty","__esModule","object","property","p","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","__","constructor","ParchmentError","_super","message","_this","attributes","tags","types","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","parentNode","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","tagName","TYPE","Definitions","Definition","blotName","attrName","keyName","className","tagNames","tag","equal","op","NULL_CHARACTER","Delta","ops","insert","newOp","keys","retain","lastOp","chop","filter","predicate","partition","passed","failed","reduce","initial","changeLength","elem","delete","start","Infinity","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copy","copyIsArray","clone","BlockEmbed","bubbleFormats","_createClass","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","formats","values","attribute","BLOCK_ATTRIBUTE","def","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","tail","head","remove","context","child","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","done","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","debug","Quill","container","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","keyboard","addModule","clipboard","history","init","events","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","contents","convert","setContents","clear","readOnly","disable","limit","level","imports","overwrite","startsWith","refNode","createElement","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","scrollTop","scrollIntoView","_this4","sources","API","getSelection","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","height","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","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","userConfig","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","querySelector","modifier","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","_map4","version","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","log","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","levels","method","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","actual","expected","opts","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","lastIndexOf","appendChild","prev","optimize","removeChild","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","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","image","list","bullet","_toConsumableArray","arr2","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","body","_format","nativeRange","collapsed","after","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalizedToRange","positions","indexes","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","resolve","reject","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","takeRecords","SHORTKEY","_quill","_quill2","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","listen","evt","binding","normalize","which","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","prevented","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","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","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","element","Picker","select","buildPicker","display","togglePicker","escape","option","tabIndex","buildItem","selected","buildLabel","buildOptions","trigger","Event","dispatchEvent","createEvent","initEvent","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","attr","ClassAttributor","matches","camelize","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","changeDelta","undoDelta","timestamp","delay","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","subjectString","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","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","j","best_common","prefixLength","hm1","hm2","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","str","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","pair","_pair","applyFormat","computeStyle","nodeType","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","parseFloat","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","isUndefined","r","u","install","globalOptions","boundary","script","size","background","font","_options","_content","defaultOptions","initialize","pasteHTML","setText","_compiled","_scopeId","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","_t","getBuiltIn","redefineAll","createIteratorConstructor","isCallable","classof","anObject","isObject","createPropertyDescriptor","getIterator","getIteratorMethod","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","it","replacements","URLSearchParamsIterator","params","kind","step","entry","URLSearchParamsState","parseObject","parseQuery","entryIterator","entryNext","iteratorMethod","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","found","boundFunction","headersHas","headersSet","wrapRequestOptions","headers","fetch","RequestConstructor","Request","defaultInvalidDate","_invalidDate","opacity","__scrim","computedOpacity","themeClasses","$listeners","Selectable","indeterminate","indeterminateIcon","offIcon","onIcon","inputIndeterminate","genCheckbox","checkboxAttrs","genRipple","rippleState","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","VDivider","center","mergeData","wrapInArray","VSubheader","action","hideSelected","items","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","getValue","tileActiveClass","staticNoDataTile","tile","mousedown","genTileContent","genAction","inputValue","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","escapeHTML","getMaskedCharacters","middle","genHighlight","genHeader","genTile","hasItem","getDisabled","_uid","activeClass","scopedSlot","needsTile","VListItemContent","Ctor","getPropertyFromItem","itemsLength","divider","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","openOnClick","maxHeight","Comparable","Filterable","cacheItems","chips","deletableChips","disableLookup","eager","itemColor","menuProps","openOnClear","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","computedItems","computedOwns","dynamicHeight","listData","scopeId","$options","virtualizedItems","staticList","VSelectList","$_menuProps","auto","normalisedProps","acc","nudgeBottom","offsetY","menu","updateDimensions","onMenuActiveChange","immediate","setMenuIndex","activateMenu","getContent","uniqueValues","valueComparator","genCommaSelection","selections","genSelections","genHiddenInput","genMenu","cb","extraData","getObjectValueByPath","autocomplete","keypress","onKeyPress","genList","genListWithSlot","slots","slotName","onScroll","genSelection","genSlotSelection","listIndex","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","performance","getTiles","tab","up","down","changeListIndex","space","onUpDown","onSpaceDown","tiles","showMoreItems","scrollHeight","clientHeight","activeTile","hasClickableTiles","prevTile","nextTile","firstTile","lastTile","appendInner","genChildren","genMessage","VMessages","BindsAttrs","hideDetails","hideSpinButtons","hint","loading","persistentHint","prependIcon","messagesToDisplay","hasHint","$_modelEvent","validation","validationResult","genPrependSlot","kebabCase","hasListener","mouseup","location","VSelectMenuProps","offsetOverflow","allowOverflow","autoSelectFirst","queryText","lazySearch","filteredItems","selectedValues","currentRange","selectedItem","isSearching","onCopy","onFilteredItemsChanged","preSelectedItem","backspace","deleteCurrentItem","curItem","nextIndex","nextItem","currentItem","currentItemText","setData","createDate","ms","setFullYear","createUTCDate","UTC","setUTCFullYear","orientation","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","originalModule","webpackPolyfill","emitSnackbarTimeout","snackbar","snackbarText","VSnackbar","addParseToken","addWeekParseToken","addTimeToArrayFromToken","isObjectEmpty","overlayColor","overlayOpacity","animationFrame","createOverlay","propsData","$mount","firstChild","getZIndex","addOnceEventListener","$destroy","cancelAnimationFrame","scrollListener","isContentEditable","pageup","pagedown","deltaY","checkPath","hasScrollbar","overflowY","overflowX","clientWidth","shouldScroll","alreadyAtStart","alreadyAtEnd","dir","deltaX","scrollLeft","scrollingUp","scrollingDown","isInside","composedPath","dialog","anchorNode","smAndDown","addPassiveEventListener","passive","createLocal","baseConfig","dayOfMonthOrdinalParse","meridiemParse","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","globalLocale","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","toDashboard","selectedDataSetFilter","inboxReadUnread","branchEmails","branch","Unread","refreshEmails","checkedMessagesForAction","toggleReadUnreadMultiple","markAsComplete","archiveSelectedMessages","staticStyle","checkReadStatus","checkReadStatusText","IsRead","openMessage","CreatedDate","toggleIsRead","messageDialog","closeEmaileReply","confirmReply","replyError","confirmEmailSend","emailSendError","showSnackbar","snackBarColor","closeSnackbar","EmailReply","Snackbar","SelectedEmailMessage","SendEmail","AttachmentsBottomSheet","$router","go","emailTo","bccAccounts","mapState","emails","completed","Data","filters","filterDate","moment","VBottomSheet","VCheckbox","VContainer","VProgressCircular","BranchEmails","commit","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","strictRegex","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","createInvalid","createDuration","Duration","duration","normalizedInput","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","separator","utcOffset","offsetFromString","chunkOffset","chunk","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","tmp","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","time","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","toISOString","keepOffset","toDate","inspect","datetime","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","erasParse","eraYearOrdinalParse","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","eraNarrow","eraAbbr","eraYear","isLeapYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","field","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","relative","firstDayOfYear","firstDayOfWeek","langData","mathAbs","absCeil","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","substituteTimeAgo","posNegDuration","thresholds","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","th","totalSign","ymSign","daysSign","hmsSign","total","toFixed","toIsoString","normalizeUnits","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","aliases","addUnitAlias","shorthand","lowerCase","normalizeObjectUnits","inputObject","normalizedProp","prevent","Rippleable","falseValue","trueValue","isMultiple","checked","onChange","parsedParts","isNowValid","isFrozen","fun"],"mappings":"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","file":"js/chunk-48db2d72.04f1ed92.js","sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nexport default function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nexport { indexOf as default };\n","export var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n","import extend from './extend';\nimport { hooks } from './hooks';\nimport hasOwnProp from './has-own-prop';\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nexport function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nexport function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n tabindex: this.isActive ? 0 : undefined,\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.selectedMessage)?_c('v-card',[_c('v-card-title',{staticClass:\"secondary mb-8\"},[_c('v-icon',{staticClass:\"mr-5\",attrs:{\"color\":\"white\"},on:{\"click\":_vm.closeMsgDialog}},[_vm._v(\"mdi-arrow-left\")]),_c('v-spacer'),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"color\":\"white\"}},on),[_c('v-icon',{attrs:{\"color\":\"secondary\"}},[_vm._v(\"mdi-reply\")]),_c('span',{staticClass:\"secondary--text caption\"},[_vm._v(\"Reply\")])],1)]}}],null,false,3524103149)},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.replyToMsgDialog}},[_c('v-list-item-title',[_vm._v(\"Reply via app\")])],1),_c('v-list-item',{on:{\"click\":_vm.openNativeEmail}},[_c('v-list-item-title',[_vm._v(\"Reply\")])],1)],1)],1)],1),_c('v-card-subtitle',[_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"headline mr-auto\"},[_vm._v(_vm._s(_vm.selectedMessage.Subject))]),(_vm.selectedMessage.Attachments.length)?_c('v-btn',{attrs:{\"fab\":_vm.$vuetify.breakpoint.xsOnly,\"color\":\"success\"},on:{\"click\":_vm.toggleAttachmentSheet}},[_c('v-icon',{attrs:{\"left\":_vm.$vuetify.breakpoint.smAndUp}},[_vm._v(\"mdi-attachment\")]),_c('span',{staticClass:\"d-none d-sm-flex\"},[_vm._v(\"Attachments\")])],1):_vm._e()],1),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.selectedMessage.Sender.AccountName))]),_vm._v(\" \"),_c('span',[_vm._v(\" <\"+_vm._s(_vm.selectedMessage.Sender.EmailAddress)+\">\")]),(this.selectedMessage.CcAccounts.length)?_c('div',{staticClass:\"mt-5 font-weight-light\"},[_vm._v(\" Cc: \"),_vm._l((this.selectedMessage.CcAccounts),function(item){return _c('span',{key:item.EmailAddress},[_vm._v(_vm._s(item.EmailAddress)+\"; \")])})],2):_vm._e(),(this.selectedMessage.BccAccounts.length)?_c('div',{staticClass:\"font-weight-light\"},[_vm._v(\" Bcc: \"),_vm._l((this.selectedMessage.BccAccounts),function(item){return _c('span',{key:item.EmailAddress},[_vm._v(_vm._s(item.EmailAddress)+\"; \")])})],2):_vm._e()]),_c('v-card-text',{staticClass:\"mt-10\"},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.selectedMessage.Body)}})])],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectedEmailMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectedEmailMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectedEmailMessage.vue?vue&type=template&id=1fc76a6a&\"\nimport script from \"./SelectedEmailMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectedEmailMessage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardSubtitle,VCardText,VCardTitle,VIcon,VList,VListItem,VListItemTitle,VMenu,VSpacer})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","export default function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n","import { formattingTokens } from '../format/format';\n\nexport var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nexport function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n","import './VBottomSheet.sass'\n\n// Extensions\nimport VDialog from '../VDialog/VDialog'\n\n/* @vue/component */\nexport default VDialog.extend({\n name: 'v-bottom-sheet',\n\n props: {\n inset: Boolean,\n maxWidth: [String, Number],\n transition: {\n type: String,\n default: 'bottom-sheet-transition',\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VDialog.options.computed.classes.call(this),\n 'v-bottom-sheet': true,\n 'v-bottom-sheet--inset': this.inset,\n }\n },\n },\n})\n","import absFloor from './abs-floor';\n\nexport default function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","import hasOwnProp from './has-own-prop';\n\nexport default function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","import zeroFill from '../utils/zero-fill';\nimport isFunction from '../utils/is-function';\n\nvar formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\nexport { formattingTokens, formatTokenFunctions };\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nexport function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nexport function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nexport function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly,\"transition\":\"dialog-transition\",\"scrollable\":\"\"},model:{value:(_vm.sendEmailDialog),callback:function ($$v) {_vm.sendEmailDialog=$$v},expression:\"sendEmailDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"secondary white--text mb-5\"},[_vm._v(\" Compose New Email \"),_c('v-spacer'),_c('v-icon',{attrs:{\"color\":\"white\"},on:{\"click\":_vm.closeSendEmailDialog}},[_vm._v(\"mdi-close\")])],1),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"color\":\"gren\",\"background-color\":_vm.confirmSelectBgColor,\"items\":this.$store.state.loggedInUserEmailAccounts,\"item-text\":\"EmailAddress\",\"return-object\":\"\",\"label\":\"Select your email account.\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.checkForDuplicatedEmailAccount},model:{value:(_vm.selectedEmailAccount),callback:function ($$v) {_vm.selectedEmailAccount=$$v},expression:\"selectedEmailAccount\"}})],1)],1),(_vm.isEmailAccountSelected)?_c('div',{staticClass:\"reply-wrapper\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"color\":\"green\",\"label\":\"To:\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:JSON.stringify(data.item),attrs:{\"small\":\"\",\"color\":_vm.validateEmailColor(data.item)},on:{\"click:close\":function($event){return data.parent.selectItem(data.item)}}},'v-chip',data.attrs,false),[_c('v-avatar',{staticClass:\"accent white--text\",attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s(data.item.slice(0, 1).toUpperCase())}}),_vm._v(\" \"+_vm._s(data.item)+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return data.parent.selectItem(data.item)}}},[_vm._v(\"mdi-close\")])],1)]}}],null,false,3873088188),model:{value:(_vm.toEmails),callback:function ($$v) {_vm.toEmails=$$v},expression:\"toEmails\"}})],1),(_vm.ccEmails.length || _vm.showCc)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"color\":\"green\",\"label\":\"Cc:\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:JSON.stringify(data.item),attrs:{\"small\":\"\",\"color\":_vm.validateEmailColor(data.item)},on:{\"click:close\":function($event){return data.parent.selectItem(data.item)}}},'v-chip',data.attrs,false),[_c('v-avatar',{staticClass:\"accent white--text\",attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s(data.item.slice(0, 1).toUpperCase())}}),_vm._v(\" \"+_vm._s(data.item)+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return data.parent.selectItem(data.item)}}},[_vm._v(\"mdi-close\")])],1)]}}],null,false,3873088188),model:{value:(_vm.ccEmails),callback:function ($$v) {_vm.ccEmails=$$v},expression:\"ccEmails\"}})],1):_vm._e(),(_vm.bccEmails.length || _vm.showBcc)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"color\":\"green\",\"label\":\"Bcc:\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:JSON.stringify(data.item),attrs:{\"small\":\"\",\"color\":_vm.validateEmailColor(data.item)},on:{\"click:close\":function($event){return data.parent.selectItem(data.item)}}},'v-chip',data.attrs,false),[_c('v-avatar',{staticClass:\"accent white--text\",attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s(data.item.slice(0, 1).toUpperCase())}}),_vm._v(\" \"+_vm._s(data.item)+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return data.parent.selectItem(data.item)}}},[_vm._v(\"mdi-close\")])],1)]}}],null,false,3873088188),model:{value:(_vm.bccEmails),callback:function ($$v) {_vm.bccEmails=$$v},expression:\"bccEmails\"}})],1):_vm._e()],1),_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"px-0\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.showCc = !_vm.showCc}}},[(!_vm.showCc)?_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Cc\")]):_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Hide Cc\")])]),_c('v-btn',{staticClass:\"px-0\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.showBcc = !_vm.showBcc}}},[(!_vm.showBcc)?_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Bcc\")]):_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Hide Bcc\")])])],1),_c('v-text-field',{attrs:{\"color\":\"green\",\"label\":\"Subject\"},model:{value:(_vm.subject),callback:function ($$v) {_vm.subject=$$v},expression:\"subject\"}}),_c('quill-editor',{ref:\"myQuillEditor\",attrs:{\"options\":_vm.editorOption},on:{\"blur\":function($event){return _vm.onEditorBlur($event)},\"focus\":function($event){return _vm.onEditorFocus($event)},\"ready\":function($event){return _vm.onEditorReady($event)}},model:{value:(_vm.content),callback:function ($$v) {_vm.content=$$v},expression:\"content\"}}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"type\":\"error\",\"color\":\"red\",\"dismissible\":\"\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\" Please add a valid email to the \\\"To\\\" field. \")])],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[(_vm.errorMessages)?_c('span',{staticClass:\"red--text\"},[_vm._v(\"Invalid email!\")]):_vm._e(),_c('v-btn',{staticClass:\"white--text\",attrs:{\"block\":\"\",\"disabled\":_vm.validateEmail,\"color\":\"blue\"},on:{\"click\":_vm.sendEmail}},[_vm._v(\"Send\")])],1)],1)],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendEmail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendEmail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SendEmail.vue?vue&type=template&id=3ce3af19&\"\nimport script from \"./SendEmail.vue?vue&type=script&lang=js&\"\nexport * from \"./SendEmail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SendEmail.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VAvatar,VBtn,VCard,VCardText,VCardTitle,VChip,VCol,VCombobox,VDialog,VIcon,VRow,VSelect,VSpacer,VTextField})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendEmail.vue?vue&type=style&index=0&lang=css&\"","export var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nimport isFunction from '../utils/is-function';\n\nexport function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n","export default function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n","// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: Boolean,\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n readonly: Boolean,\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n validateOnBlur: Boolean,\n value: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailReply.vue?vue&type=style&index=0&lang=css&\"","export default function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n","import { normalizeUnits, normalizeObjectUnits } from '../units/aliases';\nimport { getPrioritizedUnits } from '../units/priorities';\nimport { hooks } from '../utils/hooks';\nimport isFunction from '../utils/is-function';\nimport { daysInMonth } from '../units/month';\nimport { isLeapYear } from '../utils/is-leap-year';\nimport toInt from '../utils/to-int';\n\nexport function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nexport function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n}\n\nexport function set(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n}\n\n// MOMENTS\n\nexport function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nexport function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport {\n addRegexToken,\n match1to2,\n matchWord,\n regexEscape,\n} from '../parse/regex';\nimport { addWeekParseToken } from '../parse/token';\nimport toInt from '../utils/to-int';\nimport isArray from '../utils/is-array';\nimport indexOf from '../utils/index-of';\nimport hasOwnProp from '../utils/has-own-prop';\nimport { createUTC } from '../create/utc';\nimport getParsingFlags from '../create/parsing-flags';\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nexport {\n defaultLocaleWeekdays,\n defaultLocaleWeekdaysShort,\n defaultLocaleWeekdaysMin,\n};\n\nexport function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nexport function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nexport function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nexport function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nexport function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nexport function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nexport function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nexport function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nexport function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nexport function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n","export default function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n","export default function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n","export default function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n","import { daysInMonth } from '../units/month';\nimport {\n YEAR,\n MONTH,\n DATE,\n HOUR,\n MINUTE,\n SECOND,\n MILLISECOND,\n WEEK,\n WEEKDAY,\n} from '../units/constants';\nimport getParsingFlags from '../create/parsing-flags';\n\nexport default function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n","import { configFromStringAndFormat } from './from-string-and-format';\nimport { createUTCDate } from './date-from-array';\nimport { hooks } from '../utils/hooks';\nimport { deprecate } from '../utils/deprecate';\nimport getParsingFlags from './parsing-flags';\nimport { defaultLocaleMonthsShort } from '../units/month';\nimport { defaultLocaleWeekdaysShort } from '../units/day-of-week';\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nexport function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nexport function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nexport function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n","// Pick the first defined of two or three arguments.\nexport default function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n","import { hooks } from '../utils/hooks';\nimport { createDate, createUTCDate } from './date-from-array';\nimport { daysInYear } from '../units/year';\nimport {\n weekOfYear,\n weeksInYear,\n dayOfYearFromWeeks,\n} from '../units/week-calendar-utils';\nimport {\n YEAR,\n MONTH,\n DATE,\n HOUR,\n MINUTE,\n SECOND,\n MILLISECOND,\n} from '../units/constants';\nimport { createLocal } from './local';\nimport defaults from '../utils/defaults';\nimport getParsingFlags from './parsing-flags';\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nexport function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n","import { configFromISO, configFromRFC2822 } from './from-string';\nimport { configFromArray } from './from-array';\nimport { getParseRegexForToken } from '../parse/regex';\nimport { addTimeToArrayFromToken } from '../parse/token';\nimport {\n expandFormat,\n formatTokenFunctions,\n formattingTokens,\n} from '../format/format';\nimport checkOverflow from './check-overflow';\nimport { YEAR, HOUR } from '../units/constants';\nimport { hooks } from '../utils/hooks';\nimport getParsingFlags from './parsing-flags';\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nexport function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n","import { copyConfig } from '../moment/constructor';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport getParsingFlags from './parsing-flags';\nimport { isValid } from './valid';\nimport extend from '../utils/extend';\n\n// date from string and array of format strings\nexport function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n","import { normalizeObjectUnits } from '../units/aliases';\nimport { configFromArray } from './from-array';\nimport map from '../utils/map';\n\nexport function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n","import isArray from '../utils/is-array';\nimport isObject from '../utils/is-object';\nimport isObjectEmpty from '../utils/is-object-empty';\nimport isUndefined from '../utils/is-undefined';\nimport isNumber from '../utils/is-number';\nimport isDate from '../utils/is-date';\nimport map from '../utils/map';\nimport { createInvalid } from './valid';\nimport { Moment, isMoment } from '../moment/constructor';\nimport { getLocale } from '../locale/locales';\nimport { hooks } from '../utils/hooks';\nimport checkOverflow from './check-overflow';\nimport { isValid } from './valid';\n\nimport { configFromStringAndArray } from './from-string-and-array';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { configFromString } from './from-string';\nimport { configFromArray } from './from-array';\nimport { configFromObject } from './from-object';\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nexport function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nexport function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n","import isFunction from '../utils/is-function';\nimport extend from '../utils/extend';\nimport isObject from '../utils/is-object';\nimport hasOwnProp from '../utils/has-own-prop';\n\nexport function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nexport function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n","var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nexport { defaultOrdinal, defaultDayOfMonthOrdinalParse };\n\nexport function ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addWeekParseToken } from '../parse/token';\nimport toInt from '../utils/to-int';\nimport { weekOfYear } from './week-calendar-utils';\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n) {\n week[token.substr(0, 1)] = toInt(input);\n});\n\n// HELPERS\n\n// LOCALES\n\nexport function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nexport var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nexport function localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nexport function localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nexport function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nexport function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n","export function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n","export default function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly,\"transition\":\"dialog-transition\",\"scrollable\":\"\"},model:{value:(_vm.replyToMsg),callback:function ($$v) {_vm.replyToMsg=$$v},expression:\"replyToMsg\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"blue white--text mb-5\"},[_vm._v(\" \"+_vm._s(_vm.messageInfo.Subject)+\" \"),_c('v-spacer'),_c('v-icon',{attrs:{\"color\":\"white\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"mdi-close\")])],1),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"color\":\"blue\",\"background-color\":_vm.confirmSelectBgColor,\"items\":this.$store.state.loggedInUserEmailAccounts,\"item-text\":\"EmailAddress\",\"return-object\":\"\",\"label\":\"Select an email account to reply.\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.checkForDuplicatedEmailAccount},model:{value:(_vm.selectedEmailAccount),callback:function ($$v) {_vm.selectedEmailAccount=$$v},expression:\"selectedEmailAccount\"}})],1)],1),(_vm.isEmailAccountSelected)?_c('div',{staticClass:\"reply-wrapper\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"label\":\"To:\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:JSON.stringify(data.item),attrs:{\"small\":\"\",\"color\":_vm.validateEmailColor(data.item)},on:{\"click:close\":function($event){return data.parent.selectItem(data.item)}}},'v-chip',data.attrs,false),[_c('v-avatar',{staticClass:\"accent white--text\",attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s(data.item.slice(0, 1).toUpperCase())}}),_vm._v(\" \"+_vm._s(data.item)+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return data.parent.selectItem(data.item)}}},[_vm._v(\"mdi-close\")])],1)]}}],null,false,3873088188),model:{value:(_vm.toEmails),callback:function ($$v) {_vm.toEmails=$$v},expression:\"toEmails\"}})],1),(_vm.ccEmails.length || _vm.showCc)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"label\":\"Cc:\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:JSON.stringify(data.item),attrs:{\"small\":\"\",\"color\":_vm.validateEmailColor(data.item)},on:{\"click:close\":function($event){return data.parent.selectItem(data.item)}}},'v-chip',data.attrs,false),[_c('v-avatar',{staticClass:\"accent white--text\",attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s(data.item.slice(0, 1).toUpperCase())}}),_vm._v(\" \"+_vm._s(data.item)+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return data.parent.selectItem(data.item)}}},[_vm._v(\"mdi-close\")])],1)]}}],null,false,3873088188),model:{value:(_vm.ccEmails),callback:function ($$v) {_vm.ccEmails=$$v},expression:\"ccEmails\"}})],1):_vm._e(),(_vm.bccEmails.length || _vm.showBcc)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"label\":\"Bcc:\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:JSON.stringify(data.item),attrs:{\"small\":\"\",\"color\":_vm.validateEmailColor(data.item)},on:{\"click:close\":function($event){return data.parent.selectItem(data.item)}}},'v-chip',data.attrs,false),[_c('v-avatar',{staticClass:\"accent white--text\",attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s(data.item.slice(0, 1).toUpperCase())}}),_vm._v(\" \"+_vm._s(data.item)+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return data.parent.selectItem(data.item)}}},[_vm._v(\"mdi-close\")])],1)]}}],null,false,3873088188),model:{value:(_vm.bccEmails),callback:function ($$v) {_vm.bccEmails=$$v},expression:\"bccEmails\"}})],1):_vm._e()],1),_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{staticClass:\"px-0\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.showCc = !_vm.showCc}}},[(!_vm.showCc)?_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Cc\")]):_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Hide Cc\")])]),_c('v-btn',{staticClass:\"px-0\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.showBcc = !_vm.showBcc}}},[(!_vm.showBcc)?_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Bcc\")]):_c('span',{staticClass:\"grey--text text-capitalize\"},[_vm._v(\"Hide Bcc\")])])],1),_c('quill-editor',{ref:\"myQuillEditor\",attrs:{\"options\":_vm.editorOption},on:{\"blur\":function($event){return _vm.onEditorBlur($event)},\"focus\":function($event){return _vm.onEditorFocus($event)},\"ready\":function($event){return _vm.onEditorReady($event)}},model:{value:(_vm.replyEmailText),callback:function ($$v) {_vm.replyEmailText=$$v},expression:\"replyEmailText\"}}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"type\":\"error\",\"color\":\"red\",\"dismissible\":\"\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\" Please add a valid email to the \\\"To\\\" field. \")])],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[(_vm.errorMessages)?_c('span',{staticClass:\"red--text\"},[_vm._v(\"Invalid email!\")]):_vm._e(),_c('v-btn',{staticClass:\"white--text\",attrs:{\"block\":\"\",\"disabled\":_vm.validateEmail,\"color\":\"blue\"},on:{\"click\":_vm.sendReply}},[_vm._v(\"Send\")])],1)],1)],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailReply.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailReply.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EmailReply.vue?vue&type=template&id=60c60fea&\"\nimport script from \"./EmailReply.vue?vue&type=script&lang=js&\"\nexport * from \"./EmailReply.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmailReply.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VAvatar,VBtn,VCard,VCardText,VCardTitle,VChip,VCol,VCombobox,VDialog,VIcon,VRow,VSelect,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.selectedMessage)?_c('v-sheet',{attrs:{\"height\":\"200px\"}},[_c('v-btn',{staticClass:\"mt-6\",attrs:{\"text\":\"\",\"color\":\"red\"},on:{\"click\":_vm.toggleAttachmentSheet}},[_vm._v(\"close\")]),_vm._l((_vm.selectedMessage.Attachments),function(attachment){return _c('div',{key:attachment.OID,staticClass:\"py-3 pl-5\"},[_c('v-btn',{staticClass:\"custom-transform-class text-none\",attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.downloadAttachment(attachment)}}},[_vm._v(\" \"+_vm._s(attachment.Name)+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-download\")])],1)],1)})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttachmentsBottomSheet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttachmentsBottomSheet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AttachmentsBottomSheet.vue?vue&type=template&id=6ca69ed8&\"\nimport script from \"./AttachmentsBottomSheet.vue?vue&type=script&lang=js&\"\nexport * from \"./AttachmentsBottomSheet.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VIcon,VSheet})\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, this.$slots.label || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n staticClass: 'notranslate',\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","import { daysInYear } from './year';\nimport { createUTCDate } from '../create/date-from-array';\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nexport function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nexport function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nexport function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n","export { hooks, setHookCallback };\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return un$EndsWith\n ? un$EndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","export var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nimport isFunction from '../utils/is-function';\n\nexport function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nexport function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n","import { createLocalOrUTC } from './from-anything';\n\nexport function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n","import { hooks } from '../utils/hooks';\nimport isUndefined from '../utils/is-undefined';\nimport getParsingFlags from '../create/parsing-flags';\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nexport function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nexport function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nexport function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n","export default function mod(n, x) {\n return ((n % x) + x) % x;\n}\n","import { get } from '../moment/get-set';\nimport hasOwnProp from '../utils/has-own-prop';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport {\n addRegexToken,\n match1to2,\n match2,\n matchWord,\n regexEscape,\n} from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { hooks } from '../utils/hooks';\nimport { MONTH } from './constants';\nimport toInt from '../utils/to-int';\nimport isArray from '../utils/is-array';\nimport isNumber from '../utils/is-number';\nimport mod from '../utils/mod';\nimport indexOf from '../utils/index-of';\nimport { createUTC } from '../create/utc';\nimport getParsingFlags from '../create/parsing-flags';\nimport { isLeapYear } from '../utils/is-leap-year';\n\nexport function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nexport { defaultLocaleMonths, defaultLocaleMonthsShort };\n\nexport function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nexport function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nexport function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nexport function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n}\n\nexport function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nexport function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nexport function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nexport function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","export default function isUndefined(input) {\n return input === void 0;\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"quill\")):\"function\"==typeof define&&define.amd?define([\"quill\"],e):\"object\"==typeof exports?exports.VueQuillEditor=e(require(\"quill\")):t.VueQuillEditor=e(t.Quill)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var l=n[i]={i:i,l:!1,exports:{}};return t[i].call(l.exports,l,l.exports,e),l.l=!0,l.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=2)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(4),l=n.n(i),o=n(6),r=n(5),u=r(l.a,o.a,!1,null,null,null);e.default=u.exports},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.install=e.quillEditor=e.Quill=void 0;var l=n(0),o=i(l),r=n(1),u=i(r),s=window.Quill||o.default,a=function(t,e){e&&(u.default.props.globalOptions.default=function(){return e}),t.component(u.default.name,u.default)},c={Quill:s,quillEditor:u.default,install:a};e.default=c,e.Quill=s,e.quillEditor=u.default,e.install=a},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={theme:\"snow\",boundary:document.body,modules:{toolbar:[[\"bold\",\"italic\",\"underline\",\"strike\"],[\"blockquote\",\"code-block\"],[{header:1},{header:2}],[{list:\"ordered\"},{list:\"bullet\"}],[{script:\"sub\"},{script:\"super\"}],[{indent:\"-1\"},{indent:\"+1\"}],[{direction:\"rtl\"}],[{size:[\"small\",!1,\"large\",\"huge\"]}],[{header:[1,2,3,4,5,6,!1]}],[{color:[]},{background:[]}],[{font:[]}],[{align:[]}],[\"clean\"],[\"link\",\"image\",\"video\"]]},placeholder:\"Insert text here ...\",readOnly:!1}},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var l=n(0),o=i(l),r=n(3),u=i(r),s=window.Quill||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),i=1;i

\"===l&&(l=\"\"),t._content=l,t.$emit(\"input\",t._content),t.$emit(\"change\",{html:l,text:r,quill:o})}),this.$emit(\"ready\",this.quill))}},watch:{content:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},value:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},disabled:function(t,e){this.quill&&this.quill.enable(!t)}}}},function(t,e){t.exports=function(t,e,n,i,l,o){var r,u=t=t||{},s=typeof t.default;\"object\"!==s&&\"function\"!==s||(r=t,u=t.default);var a=\"function\"==typeof u?u.options:u;e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0),n&&(a.functional=!0),l&&(a._scopeId=l);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},a._ssrRegister=c):i&&(c=i),c){var d=a.functional,f=d?a.render:a.beforeCreate;d?(a._injectStyles=c,a.render=function(t,e){return c.call(e),f(t,e)}):a.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:u,options:a}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"quill-editor\"},[t._t(\"toolbar\"),t._v(\" \"),n(\"div\",{ref:\"editor\"})],2)},l=[],o={render:i,staticRenderFns:l};e.a=o}])});","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(n$Fetch)) {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(N$Request)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","export var defaultInvalidDate = 'Invalid date';\n\nexport function invalidDate() {\n return this._invalidDate;\n}\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n","import { makeGetSet } from '../moment/get-set';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport {\n addRegexToken,\n match1to2,\n match2,\n match3to4,\n match5to6,\n} from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { HOUR, MINUTE, SECOND } from './constants';\nimport toInt from '../utils/to-int';\nimport zeroFill from '../utils/zero-fill';\nimport getParsingFlags from '../create/parsing-flags';\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('k', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nexport function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nexport var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nexport function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","import hasOwnProp from './has-own-prop';\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nexport { keys as default };\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","import './VSimpleCheckbox.sass'\n\nimport ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n return h('div',\n mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n },\n }), [\n h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n ])\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport {\n escapeHTML,\n getPropertyFromItem,\n} from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return escapeHTML(text)\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return `${escapeHTML(start)}${this.genHighlight(middle)}${escapeHTML(end)}`\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string): string {\n return `${escapeHTML(text)}`\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n const innerHTML = this.genFilteredText(this.getText(item))\n\n return this.$createElement(VListItemContent,\n [this.$createElement(VListItemTitle, {\n domProps: { innerHTML },\n })]\n )\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'filterable',\n\n props: {\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType {\n $refs: {\n menu: InstanceType\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n const value = this.multiple\n ? this.selectedItems\n : (this.getText(this.selectedItems[0]) || '').toString()\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value)\n }\n\n return value.length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n\n if (this.multiple) {\n this.$nextTick(() => {\n this.$refs.menu?.updateDimensions()\n })\n }\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) || '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.allItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","export function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nexport function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","export default function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n","import hasOwnProp from '../utils/has-own-prop';\n\nvar priorities = {};\n\nexport function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n\nexport function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('v-snackbar',{staticClass:\"margin-bottom\",attrs:{\"timeout\":_vm.timeout,\"color\":_vm.color},on:{\"input\":_vm.emitSnackbarTimeout},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({attrs:{\"color\":\"white\",\"text\":\"\"},on:{\"click\":_vm.emitSnackbarTimeout}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}]),model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',{staticClass:\"white--text\"},[_vm._v(_vm._s(_vm.snackbarText))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snackbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snackbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Snackbar.vue?vue&type=template&id=369d749c&\"\nimport script from \"./Snackbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Snackbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Snackbar.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VSnackbar})\n","import hasOwnProp from '../utils/has-own-prop';\nimport isNumber from '../utils/is-number';\nimport toInt from '../utils/to-int';\n\nvar tokens = {};\n\nexport function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n}\n\nexport function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nexport function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n","import hasOwnProp from './has-own-prop';\n\nexport default function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent & KeyboardEvent) {\n if (e.type === 'keydown') {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd)) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n },\n },\n})\n","import { createLocalOrUTC } from './from-anything';\n\nexport function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n","import { defaultCalendar } from './calendar';\nimport { defaultLongDateFormat } from './formats';\nimport { defaultInvalidDate } from './invalid';\nimport { defaultOrdinal, defaultDayOfMonthOrdinalParse } from './ordinal';\nimport { defaultRelativeTime } from './relative';\n\n// months\nimport { defaultLocaleMonths, defaultLocaleMonthsShort } from '../units/month';\n\n// week\nimport { defaultLocaleWeek } from '../units/week';\n\n// weekdays\nimport {\n defaultLocaleWeekdays,\n defaultLocaleWeekdaysMin,\n defaultLocaleWeekdaysShort,\n} from '../units/day-of-week';\n\n// meridiem\nimport { defaultLocaleMeridiemParse } from '../units/hour';\n\nexport var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n","import { makeGetSet } from '../moment/get-set';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport {\n addRegexToken,\n match1to2,\n match1to4,\n match1to6,\n match2,\n match4,\n match6,\n matchSigned,\n} from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { isLeapYear } from '../utils/is-leap-year';\nimport { hooks } from '../utils/hooks';\nimport { YEAR } from './constants';\nimport toInt from '../utils/to-int';\nimport zeroFill from '../utils/zero-fill';\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport { isLeapYear };\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nexport var getSetYear = makeGetSet('FullYear', true);\n\nexport function getIsLeapYear() {\n return isLeapYear(this.year());\n}\n","import isArray from '../utils/is-array';\nimport isUndefined from '../utils/is-undefined';\nimport { deprecateSimple } from '../utils/deprecate';\nimport { mergeConfigs } from './set';\nimport { Locale } from './constructor';\nimport keys from '../utils/keys';\n\nimport { baseConfig } from './base-config';\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nexport function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nexport function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nexport function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nexport function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nexport function listLocales() {\n return keys(locales);\n}\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BranchEmails')}\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',[_c('v-container',{staticClass:\"mb-12\"},[_c('div',{staticClass:\"nav-outer-wrapper px-0\",attrs:{\"id\":\"sticky-nav\"}},[_c('v-row',{staticClass:\"grey lighten-5 align-center\"},[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"2\",\"sm\":\"3\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.toDashboard}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")])],1)],1),_c('v-col',{attrs:{\"cols\":\"8\",\"sm\":\"6\"}},[_c('div',{staticClass:\"text-center mx-auto\"},[_c('p',{staticClass:\"mb-0 mt-3 font-weight-light headline\"},[_vm._v(\"Branch emails\")]),_c('span',{staticClass:\"grey--text font-weight-light\"},[_vm._v(_vm._s(_vm.selectedDataSetFilter.length)+\" \")]),(_vm.selectedDataSetFilter.length > 1)?_c('span',{staticClass:\"grey--text font-weight-light\"},[_vm._v(\"messages\")]):_c('span',{staticClass:\"grey--text font-weight-light\"},[_vm._v(\"message\")]),(_vm.inboxReadUnread == 0)?_c('span',{staticClass:\"grey--text font-weight-light\"},[_vm._v(\" ( \"+_vm._s(_vm.$store.state.branchEmails.branch.data.Unread)+\" unread ) \")]):_vm._e()])]),_c('v-col',{staticClass:\"text-center d-flex\",attrs:{\"cols\":\"2\",\"sm\":\"3\"}},[_c('v-btn',{staticClass:\"d-sm-none\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.sendEmailDialog = true}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1),_c('v-btn',{staticClass:\"d-none d-sm-block\",attrs:{\"rounded\":\"\",\"color\":\"secondary\"},on:{\"click\":function($event){_vm.sendEmailDialog = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_c('span',{staticClass:\"custom-transform-class text-none\"},[_vm._v(\"Compose\")])],1),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":_vm.refreshEmails}},[_c('v-icon',[_vm._v(\"mdi-refresh\")])],1)],1)],1),_c('div',{staticClass:\"\\n white\\n d-flex\\n justify-space-between\\n align-center\\n text-center\\n py-0\\n px-3\\n \"},[_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"1\"}},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.checkedMessagesForAction.length)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"pointer settings text-center\"},on),[_c('v-icon',{staticClass:\"ml-n1 ml-sm-0 ml-md-1 ml-lg-4 ml-xl-10 px-0\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-cog\")])],1)]}}],null,false,184888407)},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.toggleReadUnreadMultiple}},[(_vm.inboxReadUnread === 2)?_c('v-list-item-title',[_vm._v(\"Mark as read\")]):_c('v-list-item-title',[_vm._v(\"Mark as unread\")])],1),_c('v-list-item',{on:{\"click\":_vm.markAsComplete}},[_c('v-list-item-title',[_vm._v(\"Mark as complete\")])],1),_c('v-list-item',{on:{\"click\":_vm.archiveSelectedMessages}},[_c('v-list-item-title',[_vm._v(\"Archive selected messages\")])],1)],1)],1):_vm._e()],1)],1),_c('v-col',{staticClass:\"\\n my-3\\n d-flex\\n justify-space-between\\n align-center\\n justify-sm-center\\n \",attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"pointer mt-2 mx-1 mr-sm-5 unread text-center\",staticStyle:{\"min-width\":\"50px\"},on:{\"click\":function($event){_vm.inboxReadUnread = 0}}},[_c('v-icon',{attrs:{\"color\":_vm.checkReadStatus(0)}},[_vm._v(\"mdi-mailbox-up-outline\")]),_c('p',{staticClass:\"mb-0 caption text-center\",class:_vm.checkReadStatusText(0)},[_vm._v(\" Inbox \")])],1),_c('div',{staticClass:\"pointer mt-2 mx-1 mr-sm-5 read text-center\",staticStyle:{\"min-width\":\"50px\"},on:{\"click\":function($event){_vm.inboxReadUnread = 1}}},[_c('v-icon',{attrs:{\"color\":_vm.checkReadStatus(1)}},[_vm._v(\"mdi-email-open-outline\")]),_c('p',{staticClass:\"mb-0 caption text-center\",class:_vm.checkReadStatusText(1)},[_vm._v(\" Read \")])],1),_c('div',{staticClass:\"pointer mt-2 mx-1 mr-sm-5 unread text-center\",staticStyle:{\"min-width\":\"50px\"},on:{\"click\":function($event){_vm.inboxReadUnread = 2}}},[_c('v-icon',{attrs:{\"color\":_vm.checkReadStatus(2)}},[_vm._v(\"mdi-email-outline\")]),_c('p',{staticClass:\"mb-0 caption text-center\",class:_vm.checkReadStatusText(2)},[_vm._v(\" Unread \")])],1),_c('div',{staticClass:\"pointer mt-2 mx-1 mr-sm-5 unread text-center\",staticStyle:{\"min-width\":\"50px\"},on:{\"click\":function($event){_vm.inboxReadUnread = 3}}},[_c('v-icon',{attrs:{\"color\":_vm.checkReadStatus(3)}},[_vm._v(\"mdi-email-check-outline\")]),_c('p',{staticClass:\"mb-0 caption text-center\",class:_vm.checkReadStatusText(3)},[_vm._v(\" Complete \")])],1)]),_c('v-col',{attrs:{\"cols\":\"1\"}})],1)],1)],1),_vm._l((_vm.selectedDataSetFilter),function(item){return _c('v-card',{key:item.OID,staticClass:\"grey--text text--darken-2 mx-0 mb-1 px-1\",class:{ 'grey lighten-4': item.IsRead },attrs:{\"flat\":\"\",\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.openMessage(item)}}},[_c('v-row',[_c('v-col',{staticClass:\"py-0 d-flex align-center justify-center\",attrs:{\"cols\":\"1\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('v-checkbox',{key:item.OID,attrs:{\"value\":item.OID},model:{value:(_vm.checkedMessagesForAction),callback:function ($$v) {_vm.checkedMessagesForAction=$$v},expression:\"checkedMessagesForAction\"}})],1),_c('v-col',{staticClass:\"py-0 d-block d-sm-flex align-center justify-start\",attrs:{\"cols\":\"11\",\"sm\":\"5\"}},[_c('v-card-title',{staticClass:\"d-sm-flex flex-column align-start\"},[_c('span',{staticClass:\"subtitle-2\",class:{\n 'font-weight-black': !item.IsRead,\n 'font-weight-light': item.IsRead,\n }},[_vm._v(_vm._s(item.Sender.AccountName))]),(!item.Sender.AccountName)?_c('span',{staticClass:\"subtitle-2\",class:{\n 'font-weight-bold': !item.IsRead,\n 'font-weight-light': item.IsRead,\n }},[_vm._v(_vm._s(item.Sender.EmailAddress))]):_vm._e(),_c('span',{staticClass:\"d-none d-sm-block text-caption\"},[_vm._v(_vm._s(_vm._f(\"filterDate\")(item.CreatedDate)))]),_c('v-spacer')],1),_c('v-card-subtitle',{staticClass:\"d-block d-sm-none\"},[_c('div',[_c('span',{staticClass:\"mr-5\",class:{\n 'font-weight-medium': !item.IsRead,\n 'font-weight-light': item.IsRead,\n }},[_vm._v(_vm._s(item.Subject))]),(item.Attachments.length)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"grey lighten-1\"}},[_vm._v(\"mdi-attachment\")]):_vm._e()],1),_c('div',[_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm._f(\"filterDate\")(item.CreatedDate)))])])])],1),_c('v-col',{staticClass:\"py-0 d-none d-sm-flex align-center\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-card-subtitle',{},[_c('div',{staticClass:\"d-flex justify-space-between align-end\"},[_c('div',[_c('span',{staticClass:\"mr-5\"},[_vm._v(_vm._s(item.Subject))]),(item.Attachments.length)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"grey lighten-1\"}},[_vm._v(\"mdi-attachment\")]):_vm._e()],1)])])],1),_c('v-col',{staticClass:\"py-0 d-none d-md-flex align-center justify-center\",attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[(item.IsRead)?_c('v-btn',{staticClass:\"mb-n1 mt-n3\",attrs:{\"small\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleIsRead(item.OID)}}},[_c('span',{staticClass:\"caption custom-transform-class text-none\"},[_vm._v(\"Mark as unread\")]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"grey darken-2\",\"right\":\"\"}},[_vm._v(\"mdi-email-mark-as-unread\")])],1):_vm._e()],1)],1)],1)})],2),_c('v-dialog',{attrs:{\"persistent\":\"\",\"fullscreen\":\"\",\"transition\":\"dialog-transition\"},model:{value:(_vm.messageDialog),callback:function ($$v) {_vm.messageDialog=$$v},expression:\"messageDialog\"}},[(_vm.selectedMessage)?_c('SelectedEmailMessage',{attrs:{\"selectedMessage\":_vm.selectedMessage},on:{\"closeMsgDialog\":_vm.closeMsgDialog,\"replyToMsgDialog\":function($event){_vm.replyToMsgDialog = true},\"toggleAttachmentSheet\":function($event){_vm.attachmentSheet = !_vm.attachmentSheet}}}):_vm._e()],1),_c('v-bottom-sheet',{model:{value:(_vm.attachmentSheet),callback:function ($$v) {_vm.attachmentSheet=$$v},expression:\"attachmentSheet\"}},[(_vm.selectedMessage)?_c('AttachmentsBottomSheet',{attrs:{\"attachmentSheet\":_vm.attachmentSheet,\"selectedMessage\":_vm.selectedMessage},on:{\"toggleAttachmentSheet\":function($event){_vm.attachmentSheet = !_vm.attachmentSheet}}}):_vm._e()],1),_c('v-overlay',{attrs:{\"value\":_vm.loading}},[_c('v-progress-circular',{attrs:{\"color\":\"#E66544\",\"indeterminate\":\"\",\"size\":\"64\"}})],1),_c('EmailReply',{attrs:{\"replyToMsg\":_vm.replyToMsgDialog,\"messageInfo\":_vm.selectedMessage ? _vm.selectedMessage : {}},on:{\"closeDialog\":_vm.closeEmaileReply,\"confirmReply\":_vm.confirmReply,\"replyError\":_vm.replyError}}),_c('SendEmail',{attrs:{\"sendEmailDialog\":_vm.sendEmailDialog},on:{\"closeSendEmailDialog\":_vm.closeSendEmailDialog,\"confirmEmailSend\":_vm.confirmEmailSend,\"emailSendError\":_vm.emailSendError}}),_c('Snackbar',{attrs:{\"snackbar\":_vm.showSnackbar,\"snackbarText\":_vm.snackbarText,\"color\":_vm.snackBarColor},on:{\"emitSnackbarTimeout\":_vm.closeSnackbar}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BranchEmails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BranchEmails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BranchEmails.vue?vue&type=template&id=109cd0ed&\"\nimport script from \"./BranchEmails.vue?vue&type=script&lang=js&\"\nexport * from \"./BranchEmails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBottomSheet } from 'vuetify/lib/components/VBottomSheet';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBottomSheet,VBtn,VCard,VCardSubtitle,VCardTitle,VCheckbox,VCol,VContainer,VDialog,VIcon,VList,VListItem,VListItemTitle,VMenu,VOverlay,VProgressCircular,VRow,VSpacer})\n","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BranchEmails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BranchEmails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BranchEmails.vue?vue&type=template&id=91b32bf2&\"\nimport script from \"./BranchEmails.vue?vue&type=script&lang=js&\"\nexport * from \"./BranchEmails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\nexport {\n match1,\n match2,\n match3,\n match4,\n match6,\n match1to2,\n match3to4,\n match5to6,\n match1to3,\n match1to4,\n match1to6,\n matchUnsigned,\n matchSigned,\n matchOffset,\n matchShortOffset,\n matchTimestamp,\n matchWord,\n};\n\nimport hasOwnProp from '../utils/has-own-prop';\nimport isFunction from '../utils/is-function';\n\nregexes = {};\n\nexport function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nexport function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n}\n\nexport function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","import { deprecate } from '../utils/deprecate';\nimport isArray from '../utils/is-array';\nimport { createLocal } from '../create/local';\nimport { createInvalid } from '../create/valid';\n\nexport var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nexport function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nexport function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n","export var now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n","import hasOwnProp from '../utils/has-own-prop';\nimport toInt from '../utils/to-int';\nimport indexOf from '../utils/index-of';\nimport { createDuration } from './create';\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nexport default function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nexport function isValid() {\n return this._isValid;\n}\n\nexport function createInvalid() {\n return createDuration(NaN);\n}\n","import { normalizeObjectUnits } from '../units/aliases';\nimport { getLocale } from '../locale/locales';\nimport isDurationValid from './valid.js';\n\nexport function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nexport function isDuration(obj) {\n return obj instanceof Duration;\n}\n","export default function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n","import toInt from './to-int';\n\n// compare two arrays, return the number of differences\nexport default function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n","import zeroFill from '../utils/zero-fill';\nimport { createDuration } from '../duration/create';\nimport { addSubtract } from '../moment/add-subtract';\nimport { isMoment, copyConfig } from '../moment/constructor';\nimport { addFormatToken } from '../format/format';\nimport { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { createLocal } from '../create/local';\nimport { prepareConfig } from '../create/from-anything';\nimport { createUTC } from '../create/utc';\nimport isDate from '../utils/is-date';\nimport toInt from '../utils/to-int';\nimport isUndefined from '../utils/is-undefined';\nimport compareArrays from '../utils/compare-arrays';\nimport { hooks } from '../utils/hooks';\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nexport function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nexport function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nexport function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nexport function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nexport function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nexport function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nexport function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nexport function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nexport function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nexport function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nexport function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nexport function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n","import { Duration, isDuration } from './constructor';\nimport isNumber from '../utils/is-number';\nimport toInt from '../utils/to-int';\nimport absRound from '../utils/abs-round';\nimport hasOwnProp from '../utils/has-own-prop';\nimport { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants';\nimport { cloneWithOffset } from '../units/offset';\nimport { createLocal } from '../create/local';\nimport { createInvalid as invalid } from './valid';\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nexport function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = invalid;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n","import { get, set } from './get-set';\nimport { setMonth } from '../units/month';\nimport { createDuration } from '../duration/create';\nimport { deprecateSimple } from '../utils/deprecate';\nimport { hooks } from '../utils/hooks';\nimport absRound from '../utils/abs-round';\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nexport function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nexport var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n","export default function isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n","import isObjectEmpty from './is-object-empty';\nimport hasOwnProp from './has-own-prop';\nimport isObject from './is-object';\nimport isDate from './is-date';\nimport isNumber from './is-number';\nimport isString from './is-string';\nimport { isMoment } from '../moment/constructor';\nimport isArray from './is-array';\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nexport function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nexport function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n","import isObjectEmpty from './is-object-empty';\nimport hasOwnProp from './has-own-prop';\nimport isObject from './is-object';\n\nexport default function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n","import { createLocal } from '../create/local';\nimport { cloneWithOffset } from '../units/offset';\nimport isFunction from '../utils/is-function';\nimport { hooks } from '../utils/hooks';\nimport { isMomentInput } from '../utils/is-moment-input';\nimport isCalendarSpec from '../utils/is-calendar-spec';\n\nexport function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nexport function calendar(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n","import { Moment } from './constructor';\n\nexport function clone() {\n return new Moment(this);\n}\n","import { isMoment } from './constructor';\nimport { normalizeUnits } from '../units/aliases';\nimport { createLocal } from '../create/local';\n\nexport function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nexport function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nexport function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nexport function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nexport function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nexport function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n","import absFloor from '../utils/abs-floor';\nimport { cloneWithOffset } from '../units/offset';\nimport { normalizeUnits } from '../units/aliases';\n\nexport function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n","import { formatMoment } from '../format/format';\nimport { hooks } from '../utils/hooks';\nimport isFunction from '../utils/is-function';\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nexport function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nexport function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nexport function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nexport function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n","import { createDuration } from '../duration/create';\nimport { createLocal } from '../create/local';\nimport { isMoment } from '../moment/constructor';\n\nexport function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nexport function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n","import { createDuration } from '../duration/create';\nimport { createLocal } from '../create/local';\nimport { isMoment } from '../moment/constructor';\n\nexport function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nexport function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n","import { getLocale } from '../locale/locales';\nimport { deprecate } from '../utils/deprecate';\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nexport function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nexport var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nexport function localeData() {\n return this._locale;\n}\n","import { normalizeUnits } from '../units/aliases';\nimport { hooks } from '../utils/hooks';\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nexport function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nexport function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n","export function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nexport function unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nexport function toDate() {\n return new Date(this.valueOf());\n}\n\nexport function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nexport function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nexport function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n","import { isValid as _isValid } from '../create/valid';\nimport extend from '../utils/extend';\nimport getParsingFlags from '../create/parsing-flags';\n\nexport function isValid() {\n return _isValid(this);\n}\n\nexport function parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nexport function invalidAt() {\n return getParsingFlags(this).overflow;\n}\n","export function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n","import { addFormatToken } from '../format/format';\nimport { addRegexToken, matchUnsigned, regexEscape } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { YEAR } from './constants';\nimport { hooks as moment } from '../utils/hooks';\nimport { getLocale } from '../locale/locales';\nimport getParsingFlags from '../create/parsing-flags';\nimport hasOwnProp from '../utils/has-own-prop';\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n});\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nexport function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = moment(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = moment(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nexport function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nexport function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return moment(era.since).year();\n } else {\n return moment(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nexport function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nexport function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nexport function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nexport function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - moment(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nexport function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nexport function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nexport function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport {\n addRegexToken,\n match1to2,\n match1to4,\n match1to6,\n match2,\n match4,\n match6,\n matchSigned,\n} from '../parse/regex';\nimport { addWeekParseToken } from '../parse/token';\nimport {\n weekOfYear,\n weeksInYear,\n dayOfYearFromWeeks,\n} from './week-calendar-utils';\nimport toInt from '../utils/to-int';\nimport { hooks } from '../utils/hooks';\nimport { createUTCDate } from '../create/date-from-array';\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n) {\n week[token.substr(0, 2)] = toInt(input);\n});\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nexport function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nexport function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nexport function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nexport function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nexport function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nexport function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport toInt from '../utils/to-int';\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nexport function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n","import { makeGetSet } from '../moment/get-set';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { DATE } from './constants';\nimport toInt from '../utils/to-int';\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIORITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nexport var getSetDayOfMonth = makeGetSet('Date', true);\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match3, match1to3 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport toInt from '../utils/to-int';\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nexport function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n","import { makeGetSet } from '../moment/get-set';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MINUTE } from './constants';\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nexport var getSetMinute = makeGetSet('Minutes', false);\n","import { makeGetSet } from '../moment/get-set';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { SECOND } from './constants';\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nexport var getSetSecond = makeGetSet('Seconds', false);\n","import { makeGetSet } from '../moment/get-set';\nimport { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport {\n addRegexToken,\n match1,\n match2,\n match3,\n match1to3,\n matchUnsigned,\n} from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MILLISECOND } from './constants';\nimport toInt from '../utils/to-int';\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\nexport { getSetMillisecond };\n","import { addFormatToken } from '../format/format';\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nexport function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nexport function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n","import { Moment } from './constructor';\n\nvar proto = Moment.prototype;\n\nimport { add, subtract } from './add-subtract';\nimport { calendar } from './calendar';\nimport { clone } from './clone';\nimport {\n isBefore,\n isBetween,\n isSame,\n isAfter,\n isSameOrAfter,\n isSameOrBefore,\n} from './compare';\nimport { diff } from './diff';\nimport { format, toString, toISOString, inspect } from './format';\nimport { from, fromNow } from './from';\nimport { to, toNow } from './to';\nimport { stringGet, stringSet } from './get-set';\nimport { locale, localeData, lang } from './locale';\nimport { prototypeMin, prototypeMax } from './min-max';\nimport { startOf, endOf } from './start-end-of';\nimport { valueOf, toDate, toArray, toObject, toJSON, unix } from './to-type';\nimport { isValid, parsingFlags, invalidAt } from './valid';\nimport { creationData } from './creation-data';\n\nproto.add = add;\nproto.calendar = calendar;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\n\n// Era\nimport { getEraName, getEraNarrow, getEraAbbr, getEraYear } from '../units/era';\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\n\n// Year\nimport { getSetYear, getIsLeapYear } from '../units/year';\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\n\n// Week Year\nimport {\n getSetWeekYear,\n getSetISOWeekYear,\n getWeeksInYear,\n getWeeksInWeekYear,\n getISOWeeksInYear,\n getISOWeeksInISOWeekYear,\n} from '../units/week-year';\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\n\n// Quarter\nimport { getSetQuarter } from '../units/quarter';\nproto.quarter = proto.quarters = getSetQuarter;\n\n// Month\nimport { getSetMonth, getDaysInMonth } from '../units/month';\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\n\n// Week\nimport { getSetWeek, getSetISOWeek } from '../units/week';\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n\n// Day\nimport { getSetDayOfMonth } from '../units/day-of-month';\nimport {\n getSetDayOfWeek,\n getSetISODayOfWeek,\n getSetLocaleDayOfWeek,\n} from '../units/day-of-week';\nimport { getSetDayOfYear } from '../units/day-of-year';\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\n\n// Hour\nimport { getSetHour } from '../units/hour';\nproto.hour = proto.hours = getSetHour;\n\n// Minute\nimport { getSetMinute } from '../units/minute';\nproto.minute = proto.minutes = getSetMinute;\n\n// Second\nimport { getSetSecond } from '../units/second';\nproto.second = proto.seconds = getSetSecond;\n\n// Millisecond\nimport { getSetMillisecond } from '../units/millisecond';\nproto.millisecond = proto.milliseconds = getSetMillisecond;\n\n// Offset\nimport {\n getSetOffset,\n setOffsetToUTC,\n setOffsetToLocal,\n setOffsetToParsedOffset,\n hasAlignedHourOffset,\n isDaylightSavingTime,\n isDaylightSavingTimeShifted,\n getSetZone,\n isLocal,\n isUtcOffset,\n isUtc,\n} from '../units/offset';\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\n\n// Timezone\nimport { getZoneAbbr, getZoneName } from '../units/timezone';\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\n\n// Deprecations\nimport { deprecate } from '../utils/deprecate';\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nexport default proto;\n","import { createLocal } from '../create/local';\nimport { createUTC } from '../create/utc';\nimport { createInvalid } from '../create/valid';\nimport { isMoment } from './constructor';\nimport { min, max } from './min-max';\nimport { now } from './now';\nimport momentPrototype from './prototype';\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nexport {\n now,\n min,\n max,\n isMoment,\n createUTC,\n createUnix,\n createLocal,\n createInZone,\n createInvalid,\n momentPrototype,\n};\n","export function preParsePostFormat(string) {\n return string;\n}\n","import { Locale } from './constructor';\n\nvar proto = Locale.prototype;\n\nimport { calendar } from './calendar';\nimport { longDateFormat } from './formats';\nimport { invalidDate } from './invalid';\nimport { ordinal } from './ordinal';\nimport { preParsePostFormat } from './pre-post-format';\nimport { relativeTime, pastFuture } from './relative';\nimport { set } from './set';\n\nproto.calendar = calendar;\nproto.longDateFormat = longDateFormat;\nproto.invalidDate = invalidDate;\nproto.ordinal = ordinal;\nproto.preparse = preParsePostFormat;\nproto.postformat = preParsePostFormat;\nproto.relativeTime = relativeTime;\nproto.pastFuture = pastFuture;\nproto.set = set;\n\n// Eras\nimport {\n localeEras,\n localeErasParse,\n localeErasConvertYear,\n erasAbbrRegex,\n erasNameRegex,\n erasNarrowRegex,\n} from '../units/era';\nproto.eras = localeEras;\nproto.erasParse = localeErasParse;\nproto.erasConvertYear = localeErasConvertYear;\nproto.erasAbbrRegex = erasAbbrRegex;\nproto.erasNameRegex = erasNameRegex;\nproto.erasNarrowRegex = erasNarrowRegex;\n\n// Month\nimport {\n localeMonthsParse,\n localeMonths,\n localeMonthsShort,\n monthsRegex,\n monthsShortRegex,\n} from '../units/month';\n\nproto.months = localeMonths;\nproto.monthsShort = localeMonthsShort;\nproto.monthsParse = localeMonthsParse;\nproto.monthsRegex = monthsRegex;\nproto.monthsShortRegex = monthsShortRegex;\n\n// Week\nimport {\n localeWeek,\n localeFirstDayOfYear,\n localeFirstDayOfWeek,\n} from '../units/week';\nproto.week = localeWeek;\nproto.firstDayOfYear = localeFirstDayOfYear;\nproto.firstDayOfWeek = localeFirstDayOfWeek;\n\n// Day of Week\nimport {\n localeWeekdaysParse,\n localeWeekdays,\n localeWeekdaysMin,\n localeWeekdaysShort,\n weekdaysRegex,\n weekdaysShortRegex,\n weekdaysMinRegex,\n} from '../units/day-of-week';\n\nproto.weekdays = localeWeekdays;\nproto.weekdaysMin = localeWeekdaysMin;\nproto.weekdaysShort = localeWeekdaysShort;\nproto.weekdaysParse = localeWeekdaysParse;\n\nproto.weekdaysRegex = weekdaysRegex;\nproto.weekdaysShortRegex = weekdaysShortRegex;\nproto.weekdaysMinRegex = weekdaysMinRegex;\n\n// Hours\nimport { localeIsPM, localeMeridiem } from '../units/hour';\n\nproto.isPM = localeIsPM;\nproto.meridiem = localeMeridiem;\n","import isNumber from '../utils/is-number';\nimport { getLocale } from './locales';\nimport { createUTC } from '../create/utc';\n\nfunction get(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nexport function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nexport function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nexport function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nexport function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nexport function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n","import './prototype';\nimport { getSetGlobalLocale } from './locales';\nimport toInt from '../utils/to-int';\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n","// Side effect imports\nimport './prototype';\n\nimport {\n getSetGlobalLocale,\n defineLocale,\n updateLocale,\n getLocale,\n listLocales,\n} from './locales';\n\nimport {\n listMonths,\n listMonthsShort,\n listWeekdays,\n listWeekdaysShort,\n listWeekdaysMin,\n} from './lists';\n\nexport {\n getSetGlobalLocale,\n defineLocale,\n updateLocale,\n getLocale,\n listLocales,\n listMonths,\n listMonthsShort,\n listWeekdays,\n listWeekdaysShort,\n listWeekdaysMin,\n};\n\nimport { deprecate } from '../utils/deprecate';\nimport { hooks } from '../utils/hooks';\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nimport './en';\n","var mathAbs = Math.abs;\n\nexport function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n","import { createDuration } from './create';\n\nfunction addSubtract(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nexport function add(input, value) {\n return addSubtract(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nexport function subtract(input, value) {\n return addSubtract(this, input, value, -1);\n}\n","export default function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n","import absFloor from '../utils/abs-floor';\nimport absCeil from '../utils/abs-ceil';\n\nexport function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nexport function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nexport function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n","import { daysToMonths, monthsToDays } from './bubble';\nimport { normalizeUnits } from '../units/aliases';\nimport toInt from '../utils/to-int';\n\nexport function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\n// TODO: Use this.as('ms')?\nexport function valueOf() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\nexport {\n asMilliseconds,\n asSeconds,\n asMinutes,\n asHours,\n asDays,\n asWeeks,\n asMonths,\n asQuarters,\n asYears,\n};\n","import { createDuration } from './create';\n\nexport function clone() {\n return createDuration(this);\n}\n","import { normalizeUnits } from '../units/aliases';\nimport absFloor from '../utils/abs-floor';\n\nexport function get(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nexport { milliseconds, seconds, minutes, hours, days, months, years };\n\nexport function weeks() {\n return absFloor(this.days() / 7);\n}\n","import { createDuration } from './create';\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nexport function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nexport function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nexport function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n","import absFloor from '../utils/abs-floor';\nvar abs = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nexport function toISOString() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs(this._milliseconds) / 1000,\n days = abs(this._days),\n months = abs(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n","import { Duration } from './constructor';\n\nvar proto = Duration.prototype;\n\nimport { abs } from './abs';\nimport { add, subtract } from './add-subtract';\nimport {\n as,\n asMilliseconds,\n asSeconds,\n asMinutes,\n asHours,\n asDays,\n asWeeks,\n asMonths,\n asQuarters,\n asYears,\n valueOf,\n} from './as';\nimport { bubble } from './bubble';\nimport { clone } from './clone';\nimport {\n get,\n milliseconds,\n seconds,\n minutes,\n hours,\n days,\n months,\n years,\n weeks,\n} from './get';\nimport { humanize } from './humanize';\nimport { toISOString } from './iso-string';\nimport { lang, locale, localeData } from '../moment/locale';\nimport { isValid } from './valid';\n\nproto.isValid = isValid;\nproto.abs = abs;\nproto.add = add;\nproto.subtract = subtract;\nproto.as = as;\nproto.asMilliseconds = asMilliseconds;\nproto.asSeconds = asSeconds;\nproto.asMinutes = asMinutes;\nproto.asHours = asHours;\nproto.asDays = asDays;\nproto.asWeeks = asWeeks;\nproto.asMonths = asMonths;\nproto.asQuarters = asQuarters;\nproto.asYears = asYears;\nproto.valueOf = valueOf;\nproto._bubble = bubble;\nproto.clone = clone;\nproto.get = get;\nproto.milliseconds = milliseconds;\nproto.seconds = seconds;\nproto.minutes = minutes;\nproto.hours = hours;\nproto.days = days;\nproto.weeks = weeks;\nproto.months = months;\nproto.years = years;\nproto.humanize = humanize;\nproto.toISOString = toISOString;\nproto.toString = toISOString;\nproto.toJSON = toISOString;\nproto.locale = locale;\nproto.localeData = localeData;\n\n// Deprecations\nimport { deprecate } from '../utils/deprecate';\n\nproto.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString\n);\nproto.lang = lang;\n","import { addFormatToken } from '../format/format';\nimport { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport toInt from '../utils/to-int';\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nimport { hooks as moment, setHookCallback } from './lib/utils/hooks';\n\nmoment.version = '2.29.1';\n\nimport {\n min,\n max,\n now,\n isMoment,\n momentPrototype as fn,\n createUTC as utc,\n createUnix as unix,\n createLocal as local,\n createInvalid as invalid,\n createInZone as parseZone,\n} from './lib/moment/moment';\n\nimport { getCalendarFormat } from './lib/moment/calendar';\n\nimport {\n defineLocale,\n updateLocale,\n getSetGlobalLocale as locale,\n getLocale as localeData,\n listLocales as locales,\n listMonths as months,\n listMonthsShort as monthsShort,\n listWeekdays as weekdays,\n listWeekdaysMin as weekdaysMin,\n listWeekdaysShort as weekdaysShort,\n} from './lib/locale/locale';\n\nimport {\n isDuration,\n createDuration as duration,\n getSetRelativeTimeRounding as relativeTimeRounding,\n getSetRelativeTimeThreshold as relativeTimeThreshold,\n} from './lib/duration/duration';\n\nimport { normalizeUnits } from './lib/units/units';\n\nimport isDate from './lib/utils/is-date';\n\nsetHookCallback(local);\n\nmoment.fn = fn;\nmoment.min = min;\nmoment.max = max;\nmoment.now = now;\nmoment.utc = utc;\nmoment.unix = unix;\nmoment.months = months;\nmoment.isDate = isDate;\nmoment.locale = locale;\nmoment.invalid = invalid;\nmoment.duration = duration;\nmoment.isMoment = isMoment;\nmoment.weekdays = weekdays;\nmoment.parseZone = parseZone;\nmoment.localeData = localeData;\nmoment.isDuration = isDuration;\nmoment.monthsShort = monthsShort;\nmoment.weekdaysMin = weekdaysMin;\nmoment.defineLocale = defineLocale;\nmoment.updateLocale = updateLocale;\nmoment.locales = locales;\nmoment.weekdaysShort = weekdaysShort;\nmoment.normalizeUnits = normalizeUnits;\nmoment.relativeTimeRounding = relativeTimeRounding;\nmoment.relativeTimeThreshold = relativeTimeThreshold;\nmoment.calendarFormat = getCalendarFormat;\nmoment.prototype = fn;\n\n// currently HTML5 input type only supports 24-hour formats\nmoment.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n};\n\nexport default moment;\n","import hasOwnProp from '../utils/has-own-prop';\n\nvar aliases = {};\n\nexport function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n}\n\nexport function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nexport function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n","export function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n","export default function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snackbar.vue?vue&type=style&index=0&lang=css&\"","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n","var some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nexport { some as default };\n","import extend from '../utils/extend';\nimport { createUTC } from './utc';\nimport getParsingFlags from '../create/parsing-flags';\nimport some from '../utils/some';\n\nexport function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n}\n\nexport function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n"],"sourceRoot":""}