{"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:///./src/views/MessageViews/StaffEmails.vue?6787","webpack:///./src/components/MessageComponents/StaffEmails.vue?6c08","webpack:///src/components/MessageComponents/StaffEmails.vue","webpack:///./src/components/MessageComponents/StaffEmails.vue?64dd","webpack:///./src/components/MessageComponents/StaffEmails.vue","webpack:///src/views/MessageViews/StaffEmails.vue","webpack:///./src/views/MessageViews/StaffEmails.vue?f087","webpack:///./src/views/MessageViews/StaffEmails.vue","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:///./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","toDashboard","selectedDataSetFilter","inboxReadUnread","staffEmails","staff","Unread","refreshEmails","checkedMessagesForAction","toggleReadUnreadMultiple","markAsComplete","archiveSelectedMessages","staticStyle","checkReadStatus","checkReadStatusText","IsRead","openMessage","CreatedDate","toggleIsRead","messageDialog","loading","closeEmailReply","confirmReply","replyError","confirmEmailSend","emailSendError","showSnackbar","snackbarText","snackBarColor","closeSnackbar","EmailReply","SendEmail","Snackbar","SelectedEmailMessage","AttachmentsBottomSheet","$router","go","message","idArray","mapState","emails","completed","sent","Data","filter","filters","filterDate","moment","VBottomSheet","VCheckbox","VContainer","VProgressCircular","StaffEmails","commit","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","_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","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","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","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","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-395d3645.cd4aeb91.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('StaffEmails')}\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\",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:\"mx-auto text-center\"},[_c('p',{staticClass:\"mb-0 mt-3 font-weight-light headline\"},[_vm._v(\"My 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.staffEmails.staff.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:{\"color\":\"white\",\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_c('span',{staticClass:\"custom-transform-class text-none white--text\"},[_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:\"white d-flex align-center text-center py-0 px-3\"},[_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:\"mx-0 ml-sm-1 ml-md-3 ml-lg-5 ml-xl-11 px-0\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-cog\")])],1)]}}],null,false,2914602127)},[_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 align-center\\n justify-space-between 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('div',{staticClass:\"pointer mt-2 unread text-center\",staticStyle:{\"min-width\":\"50px\"},on:{\"click\":function($event){_vm.inboxReadUnread = 4}}},[_c('v-icon',{attrs:{\"color\":_vm.checkReadStatus(4)}},[_vm._v(\"mdi-email-send-outline\")]),_c('p',{staticClass:\"mb-0 caption text-center\",class:_vm.checkReadStatusText(4)},[_vm._v(\" Sent \")])],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,staticClass:\"ml-3\",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:{\"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)}),_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.closeEmailReply,\"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}})],2)],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!./StaffEmails.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!./StaffEmails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StaffEmails.vue?vue&type=template&id=5c8dfa4c&\"\nimport script from \"./StaffEmails.vue?vue&type=script&lang=js&\"\nexport * from \"./StaffEmails.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!./StaffEmails.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!./StaffEmails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StaffEmails.vue?vue&type=template&id=068c32a5&\"\nimport script from \"./StaffEmails.vue?vue&type=script&lang=js&\"\nexport * from \"./StaffEmails.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","'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 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":""}