Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendors~editor-collab~editor-guest.js.map')
-rw-r--r--js/vendors~editor-collab~editor-guest.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/js/vendors~editor-collab~editor-guest.js.map b/js/vendors~editor-collab~editor-guest.js.map
index d570e8e65..5fda63c3b 100644
--- a/js/vendors~editor-collab~editor-guest.js.map
+++ b/js/vendors~editor-collab~editor-guest.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///../lib/index.ts","webpack:///./node_modules/linkifyjs/lib/linkify/utils/class.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/tokens/text.js","webpack:///NextcloudVue.[name]/webpack/universalModuleDefinition","webpack:///NextcloudVue.[name]/webpack/bootstrap","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/api.js","webpack:///NextcloudVue.[name]/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///NextcloudVue.[name]/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/getUrl.js","webpack:///webpack:/NextcloudVue.[name]/external \"vue\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.object.to-string.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"v-tooltip\"","webpack:///NextcloudVue.[name]/src/fonts/iconfont-vue-6b494fc.eot","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/router\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.function.name.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.exec.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.dom-collections.iterator.js\"","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?770b","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss?0d1f","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.js","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.map.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.replace.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.to-string.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.concat.js\"","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?d02f","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?470d","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?01ec","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/event-bus\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.number.constructor.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.symbol.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/auth\"","webpack:///NextcloudVue.[name]/src/utils/IsMobileState.js","webpack:///NextcloudVue.[name]/src/mixins/isMobile/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/axios\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.symbol.description.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.url.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.slice.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"v-click-outside\"","webpack:///webpack:/NextcloudVue.[name]/external \"striptags\"","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?931e","webpack:///NextcloudVue.[name]/src/mixins/userStatus.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.symbol.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"linkifyjs/string\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.from.js\"","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?fe4e","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?b648","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?3c28","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.join.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"regenerator-runtime/runtime.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.promise.js\"","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?d102","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?6682","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?50ea","webpack:///NextcloudVue.[name]/src/mixins/richEditor/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"escape-html\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.starts-with.js\"","webpack:///NextcloudVue.[name]/src/utils/GenColors.js","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?a5a6","webpack:///NextcloudVue.[name]/src/mixins/excludeClickOutsideClasses/index.js","webpack:///NextcloudVue.[name]/src/mixins/isFullscreen/index.js","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?cb4e","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?356f","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?e2dd","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?ad0c","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?b983","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?f50c","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?ca3a","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.split.js\"","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?7e12","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?125c","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?7897","webpack:///NextcloudVue.[name]/src/components/Avatar/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"md5\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/capabilities\"","webpack:///NextcloudVue.[name]/src/functions/usernameToColor/index.js","webpack:///NextcloudVue.[name]/src/functions/usernameToColor/usernameToColor.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/browser-storage\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.includes.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.constructor.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.flat.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.match.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.from-code-point.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.code-point-at.js\"","webpack:///./node_modules/linkifyjs/lib/linkify/core/state.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/tokens/create-token-class.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/charenc/charenc.js","webpack:///../src/v-click-outside.js","webpack:///../src/index.js","webpack:///./node_modules/striptags/src/striptags.js","webpack:///./node_modules/linkifyjs/string.js","webpack:///./node_modules/linkifyjs/lib/linkify-string.js","webpack:///./node_modules/linkifyjs/lib/linkify.js","webpack:///./node_modules/linkifyjs/lib/linkify/utils/options.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/scanner.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/parser.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/tokens/multi.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/md5/md5.js","webpack:///./node_modules/crypt/crypt.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js"],"names":["elem","document","fallback","JSON","atob","exports","__esModule","inherits","parent","child","props","arguments","length","undefined","extended","Object","create","prototype","p","constructor","DESCRIPTORS","require","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","getOwnPropertyNames","f","getOwnPropertyDescriptor","defineProperty","trim","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","dummy","this","valueOf","call","keys","split","j","AMPERSAND","CLOSEPAREN","CLOSEANGLEBRACKET","CLOSEBRACKET","CLOSEBRACE","OPENPAREN","OPENANGLEBRACKET","OPENBRACKET","OPENBRACE","WS","TLD","SYM","UNDERSCORE","SLASH","MAILTO","PROTOCOL","QUERY","POUND","PLUS","NUM","NL","LOCALHOST","PUNCTUATION","DOT","COLON","AT","DOMAIN","Base","_createTokenClass","_class","TextToken","createTokenClass","inheritsToken","v","toString","factory","window","installedModules","__webpack_require__","moduleId","module","i","l","modules","m","c","d","name","getter","o","enumerable","get","r","Symbol","toStringTag","t","mode","ns","bind","n","object","property","hasOwnProperty","s","_slicedToArray","arr","Array","isArray","iterator","_arr","_n","_d","_e","_s","_i","next","done","push","err","minLen","_arrayLikeToArray","from","test","TypeError","len","arr2","item","_item","content","cssMapping","btoa","base64","unescape","encodeURIComponent","stringify","data","concat","sourceMapping","sourceURLs","sources","map","source","sourceRoot","join","cssWithMappingToString","list","mediaQuery","dedupe","alreadyImportedModules","id","memo","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","Boolean","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","newObj","all","lastIdentifiers","newList","newLastIdentifiers","_index","splice","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","url","default","hash","needQuotes","replace","__webpack_exports__","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default","version","names","mappings","sourcesContent","injectStylesIntoStyleTag_default","Tooltip","locals","VTooltip","defaultTemplate","SCOPE_VERSION","defaultHtml","Popover_Popovervue_type_script_lang_js_","components","VPopover","mounted","val","_this","Popovervue_type_style_index_0_lang_scss_","_h","$createElement","_c","_self","_g","_b","ref","attrs","popover-base-class","popover-wrapper-class","popover-arrow-class","popover-inner-class","$attrs","$listeners","_t","_v","slot","IsMobileState","isMobile","watch","$emit","created","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","$on","onIsMobileChanged","$off","hasStatus","userStatus","status","message","icon","fetchUserStatus","userId","capabilities","getCapabilities","user_status","enabled","getCurrentUser","axios","generateOcsUrl","ocs","_context","response","console","error","RichContenteditable_MentionBubblevue_type_script_lang_js_","type","required","label","primary","computed","avatarUrl","mentionText","getAvatarUrl","user","size","MentionBubblevue_type_style_index_0_id_724f9d58_lang_scss_scoped_true_","_vm","staticClass","class","mention-bubble--primary","contenteditable","backgroundImage","role","title","USERID_REGEX","RegExp","USERID_REGEX_WITH_SPACE","userData","renderContent","escapeHtml","part","flat","startsWith","linkifyStr","defaultProtocol","className","rel","genSelectTemplate","parseContent","text","stripTags","renderComponentHtml","MentionBubble","indexOf","propsData","component","Item","Vue","extend","wrapper","mount","display","body","$mount","renderedHtml","innerHTML","$destroy","Color","g","b","mixPalette","steps","color1","color2","palette","step","ends","GenColors","red","yellow","blue","palette1","palette2","palette3","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","___CSS_LOADER_URL_REPLACEMENT_0___","_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default","_fonts_iconfont_vue_6b494fc_eot__WEBPACK_IMPORTED_MODULE_3__","___CSS_LOADER_URL_REPLACEMENT_1___","_fonts_iconfont_vue_6b494fc_woff__WEBPACK_IMPORTED_MODULE_4__","___CSS_LOADER_URL_REPLACEMENT_2___","_fonts_iconfont_vue_6b494fc_ttf__WEBPACK_IMPORTED_MODULE_5__","___CSS_LOADER_URL_REPLACEMENT_3___","_fonts_iconfont_vue_6b494fc_svg__WEBPACK_IMPORTED_MODULE_6__","excludeClickOutsideClasses","String","clickOutsideMiddleware","event","excludedClassList","hasNodeOrAnyParentClass","node","classArray","classList","contains","parentElement","isFullscreen","_isFullscreen","beforeMount","_onResize","outerHeight","screen","height","PopoverMenu_PopoverMenuItemvue_type_script_lang_js_","href","validator","Math","iconIsUrl","action","PopoverMenuItemvue_type_style_index_0_id_febed9b6_scoped_true_lang_css_","PopoverMenuItemvue_type_style_index_1_id_febed9b6_lang_scss_scoped_true_","PopoverMenu_PopoverMenuvue_type_script_lang_js_","PopoverMenuItem","download","on","click","src","longtext","active","input","submit","$event","preventDefault","placeholder","domProps","directives","rawName","expression","checked","model","change","$$a","$$el","$$c","$$i","$set","_q","composing","for","stopPropagation","disabled","menu","PopoverMenuvue_type_style_index_0_id_4dae360a_lang_scss_scoped_true_","_l","PopoverMenu","getUserHasAvatar","setUserHasAvatar","flag","browserStorage","Avatar_Avatarvue_type_script_lang_js_","tooltip","ClickOutside","Popover","mixins","iconClass","showUserStatus","showUserStatusCompact","preloadedUserStatus","isGuest","displayName","allowPlaceholder","disableTooltip","disableMenu","tooltipMessage","isNoUser","statusColor","menuPosition","menuContainer","avatarUrlLoaded","avatarSrcSetLoaded","userDoesNotExist","isAvatarLoaded","isMenuLoaded","contactsMenuLoading","contactsMenuActions","contactsMenuOpenState","canDisplayUserStatus","showUserStatusIconOnAvatar","getUserIdentifier","isUserDefined","isDisplayNameDefined","isUrlDefined","hasMenu","shouldShowPlaceholder","avatarStyle","width","lineHeight","fontSize","initials","idx","html","actions","beforeDestroyed","handleUserStatusUpdated","toggleMenu","closeMenu","fetchContactsMenu","_this2","axios_default","loadAvatarUrl","srcset","avatarUrlGenerator","updateImageIfValid","userHasAvatar","img","_this3","Avatarvue_type_style_index_0_id_1bfc7bfe_scoped_true_lang_scss_","avatardiv--unknown","avatardiv--with-menu","alt","placement","container","open","backgroundColor","xmlns","viewBox","fill","stroke","stroke-width","stroke-linecap","Avatar","usernameToColor","username","toLowerCase","match","md5","maximum","finalInt","charAt","define","stateify","TokenState","CharacterState","BaseState","tClass","T","defaultTransition","symbol","state","jump","accepts","emit","character","charOrRegExp","token","tokenClass","str","start","endToken","defaultToken","newStates","nextState","anObject","aFunction","SPECIES","wellKnownSymbol","O","defaultConstructor","S","C","defer","channel","port","IS_IOS","IS_NODE","location","set","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","run","fn","runner","listener","post","postMessage","protocol","host","args","Function","apply","nextTick","now","port2","port1","onmessage","importScripts","setTimeout","userAgent","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","charenc","utf8","stringToBytes","bin","bytesToString","bytes","decodeURIComponent","escape","fromCharCode","HAS_WINDOWS","HAS_NAVIGATOR","navigator","EVENTS","msMaxTouchPoints","execHandler","handler","middleware","el","bindingValue","isFunction","events","isActive","detectIframe","processDirectiveArguments","eventName","srcTarget","path","composedPath","detectIframeEvent","activeElement","tagName","unbind","oldValue","install","directive","nonNative","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","allowable_tags","tag_replacement","striptags_internal","init_context","tag_set","Set","exec","parse_allowable_tags","tag_buffer","depth","in_quote_char","output","char","normalize_tag","init_streaming_mode","linkify","_interopRequireWildcard","tokenize","Options","escapeText","escapeAttr","attributesToString","attr","opts","tokens","nl2br","isLink","check","_opts$resolve","formatted","formattedHref","link","scanner","parser","find","arg","filtered","toObject","_typeof","defaults","format","noop","formatHref","validate","ignoreTags","linkAttributes","linkClass","ignoredTags","toUpperCase","toHref","getObject","operator","optionValue","option","TOKENS","State","_state","_text","tlds","NUMBERS","ALPHANUM","WHITESPACE","domainStates","makeState","S_START","S_NUM","S_DOMAIN","S_DOMAIN_HYPHEN","S_WS","partialProtocolFileStates","partialProtocolFtpStates","partialProtocolHttpStates","partialProtocolMailtoStates","S_PROTOCOL_FILE","pop","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","partialLocalhostStates","lowerStr","cursor","tokenLength","latestAccepting","sinceAccepts","TOKEN","substr","_multi","MULTI_TOKENS","S_PROTOCOL","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN_DOT","S_TLD","URL","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","MAILTOEMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","multis","textTokens","secondState","multiLength","TEXT","MULTI","isDomainToken","MultiToken","hasProtocol","hasSlashSlash","$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","proto","forced","separator","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","then","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","IS_PURE","getBuiltIn","NativePromise","redefineAll","setToStringTag","setSpecies","isObject","anInstance","inspectSource","iterate","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","InternalStateModule","V8_VERSION","PROMISE","getInternalState","setInternalState","getInternalPromiseState","getterFor","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","FORCED","FakePromise","INCORRECT_ITERATION","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","fail","domain","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","facade","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","that","unsafe","fetch","stat","capability","x","$promiseResolve","remaining","alreadyCalled","race","flush","last","toggle","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","promiseCapability","a","fixRegExpWellKnownSymbolLogic","isRegExp","requireObjectCoercible","advanceStringIndex","toLength","callRegExpExec","regexpExec","UNSUPPORTED_Y","arrayPush","min","SPLIT","nativeSplit","maybeCallNative","internalSplit","limit","string","lim","lastIndex","lastLength","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","splitter","regexp","res","rx","unicodeMatching","q","A","z","crypt","isBuffer","encoding","Uint8Array","bytesToWords","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","endian","_blocksize","_digestsize","digestbytes","wordsToBytes","asBytes","asString","bytesToHex","base64map","rotl","rotr","Number","randomBytes","floor","random","words","hex","hexToBytes","bytesToBase64","triplet","base64ToBytes","imod4","pow","readFloatLE","isSlowBuffer","_isBuffer","loadState","$includes","includes","addToUnscopables","getFlags","stickyHelpers","MATCH","NativeRegExp","RegExpPrototype","re1","re2","CORRECT_NEW","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","flattenIntoArray","toInteger","arraySpeciesCreate","depthArg","sourceLen","original","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","toAbsoluteIndex","$fromCodePoint","fromCodePoint","elements","RangeError","codeAt","codePointAt","pos"],"mappings":"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","file":"vendors~editor-collab~editor-guest.js?v=0abc538ad55523b47a62","sourcesContent":["import { loadState } from '@nextcloud/initial-state'\n\nexport function getCapabilities(): Object {\n\ttry {\n\t\treturn loadState('core', 'capabilities')\n\t} catch (error) {\n\t\tconsole.debug('Could not find capabilities initial state fall back to _oc_capabilities')\n\t\tif (!('_oc_capabilities' in window)) {\n\t\t\treturn {}\n\t\t}\n\t\treturn window['_oc_capabilities']\n\t}\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.inherits = inherits;\nfunction inherits(parent, child) {\n\tvar props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar extended = Object.create(parent.prototype);\n\tfor (var p in props) {\n\t\textended[p] = props[p];\n\t}\n\textended.constructor = child;\n\tchild.prototype = extended;\n\treturn child;\n}","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\n\nexports.__esModule = true;\nexports.AMPERSAND = exports.CLOSEPAREN = exports.CLOSEANGLEBRACKET = exports.CLOSEBRACKET = exports.CLOSEBRACE = exports.OPENPAREN = exports.OPENANGLEBRACKET = exports.OPENBRACKET = exports.OPENBRACE = exports.WS = exports.TLD = exports.SYM = exports.UNDERSCORE = exports.SLASH = exports.MAILTO = exports.PROTOCOL = exports.QUERY = exports.POUND = exports.PLUS = exports.NUM = exports.NL = exports.LOCALHOST = exports.PUNCTUATION = exports.DOT = exports.COLON = exports.AT = exports.DOMAIN = exports.Base = undefined;\n\nvar _createTokenClass = require('./create-token-class');\n\nvar _class = require('../../utils/class');\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n\n/**\n\tAbstract class used for manufacturing text tokens.\n\tPass in the value this token represents\n\n\t@class TextToken\n\t@abstract\n*/\nvar TextToken = (0, _createTokenClass.createTokenClass)();\nTextToken.prototype = {\n\ttoString: function toString() {\n\t\treturn this.v + '';\n\t}\n};\n\nfunction inheritsToken(value) {\n\tvar props = value ? { v: value } : {};\n\treturn (0, _class.inherits)(TextToken, (0, _createTokenClass.createTokenClass)(), props);\n}\n\n/**\n\tA valid domain token\n\t@class DOMAIN\n\t@extends TextToken\n*/\nvar DOMAIN = inheritsToken();\n\n/**\n\t@class AT\n\t@extends TextToken\n*/\nvar AT = inheritsToken('@');\n\n/**\n\tRepresents a single colon `:` character\n\n\t@class COLON\n\t@extends TextToken\n*/\nvar COLON = inheritsToken(':');\n\n/**\n\t@class DOT\n\t@extends TextToken\n*/\nvar DOT = inheritsToken('.');\n\n/**\n\tA character class that can surround the URL, but which the URL cannot begin\n\tor end with. Does not include certain English punctuation like parentheses.\n\n\t@class PUNCTUATION\n\t@extends TextToken\n*/\nvar PUNCTUATION = inheritsToken();\n\n/**\n\tThe word localhost (by itself)\n\t@class LOCALHOST\n\t@extends TextToken\n*/\nvar LOCALHOST = inheritsToken();\n\n/**\n\tNewline token\n\t@class NL\n\t@extends TextToken\n*/\nvar NL = inheritsToken('\\n');\n\n/**\n\t@class NUM\n\t@extends TextToken\n*/\nvar NUM = inheritsToken();\n\n/**\n\t@class PLUS\n\t@extends TextToken\n*/\nvar PLUS = inheritsToken('+');\n\n/**\n\t@class POUND\n\t@extends TextToken\n*/\nvar POUND = inheritsToken('#');\n\n/**\n\tRepresents a web URL protocol. Supported types include\n\n\t* `http:`\n\t* `https:`\n\t* `ftp:`\n\t* `ftps:`\n\n\t@class PROTOCOL\n\t@extends TextToken\n*/\nvar PROTOCOL = inheritsToken();\n\n/**\n\tRepresents the start of the email URI protocol\n\n\t@class MAILTO\n\t@extends TextToken\n*/\nvar MAILTO = inheritsToken('mailto:');\n\n/**\n\t@class QUERY\n\t@extends TextToken\n*/\nvar QUERY = inheritsToken('?');\n\n/**\n\t@class SLASH\n\t@extends TextToken\n*/\nvar SLASH = inheritsToken('/');\n\n/**\n\t@class UNDERSCORE\n\t@extends TextToken\n*/\nvar UNDERSCORE = inheritsToken('_');\n\n/**\n\tOne ore more non-whitespace symbol.\n\t@class SYM\n\t@extends TextToken\n*/\nvar SYM = inheritsToken();\n\n/**\n\t@class TLD\n\t@extends TextToken\n*/\nvar TLD = inheritsToken();\n\n/**\n\tRepresents a string of consecutive whitespace characters\n\n\t@class WS\n\t@extends TextToken\n*/\nvar WS = inheritsToken();\n\n/**\n\tOpening/closing bracket classes\n*/\n\nvar OPENBRACE = inheritsToken('{');\nvar OPENBRACKET = inheritsToken('[');\nvar OPENANGLEBRACKET = inheritsToken('<');\nvar OPENPAREN = inheritsToken('(');\nvar CLOSEBRACE = inheritsToken('}');\nvar CLOSEBRACKET = inheritsToken(']');\nvar CLOSEANGLEBRACKET = inheritsToken('>');\nvar CLOSEPAREN = inheritsToken(')');\n\nvar AMPERSAND = inheritsToken('&');\n\nexports.Base = TextToken;\nexports.DOMAIN = DOMAIN;\nexports.AT = AT;\nexports.COLON = COLON;\nexports.DOT = DOT;\nexports.PUNCTUATION = PUNCTUATION;\nexports.LOCALHOST = LOCALHOST;\nexports.NL = NL;\nexports.NUM = NUM;\nexports.PLUS = PLUS;\nexports.POUND = POUND;\nexports.QUERY = QUERY;\nexports.PROTOCOL = PROTOCOL;\nexports.MAILTO = MAILTO;\nexports.SLASH = SLASH;\nexports.UNDERSCORE = UNDERSCORE;\nexports.SYM = SYM;\nexports.TLD = TLD;\nexports.WS = WS;\nexports.OPENBRACE = OPENBRACE;\nexports.OPENBRACKET = OPENBRACKET;\nexports.OPENANGLEBRACKET = OPENANGLEBRACKET;\nexports.OPENPAREN = OPENPAREN;\nexports.CLOSEBRACE = CLOSEBRACE;\nexports.CLOSEBRACKET = CLOSEBRACKET;\nexports.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;\nexports.CLOSEPAREN = CLOSEPAREN;\nexports.AMPERSAND = AMPERSAND;","(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(\"Components/Avatar\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/Avatar\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/Avatar\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 80);\n","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== \"string\") {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n\n return url;\n};","module.exports = require(\"vue\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"v-tooltip\");","export default \"data:application/vnd.ms-fontobject;base64,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\"","module.exports = require(\"@nextcloud/router\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".popover{z-index:100000;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.popover__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background)}.popover__arrow{position:absolute;z-index:1;width:0;height:0;margin:10px;border-style:solid;border-color:var(--color-main-background)}.popover[x-placement^='top']{margin-bottom:10px}.popover[x-placement^='top'] .popover__arrow{bottom:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='bottom']{margin-top:10px}.popover[x-placement^='bottom'] .popover__arrow{top:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='right']{margin-left:10px}.popover[x-placement^='right'] .popover__arrow{top:calc(50% - $arrow-width);left:-10px;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='left']{margin-right:10px}.popover[x-placement^='left'] .popover__arrow{top:calc(50% - $arrow-width);right:-10px;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important}.popover[aria-hidden='true']{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.popover[aria-hidden='false']{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./Popover.vue\"],\"names\":[],\"mappings\":\"AAgHA,SACC,cAAe,CACf,wBAAyB,CAEzB,sDAAuD,CAEvD,gBACC,SAAU,CACV,4BAA6B,CAC7B,kCAAmC,CACnC,uCAAwC,CACxC,gBAGA,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,WApBgB,CAqBhB,kBAAmB,CACnB,yCAA0C,CApB5C,6BAwBE,kBA1BgB,CAElB,6CA2BG,YA7Be,CA8Bf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAjCe,CAkCf,yCAA0C,CAC1C,0CAA2C,CAC3C,wCAAyC,CAlC5C,gCAuCE,eAzCgB,CAElB,gDA0CG,SA5Ce,CA6Cf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAhDe,CAiDf,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CAjD5C,+BAsDE,gBAxDgB,CAElB,+CAyDG,4BAA6B,CAC7B,UA5De,CA6Df,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,uCAAwC,CACxC,0CAA2C,CAC3C,wCAAyC,CAhE5C,8BAqEE,iBAvEgB,CAElB,8CAwEG,4BAA6B,CAC7B,WA3Ee,CA4Ef,cAAe,CACf,aAAc,CACd,6BA9Ee,CA+Ef,uCAAwC,CACxC,yCAA0C,CAC1C,0CAA2C,CA/E9C,6BAoFE,iBAAkB,CAClB,2EAA6E,CAC7E,SAAU,CAtFZ,8BA0FE,kBAAmB,CACnB,yCAA0C,CAC1C,SAAU\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$arrow-width: 10px;\\n\\n.popover {\\n\\tz-index: 100000;\\n\\tdisplay: block !important;\\n\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t&__inner {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground: var(--color-main-background);\\n\\t}\\n\\n\\t&__arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: $arrow-width;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n\\n\\t&[x-placement^='top'] {\\n\\t\\tmargin-bottom: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='bottom'] {\\n\\t\\tmargin-top: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='right'] {\\n\\t\\tmargin-left: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='left'] {\\n\\t\\tmargin-right: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!./index.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { VTooltip } from 'v-tooltip'\nimport './index.scss'\n\n// force scope the tooltip and use .vue-tooltip\n// instead of .tooltip to avoid server compatibility\n// issues and the use of !important\nVTooltip.options.defaultTemplate = `<div class=\"vue-tooltip\" role=\"tooltip\" data-v-${SCOPE_VERSION}><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>`\nVTooltip.options.defaultHtml = false\n\nexport default VTooltip\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vue-tooltip[data-v-6b494fc]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-6b494fc][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-6b494fc][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-6b494fc][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-6b494fc][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-6b494fc][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-6b494fc][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-6b494fc] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-6b494fc] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./index.scss\"],\"names\":[],\"mappings\":\"AAeA,6BACC,iBAAkB,CAClB,cAAe,CACf,UAAW,CACX,SAAU,CACV,aAAc,CACd,QAAS,CAET,eAAgB,CAChB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAEhB,eAAgB,CAChB,sDAAuD,CAhBxD,gEAqBG,QAAS,CACT,YAAa,CACb,eAAgB,CAChB,6BA1Be,CA2Bf,8BAA+B,CAC/B,+BAAgC,CAChC,6BAA8B,CA3BjC,mEAkCG,KAAM,CACN,YAAa,CACb,eAAgB,CAChB,6BAvCe,CAwCf,4BAA6B,CAC7B,8BAA+B,CAC/B,6BAA8B,CAxCjC,kEA+CG,UAAW,CACX,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,4BAA6B,CAC7B,+BAAgC,CAChC,6BAA8B,CArDjC,iEA4DG,SAAU,CACV,cAAe,CACf,aAAc,CACd,6BAjEe,CAkEf,4BAA6B,CAC7B,8BAA+B,CAC/B,+BAAgC,CAlEnC,iDAwEE,iBAAkB,CAClB,wCAAyC,CACzC,SAAU,CA1EZ,kDA6EE,kBAAmB,CACnB,uBAAwB,CACxB,SAAU,CA/EZ,4CAoFE,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,4BAA6B,CAC7B,kCAAmC,CACnC,6CAA8C,CAzFhD,4CA8FE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,QAAS,CACT,kBAAmB,CACnB,yCAA0C\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.vue-tooltip[data-v-#{$scope_version}] {\\n\\tposition: absolute;\\n\\tz-index: 100000;\\n\\tright: auto;\\n\\tleft: auto;\\n\\tdisplay: block;\\n\\tmargin: 0;\\n\\t/* default to top */\\n\\tmargin-top: -3px;\\n\\tpadding: 10px 0;\\n\\ttext-align: left;\\n\\ttext-align: start;\\n\\topacity: 0;\\n\\tline-height: 1.6;\\n\\n\\tline-break: auto;\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t// TOP\\n\\t&[x-placement^='top'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// BOTTOM\\n\\t&[x-placement^='bottom'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// RIGHT\\n\\t&[x-placement^='right'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// LEFT\\n\\t&[x-placement^='left'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// HIDDEN / SHOWN\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\topacity: 0;\\n\\t}\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity .15s;\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// CONTENT\\n\\t.tooltip-inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.tooltip-arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = require(\"core-js/modules/es.array.map.js\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.array.concat.js\");","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VPopover',_vm._g(_vm._b({ref:\"popover\",attrs:{\"popover-base-class\":\"popover\",\"popover-wrapper-class\":\"popover__wrapper\",\"popover-arrow-class\":\"popover__arrow\",\"popover-inner-class\":\"popover__inner\"}},'VPopover',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"trigger\"),_vm._v(\" \"),_c('template',{slot:\"popover\"},[_vm._t(\"default\")],2)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<docs>\n\n### General description\n\nThis component is just a wrapper for the v-component plugin by Akryum,\nplease refer to this documentation for customization:\nhttps://github.com/Akryum/v-tooltip\n\nThis components has two slots:\n* 'trigger' which can be any html element and it will trigger the popover\nthis slot is optional since you can toggle the popover also by updating the\nopen prop on this component;\n\n* a default slot that is for the content of the popover.\n\n### Examples\n\nWith a `<button>` as a trigger:\n```vue\n<template>\n\t<Popover>\n\t\t<button slot=\"trigger\"> I am the trigger </button>\n\t\t<template>\n\t\t<h2>this is some content</h2>\n\t\t</template>\n\t</Popover>\n</template>\n```\n</docs>\n\n<template>\n\t<VPopover\n\t\tref=\"popover\"\n\t\tv-bind=\"$attrs\"\n\t\tpopover-base-class=\"popover\"\n\t\tpopover-wrapper-class=\"popover__wrapper\"\n\t\tpopover-arrow-class=\"popover__arrow\"\n\t\tpopover-inner-class=\"popover__inner\"\n\t\tv-on=\"$listeners\">\n\t\t<!-- This will be the popover target (for the events and position) -->\n\t\t<slot name=\"trigger\" />\n\t\t<!-- This will be the content of the popover -->\n\t\t<template slot=\"popover\">\n\t\t\t<slot />\n\t\t</template>\n\t</VPopover>\n</template>\n\n<script>\nimport { VPopover } from 'v-tooltip'\n\nexport default {\n\tname: 'Popover',\n\tcomponents: {\n\t\tVPopover,\n\t},\n\n\tmounted() {\n\t\tthis.$watch(\n\t\t\t() => {\n\t\t\t\t// required because v-tooltip doesn't provide events\n\t\t\t\t// and @show is too early\n\t\t\t\t// see https://github.com/Akryum/v-tooltip/issues/661\n\t\t\t\treturn this.$refs.popover.isOpen\n\t\t\t},\n\t\t\t(val) => {\n\t\t\t\tif (val) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually displayed.\n\t\t\t\t\t *\n\t\t\t\t\t * This is different from the 'show' and 'apply-show' which\n\t\t\t\t\t * run earlier than this where there is no guarantee that the\n\t\t\t\t\t * tooltip is already visible and in the DOM.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-show')\n\t\t\t\t} else {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually hidden.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-hide')\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n$arrow-width: 10px;\n\n.popover {\n\tz-index: 100000;\n\tdisplay: block !important;\n\n\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t&__inner {\n\t\tpadding: 0;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground: var(--color-main-background);\n\t}\n\n\t&__arrow {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: $arrow-width;\n\t\tborder-style: solid;\n\t\tborder-color: var(--color-main-background);\n\t}\n\n\t&[x-placement^='top'] {\n\t\tmargin-bottom: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\tbottom: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='bottom'] {\n\t\tmargin-top: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='right'] {\n\t\tmargin-left: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tleft: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width $arrow-width $arrow-width 0;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='left'] {\n\t\tmargin-right: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tright: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t}\n\t}\n\n\t&[aria-hidden='true'] {\n\t\tvisibility: hidden;\n\t\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\n\t\topacity: 0;\n\t}\n\n\t&[aria-hidden='false'] {\n\t\tvisibility: visible;\n\t\ttransition: opacity var(--animation-quick);\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","module.exports = require(\"@nextcloud/event-bus\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"@nextcloud/auth\");","/**\n * @copyright Copyright (c) 2019 Kristof Hamann, Paul Schwörer\n *\n * @author Kristof Hamann\n * @author Paul Schwörer\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\n\nexport const IsMobileState = new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\twatch: {\n\t\tisMobile(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\tthis.isMobile = document.documentElement.clientWidth < 1024\n\t\t},\n\t},\n})\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { IsMobileState } from '../../utils/IsMobileState'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\tmounted() {\n\t\tIsMobileState.$on('changed', this.onIsMobileChanged)\n\t\tthis.isMobile = IsMobileState.isMobile\n\t},\n\tbeforeDestroy() {\n\t\tIsMobileState.$off('changed', this.onIsMobileChanged)\n\t},\n\tmethods: {\n\t\tonIsMobileChanged(val) {\n\t\t\tthis.isMobile = val\n\t\t},\n\t},\n}\n","module.exports = require(\"@nextcloud/axios\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/web.url.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"v-click-outside\");","module.exports = require(\"striptags\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mention-bubble--primary .mention-bubble__content[data-v-724f9d58]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-724f9d58]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-724f9d58]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-724f9d58]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-724f9d58]{color:inherit;background-size:cover}.mention-bubble__title[data-v-724f9d58]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-724f9d58]::before{content:attr(title)}.mention-bubble__select[data-v-724f9d58]{position:absolute;z-index:-1;left:-1000px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./MentionBubble.vue\"],\"names\":[],\"mappings\":\"AAsGC,mEACC,+BAAgC,CAChC,6CAA8C,CAC9C,0CAGA,eAXsB,CAatB,WAAwC,CACxC,0BAA2B,CAC3B,mBAAoB,CACpB,kBAAmB,CACnB,0CAGA,mBAAoB,CACpB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,WAzBkB,CA0BlB,wBAAyB,CACzB,gBAAiB,CACjB,iBAAkC,CAClC,gBA3BkB,CA4BlB,kBAAiC,CACjC,6CAA8C,CAC9C,uCAGA,iBAAkB,CAClB,UAjCuD,CAkCvD,WAlCuD,CAmCvD,iBAAsC,CACtC,+CAAgD,CAChD,2BAA4B,CAC5B,0BAA2B,CAC3B,oBAA0D,CAE1D,oDACC,aAAc,CACd,qBAAsB,CACtB,wCAID,eAAgB,CAChB,eAlDkB,CAmDlB,kBAAmB,CACnB,sBAAuB,CAJvB,gDAOC,mBAAoB,CACpB,yCAKD,iBAAkB,CAClB,UAAW,CACX,YAAa\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: $bubble-height / 2;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: $bubble-avatar-size / 2;\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\thasStatus: false,\n\t\t\tuserStatus: {\n\t\t\t\tstatus: null,\n\t\t\t\tmessage: null,\n\t\t\t\ticon: null,\n\t\t\t},\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Fetches the user-status from the server\n\t\t * @param {String} userId UserId of the user to fetch the status for\n\t\t *\n\t\t * @returns {Promise<void>}\n\t\t */\n\t\tasync fetchUserStatus(userId) {\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tif (!Object.prototype.hasOwnProperty.call(capabilities, 'user_status') || !capabilities.user_status.enabled) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// User status endpoint is not available for guests.\n\t\t\tif (!getCurrentUser()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.get(generateOcsUrl('apps/user_status/api/v1', 2) + `statuses/${encodeURIComponent(userId)}`)\n\t\t\t\tconst {\n\t\t\t\t\tstatus,\n\t\t\t\t\tmessage,\n\t\t\t\t\ticon,\n\t\t\t\t} = data.ocs.data\n\t\t\t\tthis.userStatus.status = status\n\t\t\t\tthis.userStatus.message = message || ''\n\t\t\t\tthis.userStatus.icon = icon || ''\n\t\t\t\tthis.hasStatus = true\n\t\t\t} catch (e) {\n\t\t\t\tif (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n\t\t\t\t\t// User just has no status set, so don't log it\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t},\n\t},\n}\n","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"linkifyjs/string\");","module.exports = require(\"core-js/modules/es.array.from.js\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nbutton.menuitem[data-v-febed9b6] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-febed9b6] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-febed9b6]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-febed9b6] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-febed9b6] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenuItem.vue\"],\"names\":[],\"mappings\":\";AAmLA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,4CAAA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<li class=\\\"popover__menuitem\\\">\\n\\t\\t<!-- If item.href is set, a link will be directly used -->\\n\\t\\t<a v-if=\\\"item.href\\\"\\n\\t\\t\\t:href=\\\"(item.href) ? item.href : '#' \\\"\\n\\t\\t\\t:target=\\\"(item.target) ? item.target : '' \\\"\\n\\t\\t\\t:download=\\\"item.download\\\"\\n\\t\\t\\tclass=\\\"focusable\\\"\\n\\t\\t\\trel=\\\"noreferrer noopener\\\"\\n\\t\\t\\t@click=\\\"action\\\">\\n\\t\\t\\t<span v-if=\\\"!iconIsUrl\\\" :class=\\\"item.icon\\\" />\\n\\t\\t\\t<img v-else :src=\\\"item.icon\\\">\\n\\t\\t\\t<p v-if=\\\"item.text && item.longtext\\\">\\n\\t\\t\\t\\t<strong class=\\\"menuitem-text\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\\\"menuitem-text-detail\\\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\\\"item.text\\\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\\\"item.longtext\\\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</a>\\n\\n\\t\\t<!-- If item.input is set instead, an put will be used -->\\n\\t\\t<span v-else-if=\\\"item.input\\\" class=\\\"menuitem\\\" :class=\\\"{active: item.active}\\\">\\n\\t\\t\\t<!-- does not show if input is checkbox -->\\n\\t\\t\\t<span v-if=\\\"item.input !== 'checkbox'\\\" :class=\\\"item.icon\\\" />\\n\\n\\t\\t\\t<!-- only shows if input is text -->\\n\\t\\t\\t<form v-if=\\\"item.input === 'text'\\\"\\n\\t\\t\\t\\t:class=\\\"item.input\\\"\\n\\t\\t\\t\\t@submit.prevent=\\\"item.action\\\">\\n\\t\\t\\t\\t<input :type=\\\"item.input\\\"\\n\\t\\t\\t\\t\\t:value=\\\"item.value\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"item.text\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<input type=\\\"submit\\\" value=\\\"\\\" class=\\\"icon-confirm\\\">\\n\\t\\t\\t</form>\\n\\n\\t\\t\\t<!-- checkbox -->\\n\\t\\t\\t<template v-else>\\n\\t\\t\\t\\t<!-- eslint-disable-next-line -->\\n\\t\\t\\t\\t<input :id=\\\"key\\\" v-model=\\\"item.model\\\"\\n\\t\\t\\t\\t\\t:type=\\\"item.input\\\"\\n\\t\\t\\t\\t\\t:class=\\\"item.input\\\"\\n\\t\\t\\t\\t\\t@change=\\\"item.action\\\">\\n\\t\\t\\t\\t<label :for=\\\"key\\\" @click.stop.prevent=\\\"item.action\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</template>\\n\\t\\t</span>\\n\\n\\t\\t<!-- If item.action is set instead, a button will be used -->\\n\\t\\t<button v-else-if=\\\"item.action\\\"\\n\\t\\t\\tclass=\\\"menuitem focusable\\\"\\n\\t\\t\\t:class=\\\"{active: item.active}\\\"\\n\\t\\t\\t:disabled=\\\"item.disabled\\\"\\n\\t\\t\\t@click.stop.prevent=\\\"item.action\\\">\\n\\t\\t\\t<span :class=\\\"item.icon\\\" />\\n\\t\\t\\t<p v-if=\\\"item.text && item.longtext\\\">\\n\\t\\t\\t\\t<strong class=\\\"menuitem-text\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\\\"menuitem-text-detail\\\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\\\"item.text\\\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\\\"item.longtext\\\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</button>\\n\\n\\t\\t<!-- If item.longtext is set AND the item does not have an action -->\\n\\t\\t<span v-else class=\\\"menuitem\\\" :class=\\\"{active: item.active}\\\">\\n\\t\\t\\t<span :class=\\\"item.icon\\\" />\\n\\t\\t\\t<p v-if=\\\"item.text && item.longtext\\\">\\n\\t\\t\\t\\t<strong class=\\\"menuitem-text\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\\\"menuitem-text-detail\\\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\\\"item.text\\\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\\\"item.longtext\\\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</span>\\n\\t</li>\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: 'PopoverMenuItem',\\n\\tprops: {\\n\\t\\titem: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t\\tdefault: () => {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tkey: 'nextcloud-link',\\n\\t\\t\\t\\t\\thref: 'https://nextcloud.com',\\n\\t\\t\\t\\t\\ticon: 'icon-links',\\n\\t\\t\\t\\t\\ttext: 'Nextcloud',\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\t// check the input types\\n\\t\\t\\t// TODO: add more validation of types\\n\\t\\t\\tvalidator: item => {\\n\\t\\t\\t\\t// TODO: support radio\\n\\t\\t\\t\\tif (item.input) {\\n\\t\\t\\t\\t\\treturn ['text', 'checkbox'].indexOf(item.input) !== -1\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t},\\n\\t\\t},\\n\\t},\\n\\tcomputed: {\\n\\t\\t// random key for inputs binding if not provided\\n\\t\\tkey() {\\n\\t\\t\\treturn this.item.key\\n\\t\\t\\t\\t? this.item.key\\n\\t\\t\\t\\t: Math.round(Math.random() * 16 * 1000000).toString(16)\\n\\t\\t},\\n\\t\\ticonIsUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// eslint-disable-next-line no-new\\n\\t\\t\\t\\tnew URL(this.item.icon)\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t} catch (_) {\\n\\t\\t\\t\\treturn false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\t// allow us to use both link and an action on `a`\\n\\t\\t// we still need to make sure item.action exists\\n\\t\\taction(event) {\\n\\t\\t\\tif (this.item.action) {\\n\\t\\t\\t\\tthis.item.action(event)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\n\\tbutton.menuitem {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\tbutton.menuitem * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\tbutton.menuitem:disabled {\\n\\t\\topacity: 0.5 !important;\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\tbutton.menuitem:disabled * {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.menuitem.active {\\n\\t\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\t\\tborder-radius: 0;\\n\\t}\\n</style>\\n\\n<style lang=\\\"scss\\\" scoped>\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"li[data-v-febed9b6]{display:flex;flex:0 0 auto}li.hidden[data-v-febed9b6]{display:none}li>button[data-v-febed9b6],li>a[data-v-febed9b6],li>.menuitem[data-v-febed9b6]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-febed9b6],li>button span[class*=' icon-'][data-v-febed9b6],li>button[class^='icon-'][data-v-febed9b6],li>button[class*=' icon-'][data-v-febed9b6],li>a span[class^='icon-'][data-v-febed9b6],li>a span[class*=' icon-'][data-v-febed9b6],li>a[class^='icon-'][data-v-febed9b6],li>a[class*=' icon-'][data-v-febed9b6],li>.menuitem span[class^='icon-'][data-v-febed9b6],li>.menuitem span[class*=' icon-'][data-v-febed9b6],li>.menuitem[class^='icon-'][data-v-febed9b6],li>.menuitem[class*=' icon-'][data-v-febed9b6]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-febed9b6],li>button span[class*=' icon-'][data-v-febed9b6],li>a span[class^='icon-'][data-v-febed9b6],li>a span[class*=' icon-'][data-v-febed9b6],li>.menuitem span[class^='icon-'][data-v-febed9b6],li>.menuitem span[class*=' icon-'][data-v-febed9b6]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-febed9b6],li>button[class*=' icon-'][data-v-febed9b6],li>a[class^='icon-'][data-v-febed9b6],li>a[class*=' icon-'][data-v-febed9b6],li>.menuitem[class^='icon-'][data-v-febed9b6],li>.menuitem[class*=' icon-'][data-v-febed9b6]{padding:0 14px 0 44px}li>button[data-v-febed9b6]:not(:disabled):hover,li>button[data-v-febed9b6]:not(:disabled):focus,li>button:not(:disabled).active[data-v-febed9b6],li>a[data-v-febed9b6]:not(:disabled):hover,li>a[data-v-febed9b6]:not(:disabled):focus,li>a:not(:disabled).active[data-v-febed9b6],li>.menuitem[data-v-febed9b6]:not(:disabled):hover,li>.menuitem[data-v-febed9b6]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-febed9b6]{opacity:1 !important}li>button.action[data-v-febed9b6],li>a.action[data-v-febed9b6],li>.menuitem.action[data-v-febed9b6]{padding:inherit !important}li>button>span[data-v-febed9b6],li>a>span[data-v-febed9b6],li>.menuitem>span[data-v-febed9b6]{cursor:pointer;white-space:nowrap}li>button>p[data-v-febed9b6],li>a>p[data-v-febed9b6],li>.menuitem>p[data-v-febed9b6]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal;overflow:hidden;text-overflow:ellipsis}li>button>select[data-v-febed9b6],li>a>select[data-v-febed9b6],li>.menuitem>select[data-v-febed9b6]{margin:0;margin-left:6px}li>button[data-v-febed9b6]:not(:empty),li>a[data-v-febed9b6]:not(:empty),li>.menuitem[data-v-febed9b6]:not(:empty){padding-right:14px !important}li>button>img[data-v-febed9b6],li>a>img[data-v-febed9b6],li>.menuitem>img[data-v-febed9b6]{width:16px;padding:14px}li>button>input.radio+label[data-v-febed9b6],li>button>input.checkbox+label[data-v-febed9b6],li>a>input.radio+label[data-v-febed9b6],li>a>input.checkbox+label[data-v-febed9b6],li>.menuitem>input.radio+label[data-v-febed9b6],li>.menuitem>input.checkbox+label[data-v-febed9b6]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-febed9b6]::before,li>a>input.checkbox+label[data-v-febed9b6]::before,li>.menuitem>input.checkbox+label[data-v-febed9b6]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-febed9b6]::before,li>a>input.radio+label[data-v-febed9b6]::before,li>.menuitem>input.radio+label[data-v-febed9b6]::before{margin:-2px 12px 0}li>button>input[data-v-febed9b6]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-febed9b6]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-febed9b6]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-febed9b6],li>a form[data-v-febed9b6],li>.menuitem form[data-v-febed9b6]{display:flex;flex:1 1 auto}li>button form[data-v-febed9b6]:not(:first-child),li>a form[data-v-febed9b6]:not(:first-child),li>.menuitem form[data-v-febed9b6]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-febed9b6],li>button>span[style*='display:none']+form[data-v-febed9b6],li>a>span.hidden+form[data-v-febed9b6],li>a>span[style*='display:none']+form[data-v-febed9b6],li>.menuitem>span.hidden+form[data-v-febed9b6],li>.menuitem>span[style*='display:none']+form[data-v-febed9b6]{margin-left:0}li>button input[data-v-febed9b6],li>a input[data-v-febed9b6],li>.menuitem input[data-v-febed9b6]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-febed9b6]:not(:first-child),li>a input[data-v-febed9b6]:not(:first-child),li>.menuitem input[data-v-febed9b6]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-febed9b6]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-febed9b6]{margin-bottom:12px}li>button[data-v-febed9b6]{padding:0}li>button span[data-v-febed9b6]{opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenuItem.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AA4MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC/LmB,CDgMnB,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,YAAa,CACb,sBAAuB,CACvB,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBAAmB,CACnB,eAAgB,CAChB,UAAW,CACX,4BAA6B,CAC7B,kBAAmB,CACnB,UC3LiB,CDiKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBCnNa,CD+KhB,+RA2CG,wBC9NkB,CDmLrB,iqCAoDK,gBCvOgB,CDmLrB,iQA2DG,qBC9OkB,CDmLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAGnB,eAAgB,CAChB,sBAAuB,CAvF1B,oGA4FG,QAAS,CACT,eAAgB,CA7FnB,mHAkGG,6BAAsC,CAlGzC,2FAwGG,UCvRa,CDwRb,YCpR6C,CD2KhD,mRA+GG,oBAAqB,CACrB,UAAW,CAhHd,sKAmHG,kBAAmB,CAnHtB,6JAsHG,kBAAmB,CAtHtB,4QAyHG,WAAY,CAzHf,8FA8HG,YAAa,CACb,aAAc,CA/HjB,oJAmII,eAAgB,CAnIpB,oTAyIG,aAAc,CAzIjB,iGA6IG,cChUkB,CDiUlB,eAAY,CACZ,YAAa,CACb,aAAc,CAhJjB,uJAmJI,eAAgB,CAnJpB,+gBA8JK,eAA8B,CA9JnC,ygBAqKK,kBAAiC,CArKtC,2BA2KE,SAAU,CA3KZ,gCA6KG,SC7Ua\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"ul[data-v-4dae360a]{display:flex;flex-direction:column}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenu.vue\"],\"names\":[],\"mappings\":\"AA0DA,oBACC,YAAa,CACb,qBAAsB\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nul {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = require(\"core-js/modules/es.array.join.js\");","module.exports = require(\"regenerator-runtime/runtime.js\");","module.exports = require(\"core-js/modules/es.promise.js\");","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"label\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'MentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn this.id.indexOf(' ') === -1\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: $bubble-height / 2;\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: $bubble-avatar-size / 2;\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put label in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=style&index=0&id=724f9d58&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"mention-bubble\",class:{'mention-bubble--primary': _vm.primary},attrs:{\"contenteditable\":\"false\"}},[_c('span',{staticClass:\"mention-bubble__wrapper\"},[_c('span',{staticClass:\"mention-bubble__content\"},[_c('span',{staticClass:\"mention-bubble__icon\",class:[_vm.icon, (\"mention-bubble__icon--\" + (_vm.avatarUrl ? 'with-avatar' : ''))],style:(_vm.avatarUrl ? { backgroundImage: (\"url(\" + _vm.avatarUrl + \")\") } : null)}),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__title\",attrs:{\"role\":\"heading\",\"title\":_vm.label}})]),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__select\",attrs:{\"role\":\"none\"}},[_vm._v(_vm._s(_vm.mentionText))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport escapeHtml from 'escape-html'\nimport linkifyStr from 'linkifyjs/string'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\nimport MentionBubble from '../../components/RichContenteditable/MentionBubble'\n\n// Beginning or whitespace. Non-capturing group\nconst MENTION_START = '(?:^|\\\\s)'\n// Anything that is not text or end-of-line. Non-capturing group\nconst MENTION_END = '(?:[^a-z]|$)'\nexport const USERID_REGEX = new RegExp(`${MENTION_START}(@[a-zA-Z0-9_.@\\\\-']+)(${MENTION_END})`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}(@\"[a-zA-Z0-9 _.@\\\\-']+\")(${MENTION_END})`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @returns {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn linkifyStr(part, {\n\t\t\t\t\t\t\tdefaultProtocol: 'https',\n\t\t\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\t\t\tclassName: 'external',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\trel: 'noopener noreferrer',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the \" and @\n\t\t\t\t\tconst id = part.replace(/[@\"]/gi, '')\n\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn ' ' + this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @returns {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content.replace(/<br>/gmi, '\\n')\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @returns {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return `@${value}`\n\t\t\t\treturn value.indexOf(' ') === -1\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, MentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {Object} propsData the props to pass to the component\n\t\t * @param {Object} component the component to render\n\t\t * @returns {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n","module.exports = require(\"escape-html\");","module.exports = require(\"core-js/modules/es.string.starts-with.js\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Originally taken from https://github.com/nextcloud/server/blob/master/core/js/placeholder.js\n */\n\nfunction Color(r, g, b) {\n\tthis.r = r\n\tthis.g = g\n\tthis.b = b\n}\n\nfunction stepCalc(steps, ends) {\n\tconst step = new Array(3)\n\tstep[0] = (ends[1].r - ends[0].r) / steps\n\tstep[1] = (ends[1].g - ends[0].g) / steps\n\tstep[2] = (ends[1].b - ends[0].b) / steps\n\treturn step\n}\n\nfunction mixPalette(steps, color1, color2) {\n\tconst palette = []\n\tpalette.push(color1)\n\tconst step = stepCalc(steps, [color1, color2])\n\tfor (let i = 1; i < steps; i++) {\n\t\tconst r = parseInt(color1.r + step[0] * i, 10)\n\t\tconst g = parseInt(color1.g + step[1] * i, 10)\n\t\tconst b = parseInt(color1.b + step[2] * i, 10)\n\t\tpalette.push(new Color(r, g, b))\n\t}\n\treturn palette\n}\n\n/**\n * Generate colors from the official nextcloud color\n * You can provide how many colors you want (multiplied by 3)\n * if step = 6\n * 3 colors * 6 will result in 18 generated colors\n *\n * @param {number} [steps=6] Number of steps to go from a color to another\n * @returns {Object[]}\n */\nfunction GenColors(steps) {\n\tif (!steps) {\n\t\tsteps = 6\n\t}\n\n\tconst red = new Color(182, 70, 157)\n\tconst yellow = new Color(221, 203, 85)\n\tconst blue = new Color(0, 130, 201) // Nextcloud blue\n\n\tconst palette1 = mixPalette(steps, red, yellow)\n\tconst palette2 = mixPalette(steps, yellow, blue)\n\tconst palette3 = mixPalette(steps, blue, red)\n\n\treturn palette1.concat(palette2).concat(palette3)\n}\n\nexport default GenColors\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../../fonts/iconfont-vue-6b494fc.eot\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"../../fonts/iconfont-vue-6b494fc.woff\";\nimport ___CSS_LOADER_URL_IMPORT_2___ from \"../../fonts/iconfont-vue-6b494fc.ttf\";\nimport ___CSS_LOADER_URL_IMPORT_3___ from \"../../fonts/iconfont-vue-6b494fc.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:\\\"iconfont-vue-6b494fc\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format(\\\"svg\\\")}.icon[data-v-1bfc7bfe]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.arrow-left[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.arrow-right-double[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.arrow-right[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.breadcrumb[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.checkmark[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.close[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.confirm[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.info[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.menu[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.more[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.pause[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.play[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.triangle-s[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-away[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-dnd[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-invisible[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-online[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.avatardiv[data-v-1bfc7bfe]{position:relative;display:inline-block}.avatardiv--unknown[data-v-1bfc7bfe]{position:relative;background-color:var(--color-text-maxcontrast)}.avatardiv[data-v-1bfc7bfe]:not(.avatardiv--unknown){background-color:#fff !important;box-shadow:0 0 5px rgba(0,0,0,0.05) inset}body.theme--dark .avatardiv[data-v-1bfc7bfe]:not(.avatardiv--unknown){background-color:#000 !important}.avatardiv--with-menu[data-v-1bfc7bfe]{cursor:pointer}.avatardiv--with-menu[data-v-1bfc7bfe] .trigger{position:absolute;top:0;left:0}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe]{display:flex;cursor:pointer;opacity:0;background:none;font-size:18px;align-items:center;justify-content:center}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe]::before{display:block}.avatardiv--with-menu:focus .icon-more[data-v-1bfc7bfe],.avatardiv--with-menu:hover .icon-more[data-v-1bfc7bfe]{opacity:1}.avatardiv--with-menu:focus img[data-v-1bfc7bfe],.avatardiv--with-menu:hover img[data-v-1bfc7bfe]{opacity:0.3}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe],.avatardiv--with-menu img[data-v-1bfc7bfe]{transition:opacity var(--animation-quick)}.avatardiv>.unknown[data-v-1bfc7bfe]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal;color:var(--color-main-background)}.avatardiv img[data-v-1bfc7bfe]{width:100%;height:100%;object-fit:cover}.avatardiv .avatardiv__status[data-v-1bfc7bfe]{position:absolute;top:22px;left:22px;width:10px;height:10px;border:1px solid rgba(255,255,255,0.5);background-clip:content-box}.avatardiv .avatardiv__status--positive[data-v-1bfc7bfe]{border-radius:50%;background-color:var(--color-success)}.avatardiv .avatardiv__status--negative[data-v-1bfc7bfe]{background-color:var(--color-error)}.avatardiv .avatardiv__status--neutral[data-v-1bfc7bfe]{border:none;background-color:transparent !important}.avatardiv .avatardiv__status--neutral svg[data-v-1bfc7bfe]{position:absolute;top:-3px;left:-2px}.avatardiv .avatardiv__status--neutral svg path[data-v-1bfc7bfe]{fill:#aaa}.avatardiv .avatardiv__user-status[data-v-1bfc7bfe]{position:absolute;right:-4px;bottom:-4px;height:18px;width:18px;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-1bfc7bfe]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-1bfc7bfe]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-1bfc7bfe]{color:#49b382}.avatardiv .avatardiv__user-status--online[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--dnd[data-v-1bfc7bfe]{background-color:#ffffff;color:#ed484c}.avatardiv .avatardiv__user-status--dnd[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--away[data-v-1bfc7bfe]{color:#f4a331}.avatardiv .avatardiv__user-status--away[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--icon[data-v-1bfc7bfe]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-1bfc7bfe]{position:relative;display:inline-block}.avatar-class-icon[data-v-1bfc7bfe]{border-radius:50%;background-color:var(--color-background-darker);height:100%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../fonts/scss/iconfont-vue.scss\",\"webpack://./Avatar.vue\"],\"names\":[],\"mappings\":\"AA2FE,WACC,kCAAmC,CACnC,2CAAuC,CACvC,+OAGmD,CAMpD,uBACE,iBAAkB,CAClB,eAAgB,CAFlB,gDAMM,kCAAmC,CACnC,WA5Ge,CAAO,yCA0GL,kCACJ,CAAsB,WA1G3B,CAAA,iDAyGU,kCACL,CAAA,WAzGG,CAAA,0CAwGL,kCACE,CAAA,WAxGJ,CAAA,yCAuGC,kCACG,CAAA,WACN,CAxGC,wCAsGC,kCACI,CAAA,WACb,CAAO,oCAFF,kCACQ,CAAA,WACb,CAAA,sCAFO,kCACM,CAAA,WACb,CAAA,mCAFI,kCACS,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,oCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WAAsB,CACnC,yCAPD,kCAMc,CAAA,WAAA,CAAsB,+CANpC,kCAMc,CAAA,WAAA,CAAA,8CANd,kCAMc,CAAA,WAAA,CAAA,oDANd,kCAMc,CAAA,WAAA,CAAA,iDANd,kCAMc,CAAA,WAAA,CAAA,4BACb,iBC0eE,CACT,oBACA,CAAA,qCAEA,iBAAU,CACT,8CACkB,CAAA,qDAGZ,gCAEN,CAAA,yCAKoB,CAAA,sEAPd,gCAKL,CAAA,uCACA,cAAA,CAAA,iDAMD,iBAAiB,CAChB,KAAA,CAAA,MAAU,CAAA,kDAHX,YAOA,CAAA,cACU,CAAA,SACH,CAAE,eACD,CAAE,cACG,CAAA,kBAEZ,CAAA,sBACA,CAAA,yDAPD,kCDjnBD,CAAA,iBAAsB,CAkFnB,eAAY,CAAA,WACZ,CAAA,0DC8hBF,aAAU,CAAA,gHAPV,SAuBC,CAAA,kGAvBD,WAAW,CAAA,6FAAX,yCAgCqB,CAAA,qCAnDvB,iBAuDG,CAAQ,KACT,CAAA,MAAU,CAAA,aAEV,CAAA,UACA,CAAA,iBACO,CAAI,kBACO,CAClB,kCACO,CAAA,gCAAA,UA/DT,CAAA,WAoEE,CAAA,gBACQ,CAAA,+CAKT,iBAAA,CAAkB,QACjB,CAAQ,SAAU,CAClB,UACA,CAAA,WACA,CAAA,sCAEkB,CAAA,2BAClB,CAAA,yDACC,iBAAA,CAAU,qCAEQ,CAAA,yDAElB,mCACgB,CAAE,wDAElB,WAAA,CAAA,uCAEkB,CAAA,4DAFlB,iBAGA,CAAG,QACF,CAAQ,SAAU,CAClB,iEALD,SAAS,CAGT,oDAWF,iBAAA,CAAuB,UACZ,CAAA,WACV,CAAA,WACA,CAAA,UACA,CAAA,gBACO,CAAA,kCAEI,CAAA,6CACO,CAAA,6CACA,CAAA,iBAAA,CAA4B,gEAT/C,0CAagB,CAAA,8CACI,CAAA,iEAdpB,uCAiBgB,CAAA,2CACI,CAAA,4DAGlB,aAAA,CAAA,mEAAA,kCDntBF,CAAA,iBAAA,CAAsB,eAkFP,CAAA,WACZ,CAAA,yDCooBD,wBAEA,CAAA,aAAkB,CAAA,gEAFlB,kCDvtBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DCyoBD,aAAA,CAAA,iEAAA,kCD5tBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC6oBD,WAAA,CAAA,4BAEA,CAAA,iDA3IO,iBA+IT,CAAA,oBACW,CAAQ,oCACT,iBACT,CAAA,+CAKiB,CAAA,WAAA\",\"sourcesContent\":[\"$__iconfont__data: map-merge(if(global_variable_exists('__iconfont__data'), $__iconfont__data, ()), (\\n\\t\\\"iconfont-vue-6b494fc\\\": (\\n\\t\\t\\\"arrow-left-double\\\": \\\"\\\\ea01\\\",\\n\\t\\t\\\"arrow-left\\\": \\\"\\\\ea02\\\",\\n\\t\\t\\\"arrow-right-double\\\": \\\"\\\\ea03\\\",\\n\\t\\t\\\"arrow-right\\\": \\\"\\\\ea04\\\",\\n\\t\\t\\\"breadcrumb\\\": \\\"\\\\ea05\\\",\\n\\t\\t\\\"checkmark\\\": \\\"\\\\ea06\\\",\\n\\t\\t\\\"close\\\": \\\"\\\\ea07\\\",\\n\\t\\t\\\"confirm\\\": \\\"\\\\ea08\\\",\\n\\t\\t\\\"info\\\": \\\"\\\\ea09\\\",\\n\\t\\t\\\"menu\\\": \\\"\\\\ea0a\\\",\\n\\t\\t\\\"more\\\": \\\"\\\\ea0b\\\",\\n\\t\\t\\\"pause\\\": \\\"\\\\ea0c\\\",\\n\\t\\t\\\"play\\\": \\\"\\\\ea0d\\\",\\n\\t\\t\\\"triangle-s\\\": \\\"\\\\ea0e\\\",\\n\\t\\t\\\"user-status-away\\\": \\\"\\\\ea0f\\\",\\n\\t\\t\\\"user-status-dnd\\\": \\\"\\\\ea10\\\",\\n\\t\\t\\\"user-status-invisible\\\": \\\"\\\\ea11\\\",\\n\\t\\t\\\"user-status-online\\\": \\\"\\\\ea12\\\"\\n\\t)\\n));\\n\\n\\n$create-font-face: true !default; // should the @font-face tag get created?\\n\\n// should there be a custom class for each icon? will be .filename\\n$create-icon-classes: true !default; \\n\\n// what is the common class name that icons share? in this case icons need to have .icon.filename in their classes\\n// this requires you to have 2 classes on each icon html element, but reduced redeclaration of the font family\\n// for each icon\\n$icon-common-class: 'icon' !default;\\n\\n// if you whish to prefix your filenames, here you can do so.\\n// if this string stays empty, your classes will use the filename, for example\\n// an icon called star.svg will result in a class called .star\\n// if you use the prefix to be 'icon-' it would result in .icon-star\\n$icon-prefix: '' !default; \\n\\n// helper function to get the correct font group\\n@function iconfont-group($group: null) {\\n @if (null == $group) {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n @if (false == map-has-key($__iconfont__data, $group)) {\\n @warn 'Undefined Iconfont Family!';\\n @return ();\\n }\\n @return map-get($__iconfont__data, $group);\\n}\\n\\n// helper function to get the correct icon of a group\\n@function iconfont-item($name) {\\n $slash: str-index($name, '/');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($name, 0, $slash - 1);\\n $name: str-slice($name, $slash + 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n $group: iconfont-group($group);\\n @if (false == map-has-key($group, $name)) {\\n @warn 'Undefined Iconfont Glyph!';\\n @return '';\\n }\\n @return map-get($group, $name);\\n}\\n\\n// complete mixing to include the icon\\n// usage:\\n// .my_icon{ @include iconfont('star') }\\n@mixin iconfont($icon) {\\n $slash: str-index($icon, '/');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($icon, 0, $slash - 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n &:before {\\n font-family: $group;\\n font-style: normal;\\n font-weight: 400;\\n content: iconfont-item($icon);\\n }\\n}\\n\\n// creates the font face tag if the variable is set to true (default)\\n@if $create-font-face == true {\\n @font-face {\\n font-family: \\\"iconfont-vue-6b494fc\\\";\\n src: url('../iconfont-vue-6b494fc.eot'); /* IE9 Compat Modes */\\n src: url('../iconfont-vue-6b494fc.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\\n url('../iconfont-vue-6b494fc.woff') format('woff'), /* Pretty Modern Browsers */\\n url('../iconfont-vue-6b494fc.ttf') format('truetype'), /* Safari, Android, iOS */\\n url('../iconfont-vue-6b494fc.svg') format('svg'); /* Legacy iOS */\\n }\\n}\\n\\n// creates icon classes for each individual loaded svg (default)\\n@if $create-icon-classes == true {\\n .#{$icon-common-class} {\\n font-style: normal;\\n font-weight: 400;\\n\\n @each $icon, $content in map-get($__iconfont__data, \\\"iconfont-vue-6b494fc\\\") {\\n &.#{$icon-prefix}#{$icon}:before {\\n font-family: \\\"iconfont-vue-6b494fc\\\";\\n content: iconfont-item(\\\"iconfont-vue-6b494fc/#{$icon}\\\");\\n }\\n }\\n }\\n}\\n\",\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n@import '../../fonts/scss/iconfont-vue';\\n\\n.avatardiv {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t&--unknown {\\n\\t\\tposition: relative;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&:not(&--unknown) {\\n\\t\\t// White background for avatars with transparency\\n\\t\\tbackground-color: #fff !important;\\n\\t\\tbody.theme--dark & {\\n\\t\\t\\t// And black background in dark mode, as it shines through on hover of the menu\\n\\t\\t\\tbackground-color: #000 !important;\\n\\t\\t}\\n\\t\\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\\n\\t}\\n\\n\\t&--with-menu {\\n\\t\\tcursor: pointer;\\n\\t\\t::v-deep .trigger {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t}\\n\\t\\t.icon-more {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\tbackground: none;\\n\\t\\t\\tfont-size: 18px;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t@include iconfont('more');\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\t.icon-more {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t\\timg {\\n\\t\\t\\t\\topacity: 0.3;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.icon-more,\\n\\t\\timg {\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t}\\n\\t}\\n\\n\\t> .unknown {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t\\tfont-weight: normal;\\n\\t\\tcolor: var(--color-main-background);\\n\\t}\\n\\n\\timg {\\n\\t\\t// Cover entire area\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\t// Keep ratio\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t.avatardiv__status {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 22px;\\n\\t\\tleft: 22px;\\n\\t\\twidth: 10px;\\n\\t\\theight: 10px;\\n\\t\\tborder: 1px solid rgba(255, 255, 255, .5);\\n\\t\\tbackground-clip: content-box;\\n\\t\\t&--positive {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t\\t&--negative {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t\\t&--neutral {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: -3px;\\n\\t\\t\\t\\tleft: -2px;\\n\\t\\t\\t\\tpath {\\n\\t\\t\\t\\t\\tfill: #aaa;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.avatardiv__user-status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\theight: 18px;\\n\\t\\twidth: 18px;\\n\\t\\tline-height: 15px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.acli:hover & {\\n\\t\\t\\tborder-color: var(--color-background-hover);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t.acli.active & {\\n\\t\\t\\tborder-color: var(--color-primary-light);\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\n\\t\\t&--online{\\n\\t\\t\\t@include iconfont('user-status-online');\\n\\t\\t\\tcolor: #49b382;\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\t@include iconfont('user-status-dnd');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t\\tcolor: #ed484c;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\t@include iconfont('user-status-away');\\n\\t\\t\\tcolor: #f4a331;\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t.popovermenu-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n}\\n\\n.avatar-class-icon {\\n\\tborder-radius: 50%;\\n\\tbackground-color: var(--color-background-darker);\\n\\theight: 100%;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default {\n\tprops: {\n\t\t/**\n\t\t * A class-name or an array of class-names\n\t\t * to be ignored when clicking outside\n\t\t * an element\n\t\t */\n\t\texcludeClickOutsideClasses: {\n\t\t\ttype: String | Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Middleware Handler for V-Click-Outside\n\t\t *\n\t\t * @param {Event} event The click event\n\t\t * @returns {Boolean}\n\t\t */\n\t\tclickOutsideMiddleware(event) {\n\t\t\tconst excludedClassList = Array.isArray(this.excludeClickOutsideClasses)\n\t\t\t\t? this.excludeClickOutsideClasses\n\t\t\t\t: [this.excludeClickOutsideClasses]\n\n\t\t\t// No need to iterate through all parents\n\t\t\t// if class-list is empty\n\t\t\tif (excludedClassList.length === 0) {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\treturn !this.hasNodeOrAnyParentClass(event.target, excludedClassList)\n\t\t},\n\t\t/**\n\t\t * Checks if given node or any of it's parents have a class of classArray\n\t\t *\n\t\t * @param {Element} node Node to test\n\t\t * @param {Array} classArray List of classes to check for\n\t\t * @returns {Boolean}\n\t\t */\n\t\thasNodeOrAnyParentClass(node, classArray) {\n\t\t\tfor (const className of classArray) {\n\t\t\t\tif (node?.classList?.contains(className)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn !!node.parentElement && this.hasNodeOrAnyParentClass(node.parentElement, classArray)\n\t\t},\n\t},\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisFullscreen: this._isFullscreen(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update fullscreen mode\n\t\t\tthis.isFullscreen = this._isFullscreen()\n\t\t},\n\t\t_isFullscreen() {\n\t\t\t// if the window height is equal to the screen height,\n\t\t\t// we're in full screen mode\n\t\t\treturn window.outerHeight === screen.height\n\t\t},\n\t},\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"popover__menu\"},_vm._l((_vm.menu),function(item,key){return _c('PopoverMenuItem',{key:key,attrs:{\"item\":item}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"popover__menuitem\">\n\t\t<!-- If item.href is set, a link will be directly used -->\n\t\t<a v-if=\"item.href\"\n\t\t\t:href=\"(item.href) ? item.href : '#' \"\n\t\t\t:target=\"(item.target) ? item.target : '' \"\n\t\t\t:download=\"item.download\"\n\t\t\tclass=\"focusable\"\n\t\t\trel=\"noreferrer noopener\"\n\t\t\t@click=\"action\">\n\t\t\t<span v-if=\"!iconIsUrl\" :class=\"item.icon\" />\n\t\t\t<img v-else :src=\"item.icon\">\n\t\t\t<p v-if=\"item.text && item.longtext\">\n\t\t\t\t<strong class=\"menuitem-text\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class=\"menuitem-text-detail\">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if=\"item.text\">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if=\"item.longtext\">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</a>\n\n\t\t<!-- If item.input is set instead, an put will be used -->\n\t\t<span v-else-if=\"item.input\" class=\"menuitem\" :class=\"{active: item.active}\">\n\t\t\t<!-- does not show if input is checkbox -->\n\t\t\t<span v-if=\"item.input !== 'checkbox'\" :class=\"item.icon\" />\n\n\t\t\t<!-- only shows if input is text -->\n\t\t\t<form v-if=\"item.input === 'text'\"\n\t\t\t\t:class=\"item.input\"\n\t\t\t\t@submit.prevent=\"item.action\">\n\t\t\t\t<input :type=\"item.input\"\n\t\t\t\t\t:value=\"item.value\"\n\t\t\t\t\t:placeholder=\"item.text\"\n\t\t\t\t\trequired>\n\t\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t\t</form>\n\n\t\t\t<!-- checkbox -->\n\t\t\t<template v-else>\n\t\t\t\t<!-- eslint-disable-next-line -->\n\t\t\t\t<input :id=\"key\" v-model=\"item.model\"\n\t\t\t\t\t:type=\"item.input\"\n\t\t\t\t\t:class=\"item.input\"\n\t\t\t\t\t@change=\"item.action\">\n\t\t\t\t<label :for=\"key\" @click.stop.prevent=\"item.action\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</label>\n\t\t\t</template>\n\t\t</span>\n\n\t\t<!-- If item.action is set instead, a button will be used -->\n\t\t<button v-else-if=\"item.action\"\n\t\t\tclass=\"menuitem focusable\"\n\t\t\t:class=\"{active: item.active}\"\n\t\t\t:disabled=\"item.disabled\"\n\t\t\t@click.stop.prevent=\"item.action\">\n\t\t\t<span :class=\"item.icon\" />\n\t\t\t<p v-if=\"item.text && item.longtext\">\n\t\t\t\t<strong class=\"menuitem-text\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class=\"menuitem-text-detail\">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if=\"item.text\">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if=\"item.longtext\">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</button>\n\n\t\t<!-- If item.longtext is set AND the item does not have an action -->\n\t\t<span v-else class=\"menuitem\" :class=\"{active: item.active}\">\n\t\t\t<span :class=\"item.icon\" />\n\t\t\t<p v-if=\"item.text && item.longtext\">\n\t\t\t\t<strong class=\"menuitem-text\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class=\"menuitem-text-detail\">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if=\"item.text\">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if=\"item.longtext\">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</span>\n\t</li>\n</template>\n\n<script>\nexport default {\n\tname: 'PopoverMenuItem',\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'nextcloud-link',\n\t\t\t\t\thref: 'https://nextcloud.com',\n\t\t\t\t\ticon: 'icon-links',\n\t\t\t\t\ttext: 'Nextcloud',\n\t\t\t\t}\n\t\t\t},\n\t\t\t// check the input types\n\t\t\t// TODO: add more validation of types\n\t\t\tvalidator: item => {\n\t\t\t\t// TODO: support radio\n\t\t\t\tif (item.input) {\n\t\t\t\t\treturn ['text', 'checkbox'].indexOf(item.input) !== -1\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t},\n\tcomputed: {\n\t\t// random key for inputs binding if not provided\n\t\tkey() {\n\t\t\treturn this.item.key\n\t\t\t\t? this.item.key\n\t\t\t\t: Math.round(Math.random() * 16 * 1000000).toString(16)\n\t\t},\n\t\ticonIsUrl() {\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew URL(this.item.icon)\n\t\t\t\treturn true\n\t\t\t} catch (_) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\t// allow us to use both link and an action on `a`\n\t\t// we still need to make sure item.action exists\n\t\taction(event) {\n\t\t\tif (this.item.action) {\n\t\t\t\tthis.item.action(event)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\tbutton.menuitem {\n\t\ttext-align: left;\n\t}\n\n\tbutton.menuitem * {\n\t\tcursor: pointer;\n\t}\n\n\tbutton.menuitem:disabled {\n\t\topacity: 0.5 !important;\n\t\tcursor: default;\n\t}\n\n\tbutton.menuitem:disabled * {\n\t\tcursor: default;\n\t}\n\n\t.menuitem.active {\n\t\tbox-shadow: inset 2px 0 var(--color-primary);\n\t\tborder-radius: 0;\n\t}\n</style>\n\n<style lang=\"scss\" scoped>\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'],\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^='icon-']):not([class*='icon-']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^='icon-']):not([class*='icon-']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\n\t\t}\n\n\t\t> span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $icon-size;\n\t\t\tpadding: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*='display:none'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*='display:none']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=0&id=febed9b6&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=1&id=febed9b6&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\tThis component is deprecated. Please use the [Actions](#/Components?id=actions-1) component instead.\n</docs>\n\n<template>\n\t<ul class=\"popover__menu\">\n\t\t<PopoverMenuItem v-for=\"(item, key) in menu\" :key=\"key\" :item=\"item\" />\n\t</ul>\n</template>\n\n<script>\nimport PopoverMenuItem from './PopoverMenuItem'\n\nexport default {\n\tname: 'PopoverMenu',\n\tcomponents: {\n\t\tPopoverMenuItem,\n\t},\n\tprops: {\n\t\tmenu: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => {\n\t\t\t\treturn [{\n\t\t\t\t\thref: 'https://nextcloud.com',\n\t\t\t\t\ticon: 'icon-links',\n\t\t\t\t\ttext: 'Nextcloud',\n\t\t\t\t}]\n\t\t\t},\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nul {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n</style>\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"popover__menuitem\"},[(_vm.item.href)?_c('a',{staticClass:\"focusable\",attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#',\"target\":(_vm.item.target) ? _vm.item.target : '',\"download\":_vm.item.download,\"rel\":\"noreferrer noopener\"},on:{\"click\":_vm.action}},[(!_vm.iconIsUrl)?_c('span',{class:_vm.item.icon}):_c('img',{attrs:{\"src\":_vm.item.icon}}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):(_vm.item.input)?_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[(_vm.item.input !== 'checkbox')?_c('span',{class:_vm.item.icon}):_vm._e(),_vm._v(\" \"),(_vm.item.input === 'text')?_c('form',{class:_vm.item.input,on:{\"submit\":function($event){$event.preventDefault();return _vm.item.action($event)}}},[_c('input',{attrs:{\"type\":_vm.item.input,\"placeholder\":_vm.item.text,\"required\":\"\"},domProps:{\"value\":_vm.item.value}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]):[((_vm.item.input)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.item.model)?_vm._i(_vm.item.model,null)>-1:(_vm.item.model)},on:{\"change\":[function($event){var $$a=_vm.item.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.item, \"model\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.item, \"model\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.item, \"model\", $$c)}},_vm.item.action]}}):((_vm.item.input)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.item.model,null)},on:{\"change\":[function($event){return _vm.$set(_vm.item, \"model\", null)},_vm.item.action]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":_vm.item.input},domProps:{\"value\":(_vm.item.model)},on:{\"change\":_vm.item.action,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"model\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.key},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")])]],2):(_vm.item.action)?_c('button',{staticClass:\"menuitem focusable\",class:{active: _vm.item.active},attrs:{\"disabled\":_vm.item.disabled},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=style&index=0&id=4dae360a&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport PopoverMenu from './PopoverMenu'\n\nexport default PopoverMenu\n","module.exports = require(\"core-js/modules/es.string.split.js\");","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"},{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeMenu),expression:\"closeMenu\"}],staticClass:\"avatardiv popovermenu-wrapper\",class:{\n\t\t'avatardiv--unknown': _vm.userDoesNotExist,\n\t\t'avatardiv--with-menu': _vm.hasMenu\n\t},style:(_vm.avatarStyle)},!_vm.disableMenu ? { click: _vm.toggleMenu } : {}),[(_vm.iconClass)?_c('div',{staticClass:\"avatar-class-icon\",class:_vm.iconClass}):(_vm.isAvatarLoaded && !_vm.userDoesNotExist)?_c('img',{attrs:{\"src\":_vm.avatarUrlLoaded,\"srcset\":_vm.avatarSrcSetLoaded,\"alt\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasMenu)?_c('Popover',{attrs:{\"placement\":\"auto\",\"container\":_vm.menuContainer,\"open\":_vm.contactsMenuOpenState}},[_c('PopoverMenu',{attrs:{\"menu\":_vm.menu}}),_vm._v(\" \"),_c('template',{slot:\"trigger\"},[_c('div',{class:_vm.contactsMenuLoading ? 'icon-loading' : 'icon-more',style:({'width': _vm.size + 'px', 'height': _vm.size + 'px'})})])],2):_vm._e(),_vm._v(\" \"),(_vm.showUserStatusIconOnAvatar)?_c('div',{staticClass:\"avatardiv__user-status avatardiv__user-status--icon\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.userStatus.icon)+\"\\n\\t\")]):(_vm.canDisplayUserStatus)?_c('div',{staticClass:\"avatardiv__user-status\",class:'avatardiv__user-status--' + _vm.userStatus.status}):(_vm.status)?_c('div',{staticClass:\"avatardiv__status\",class:'avatardiv__status--' + _vm.status,style:({ backgroundColor: (\"#\" + _vm.statusColor) })},[(_vm.status === 'neutral')?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"12\",\"height\":\"11\",\"viewBox\":\"0 0 3.175 2.91\"}},[_c('path',{style:({ fill: (\"#\" + _vm.statusColor) }),attrs:{\"d\":\"M3.21 3.043H.494l.679-1.177.68-1.176.678 1.176z\",\"stroke\":\"#fff\",\"stroke-width\":\".265\",\"stroke-linecap\":\"square\"}})]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.userDoesNotExist && !_vm.iconClass)?_c('div',{staticClass:\"unknown\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.initials)+\"\\n\\t\")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n### Basic user avatar\n\n```vue\n\t<avatar user=\"janedoe\" display-name=\"Jane Doe\" />\n```\n\n### Avatar with image\n\n```vue\n\t<avatar url=\"https://nextcloud.com/wp-content/themes/next/assets/img/common/nextcloud-square-logo.png\" />\n```\n\n</docs>\n<template>\n\t<div v-tooltip=\"tooltip\"\n\t\tv-click-outside=\"closeMenu\"\n\t\t:class=\"{\n\t\t\t'avatardiv--unknown': userDoesNotExist,\n\t\t\t'avatardiv--with-menu': hasMenu\n\t\t}\"\n\t\t:style=\"avatarStyle\"\n\t\tclass=\"avatardiv popovermenu-wrapper\"\n\t\tv-on=\"!disableMenu ? { click: toggleMenu } : {}\">\n\t\t<!-- Avatar icon or image -->\n\t\t<div v-if=\"iconClass\" :class=\"iconClass\" class=\"avatar-class-icon\" />\n\t\t<img v-else-if=\"isAvatarLoaded && !userDoesNotExist\"\n\t\t\t:src=\"avatarUrlLoaded\"\n\t\t\t:srcset=\"avatarSrcSetLoaded\"\n\t\t\talt=\"\">\n\t\t<Popover\n\t\t\tv-if=\"hasMenu\"\n\t\t\tplacement=\"auto\"\n\t\t\t:container=\"menuContainer\"\n\t\t\t:open=\"contactsMenuOpenState\">\n\t\t\t<PopoverMenu :menu=\"menu\" />\n\t\t\t<template slot=\"trigger\">\n\t\t\t\t<div :class=\"contactsMenuLoading ? 'icon-loading' : 'icon-more'\" :style=\"{'width': size + 'px', 'height': size + 'px'}\" />\n\t\t\t</template>\n\t\t</Popover>\n\n\t\t<!-- Avatar status -->\n\t\t<div v-if=\"showUserStatusIconOnAvatar\" class=\"avatardiv__user-status avatardiv__user-status--icon\">\n\t\t\t{{ userStatus.icon }}\n\t\t</div>\n\t\t<div v-else-if=\"canDisplayUserStatus\"\n\t\t\tclass=\"avatardiv__user-status\"\n\t\t\t:class=\"'avatardiv__user-status--' + userStatus.status\" />\n\t\t<div v-else-if=\"status\"\n\t\t\tclass=\"avatardiv__status\"\n\t\t\t:class=\"'avatardiv__status--' + status\"\n\t\t\t:style=\"{ backgroundColor: `#${statusColor}` }\">\n\t\t\t<!-- triangle -->\n\t\t\t<svg v-if=\"status === 'neutral'\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"12\"\n\t\t\t\theight=\"11\"\n\t\t\t\tviewBox=\"0 0 3.175 2.91\">\n\t\t\t\t<path d=\"M3.21 3.043H.494l.679-1.177.68-1.176.678 1.176z\"\n\t\t\t\t\t:style=\"{ fill: `#${statusColor}` }\"\n\t\t\t\t\tstroke=\"#fff\"\n\t\t\t\t\tstroke-width=\".265\"\n\t\t\t\t\tstroke-linecap=\"square\" />\n\t\t\t</svg>\n\t\t</div>\n\n\t\t<!-- Show the letter if no avatar nor icon class -->\n\t\t<div v-if=\"userDoesNotExist && !iconClass\" class=\"unknown\">\n\t\t\t{{ initials }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { directive as ClickOutside } from 'v-click-outside'\nimport PopoverMenu from '../PopoverMenu'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport Tooltip from '../../directives/Tooltip'\nimport usernameToColor from '../../functions/usernameToColor'\nimport { userStatus } from '../../mixins'\nimport Popover from '../Popover/Popover'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\n\nfunction getUserHasAvatar(userId) {\n\tconst flag = browserStorage.getItem('user-has-avatar.' + userId)\n\tif (typeof flag === 'string') {\n\t\treturn Boolean(flag)\n\t}\n\treturn null\n}\n\nfunction setUserHasAvatar(userId, flag) {\n\tif (userId) {\n\t\tbrowserStorage.setItem('user-has-avatar.' + userId, flag)\n\t}\n}\n\nexport default {\n\tname: 'Avatar',\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tPopover,\n\t\tPopoverMenu,\n\t},\n\tmixins: [userStatus],\n\tprops: {\n\t\t/**\n\t\t * Set a custom url to the avatar image\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a css icon-class for an icon to be used instead of the avatar.\n\t\t */\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set the user id to fetch the avatar\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Whether or not to the status-icon should be used instead of online/away\n\t\t */\n\t\tshowUserStatusCompact: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * When the user status was preloaded via another source it can be handed in with this property to save the request.\n\t\t * If this property is not set the status will be fetched automatically.\n\t\t * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n\t\t */\n\t\tpreloadedUserStatus: {\n\t\t\ttype: Object,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the user a guest user (then we have to user a different endpoint)\n\t\t */\n\t\tisGuest: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Set a display name that will be rendered as a tooltip\n\t\t * either the url, user or displayName property must be defined\n\t\t * specify just the displayname to generate a placeholder avatar without\n\t\t * trying to fetch the avatar based on the user id\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a size in px for the rendered avatar\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 32,\n\t\t},\n\t\t/**\n\t\t * Placeholder avatars will be automatically generated when this is set to true\n\t\t */\n\t\tallowPlaceholder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Disable the tooltip\n\t\t */\n\t\tdisableTooltip: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Disable the menu\n\t\t */\n\t\tdisableMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declares a custom tooltip when not null\n\t\t * Fallback will be the displayName\n\t\t *\n\t\t * requires disableTooltip not to be set to true\n\t\t */\n\t\ttooltipMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Declares username is not a user's name, when true.\n\t\t * Prevents loading user's avatar from server and forces generating colored initials,\n\t\t * i.e. if the user is a group\n\t\t */\n\t\tisNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * DEPRECATED!\n\t\t * This prop will be removed with nc/vue 3.0\n\t\t *\n\t\t * Declares a status indicator on the avatar\n\t\t * Available options are `positive`, `negative`, `neutral`\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => {\n\t\t\t\tswitch (value) {\n\t\t\t\tcase 'positive':\n\t\t\t\tcase 'negative':\n\t\t\t\tcase 'neutral':\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Declares a different color to be used with the status indicator\n\t\t */\n\t\tstatusColor: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: null,\n\t\t\tvalidator: value => {\n\t\t\t\treturn /^([a-f0-9]{3}){1,2}$/i.test(value)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Choose the avatar menu alignment.\n\t\t * Possible values are `left`, `center`, `right`.\n\t\t */\n\t\tmenuPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'center',\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover menu container\n\t\t */\n\t\tmenuContainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavatarUrlLoaded: null,\n\t\t\tavatarSrcSetLoaded: null,\n\t\t\tuserDoesNotExist: false,\n\t\t\tisAvatarLoaded: false,\n\t\t\tisMenuLoaded: false,\n\t\t\tcontactsMenuLoading: false,\n\t\t\tcontactsMenuActions: [],\n\t\t\tcontactsMenuOpenState: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcanDisplayUserStatus() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& ['online', 'away', 'dnd'].includes(this.userStatus.status)\n\t\t},\n\t\tshowUserStatusIconOnAvatar() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.showUserStatusCompact\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& this.userStatus.status !== 'dnd'\n\t\t\t\t&& this.userStatus.icon\n\t\t},\n\t\tgetUserIdentifier() {\n\t\t\tif (this.isDisplayNameDefined) {\n\t\t\t\treturn this.displayName\n\t\t\t}\n\t\t\tif (this.isUserDefined) {\n\t\t\t\treturn this.user\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tisUserDefined() {\n\t\t\treturn typeof this.user !== 'undefined'\n\t\t},\n\t\tisDisplayNameDefined() {\n\t\t\treturn typeof this.displayName !== 'undefined'\n\t\t},\n\t\tisUrlDefined() {\n\t\t\treturn typeof this.url !== 'undefined'\n\t\t},\n\t\thasMenu() {\n\t\t\tif (this.disableMenu) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.isMenuLoaded) {\n\t\t\t\treturn this.menu.length > 0\n\t\t\t}\n\t\t\treturn !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url)\n\t\t},\n\t\tshouldShowPlaceholder() {\n\t\t\treturn this.allowPlaceholder && (\n\t\t\t\tthis.userDoesNotExist)\n\t\t},\n\t\tavatarStyle() {\n\t\t\tconst style = {\n\t\t\t\twidth: this.size + 'px',\n\t\t\t\theight: this.size + 'px',\n\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\tfontSize: Math.round(this.size * 0.55) + 'px',\n\t\t\t}\n\n\t\t\tif (!this.iconClass && !this.avatarSrcSetLoaded) {\n\t\t\t\tconst rgb = usernameToColor(this.getUserIdentifier)\n\t\t\t\tstyle.backgroundColor = 'rgb(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ')'\n\t\t\t}\n\t\t\treturn style\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.disableTooltip) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.tooltipMessage) {\n\t\t\t\treturn this.tooltipMessage\n\t\t\t}\n\n\t\t\treturn this.displayName\n\t\t},\n\t\tinitials() {\n\t\t\tlet initials\n\t\t\tif (this.shouldShowPlaceholder) {\n\t\t\t\tconst user = this.getUserIdentifier\n\t\t\t\tconst idx = user.indexOf(' ')\n\t\t\t\tif (user === '') {\n\t\t\t\t\tinitials = '?'\n\t\t\t\t} else {\n\t\t\t\t\tinitials = String.fromCodePoint(user.codePointAt(0))\n\t\t\t\t\tif (idx !== -1) {\n\t\t\t\t\t\tinitials = initials.concat(String.fromCodePoint(user.codePointAt(idx + 1)))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn initials.toUpperCase()\n\t\t},\n\t\tmenu() {\n\t\t\tconst actions = this.contactsMenuActions.map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\thref: item.hyperlink,\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\tlongtext: item.title,\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tfunction escape(html) {\n\t\t\t\tconst text = document.createTextNode(html)\n\t\t\t\tconst p = document.createElement('p')\n\t\t\t\tp.appendChild(text)\n\t\t\t\treturn p.innerHTML\n\t\t\t}\n\n\t\t\tif (this.showUserStatus && (this.userStatus.icon || this.userStatus.message)) {\n\t\t\t\treturn [{\n\t\t\t\t\thref: '#',\n\t\t\t\t\ticon: `data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>${escape(this.userStatus.icon)}</text></svg>`,\n\t\t\t\t\ttext: `${this.userStatus.message}`,\n\t\t\t\t}].concat(actions)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t},\n\n\twatch: {\n\t\turl() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t\tuser() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.isMenuLoaded = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.loadAvatarUrl()\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tif (!this.preloadedUserStatus) {\n\t\t\t\tthis.fetchUserStatus(this.user)\n\t\t\t} else {\n\t\t\t\tthis.userStatus.status = this.preloadedUserStatus.status || ''\n\t\t\t\tthis.userStatus.message = this.preloadedUserStatus.message || ''\n\t\t\t\tthis.userStatus.icon = this.preloadedUserStatus.icon || ''\n\t\t\t\tthis.hasStatus = this.preloadedUserStatus.status !== null\n\t\t\t}\n\t\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tbeforeDestroyed() {\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tmethods: {\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (this.user === state.userId) {\n\t\t\t\tthis.userStatus = {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync toggleMenu() {\n\t\t\tif (!this.hasMenu) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!this.contactsMenuOpenState) {\n\t\t\t\tawait this.fetchContactsMenu()\n\t\t\t}\n\t\t\tthis.contactsMenuOpenState = !this.contactsMenuOpenState\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.contactsMenuOpenState = false\n\t\t},\n\t\tasync fetchContactsMenu() {\n\t\t\tthis.contactsMenuLoading = true\n\t\t\ttry {\n\t\t\t\tconst user = encodeURIComponent(this.user)\n\t\t\t\tconst { data } = await axios.post(generateUrl('contactsmenu/findOne'), `shareType=0&shareWith=${user}`)\n\t\t\t\tthis.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions\n\t\t\t} catch (e) {\n\t\t\t\tthis.contactsMenuOpenState = false\n\t\t\t}\n\t\t\tthis.contactsMenuLoading = false\n\t\t\tthis.isMenuLoaded = true\n\t\t},\n\n\t\t/**\n\t\t * Handle avatar loading if user or url defined\n\t\t */\n\t\tloadAvatarUrl() {\n\t\t\tthis.isAvatarLoaded = false\n\n\t\t\t/** Only run avatar image loading if either user or url property is defined */\n\t\t\tif (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser)) {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Directly use the url if defined\n\t\t\tif (this.isUrlDefined) {\n\t\t\t\tthis.updateImageIfValid(this.url)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, this.size)\n\t\t\tconst srcset = [\n\t\t\t\tavatarUrl + ' 1x',\n\t\t\t\tthis.avatarUrlGenerator(this.user, this.size * 2) + ' 2x',\n\t\t\t\tthis.avatarUrlGenerator(this.user, this.size * 4) + ' 4x',\n\t\t\t].join(', ')\n\n\t\t\tthis.updateImageIfValid(avatarUrl, srcset)\n\t\t},\n\n\t\t/**\n\t\t * Generate an avatar url from the server's avatar endpoint\n\t\t *\n\t\t * @param {string} user the user id\n\t\t * @param {number} size the desired size\n\t\t * @returns {string}\n\t\t */\n\t\tavatarUrlGenerator(user, size) {\n\t\t\tlet url = '/avatar/{user}/{size}'\n\t\t\tif (this.isGuest) {\n\t\t\t\turl = '/avatar/guest/{user}/{size}'\n\t\t\t}\n\n\t\t\tlet avatarUrl = generateUrl(\n\t\t\t\turl,\n\t\t\t\t{\n\t\t\t\t\tuser,\n\t\t\t\t\tsize,\n\t\t\t\t})\n\n\t\t\t// eslint-disable-next-line camelcase\n\t\t\tif (user === getCurrentUser()?.uid && typeof oc_userconfig !== 'undefined') {\n\t\t\t\tavatarUrl += '?v=' + oc_userconfig.avatar.version\n\t\t\t}\n\n\t\t\treturn avatarUrl\n\t\t},\n\n\t\t/**\n\t\t * Check if the provided url is valid and update Avatar if so\n\t\t *\n\t\t * @param {string} url the avatar url\n\t\t * @param {array} srcset the avatar srcset\n\t\t */\n\t\tupdateImageIfValid(url, srcset = null) {\n\t\t\t// skip loading\n\t\t\tconst userHasAvatar = getUserHasAvatar(this.user)\n\t\t\tif (this.isUserDefined && typeof userHasAvatar === 'boolean') {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tif (userHasAvatar === false) {\n\t\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst img = new Image()\n\t\t\timg.onload = () => {\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\t// re-get to avoid concurrent access\n\t\t\t\tsetUserHasAvatar(this.user, true)\n\t\t\t}\n\t\t\timg.onerror = () => {\n\t\t\t\tconsole.debug('Invalid avatar url', url)\n\t\t\t\t// Avatar is invalid, reset\n\t\t\t\tthis.avatarUrlLoaded = null\n\t\t\t\tthis.avatarSrcSetLoaded = null\n\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\tthis.isAvatarLoaded = false\n\t\t\t\tsetUserHasAvatar(this.user, false)\n\t\t\t}\n\n\t\t\tif (srcset) {\n\t\t\t\timg.srcset = srcset\n\t\t\t}\n\t\t\timg.src = url\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@import '../../fonts/scss/iconfont-vue';\n\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White background for avatars with transparency\n\t\tbackground-color: #fff !important;\n\t\tbody.theme--dark & {\n\t\t\t// And black background in dark mode, as it shines through on hover of the menu\n\t\t\tbackground-color: #000 !important;\n\t\t}\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t::v-deep .trigger {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t.icon-more {\n\t\t\tdisplay: flex;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t\tbackground: none;\n\t\t\tfont-size: 18px;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\n\t\t\t@include iconfont('more');\n\t\t\t&::before {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t\t&:focus,\n\t\t&:hover {\n\t\t\t.icon-more {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t.icon-more,\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t}\n\n\t> .unknown {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tfont-weight: normal;\n\t\tcolor: var(--color-main-background);\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.avatardiv__status {\n\t\tposition: absolute;\n\t\ttop: 22px;\n\t\tleft: 22px;\n\t\twidth: 10px;\n\t\theight: 10px;\n\t\tborder: 1px solid rgba(255, 255, 255, .5);\n\t\tbackground-clip: content-box;\n\t\t&--positive {\n\t\t\tborder-radius: 50%;\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t\t&--negative {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t\t&--neutral {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent !important;\n\t\t\tsvg {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: -3px;\n\t\t\t\tleft: -2px;\n\t\t\t\tpath {\n\t\t\t\t\tfill: #aaa;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.avatardiv__user-status {\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\theight: 18px;\n\t\twidth: 18px;\n\t\tline-height: 15px;\n\t\tfont-size: var(--default-font-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-light);\n\t\t\tbackground-color: var(--color-primary-light);\n\t\t}\n\n\t\t&--online{\n\t\t\t@include iconfont('user-status-online');\n\t\t\tcolor: #49b382;\n\t\t}\n\t\t&--dnd{\n\t\t\t@include iconfont('user-status-dnd');\n\t\t\tbackground-color: #ffffff;\n\t\t\tcolor: #ed484c;\n\t\t}\n\t\t&--away{\n\t\t\t@include iconfont('user-status-away');\n\t\t\tcolor: #f4a331;\n\t\t}\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n}\n\n.avatar-class-icon {\n\tborder-radius: 50%;\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&id=1bfc7bfe&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Avatar from './Avatar'\n\nexport default Avatar\n","module.exports = require(\"md5\");","module.exports = require(\"@nextcloud/capabilities\");","/**\n * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport usernameToColor from './usernameToColor'\n\nexport default usernameToColor\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport md5 from 'md5'\nimport GenColors from '../../utils/GenColors'\n\n/**\n * Originally taken from https://github.com/nextcloud/server/blob/master/core/js/placeholder.js\n * @param {string} username Display name or user id to generate from\n * @returns {Object} the rgb colors as {r:255, g:255, b:255}\n */\nconst usernameToColor = function(username) {\n\t// Normalize hash\n\tlet hash = username.toLowerCase()\n\n\t// Already a md5 hash?\n\tif (hash.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n\t\thash = md5(hash)\n\t}\n\n\thash = hash.replace(/[^0-9a-f]/g, '')\n\n\tconst steps = 6\n\tconst finalPalette = GenColors(steps)\n\n\t// Convert a string to an integer evenly\n\tfunction hashToInt(hash, maximum) {\n\t\tlet finalInt = 0\n\t\tconst result = []\n\n\t\t// Splitting evenly the string\n\t\tfor (let i = 0; i < hash.length; i++) {\n\t\t\t// chars in md5 goes up to f, hex:16\n\t\t\tresult.push(parseInt(hash.charAt(i), 16) % 16)\n\t\t}\n\n\t\t// Adds up all results\n\t\tfor (const j in result) {\n\t\t\tfinalInt += result[j]\n\t\t}\n\n\t\t// chars in md5 goes up to f, hex:16\n\t\t// make sure we're always using int in our operation\n\t\treturn parseInt(parseInt(finalInt, 10) % maximum, 10)\n\t}\n\treturn finalPalette[hashToInt(hash, steps * 3)]\n}\n\nexport default usernameToColor\n","module.exports = require(\"@nextcloud/browser-storage\");","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"core-js/modules/es.array.flat.js\");","module.exports = require(\"core-js/modules/es.string.match.js\");","module.exports = require(\"core-js/modules/es.string.from-code-point.js\");","module.exports = require(\"core-js/modules/es.string.code-point-at.js\");","'use strict';\n\nexports.__esModule = true;\nexports.stateify = exports.TokenState = exports.CharacterState = undefined;\n\nvar _class = require('../utils/class');\n\nfunction createStateClass() {\n\treturn function (tClass) {\n\t\tthis.j = [];\n\t\tthis.T = tClass || null;\n\t};\n}\n\n/**\n\tA simple state machine that can emit token classes\n\n\tThe `j` property in this class refers to state jumps. It's a\n\tmultidimensional array where for each element:\n\n\t* index [0] is a symbol or class of symbols to transition to.\n\t* index [1] is a State instance which matches\n\n\tThe type of symbol will depend on the target implementation for this class.\n\tIn Linkify, we have a two-stage scanner. Each stage uses this state machine\n\tbut with a slighly different (polymorphic) implementation.\n\n\tThe `T` property refers to the token class.\n\n\tTODO: Can the `on` and `next` methods be combined?\n\n\t@class BaseState\n*/\nvar BaseState = createStateClass();\nBaseState.prototype = {\n\tdefaultTransition: false,\n\n\t/**\n \t@method constructor\n \t@param {Class} tClass Pass in the kind of token to emit if there are\n \t\tno jumps after this state and the state is accepting.\n */\n\n\t/**\n \tOn the given symbol(s), this machine should go to the given state\n \t\t@method on\n \t@param {Array|Mixed} symbol\n \t@param {BaseState} state Note that the type of this state should be the\n \t\tsame as the current instance (i.e., don't pass in a different\n \t\tsubclass)\n */\n\ton: function on(symbol, state) {\n\t\tif (symbol instanceof Array) {\n\t\t\tfor (var i = 0; i < symbol.length; i++) {\n\t\t\t\tthis.j.push([symbol[i], state]);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tthis.j.push([symbol, state]);\n\t\treturn this;\n\t},\n\n\n\t/**\n \tGiven the next item, returns next state for that item\n \t@method next\n \t@param {Mixed} item Should be an instance of the symbols handled by\n \t\tthis particular machine.\n \t@return {State} state Returns false if no jumps are available\n */\n\tnext: function next(item) {\n\t\tfor (var i = 0; i < this.j.length; i++) {\n\t\t\tvar jump = this.j[i];\n\t\t\tvar symbol = jump[0]; // Next item to check for\n\t\t\tvar state = jump[1]; // State to jump to if items match\n\n\t\t\t// compare item with symbol\n\t\t\tif (this.test(item, symbol)) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t}\n\n\t\t// Nowhere left to jump!\n\t\treturn this.defaultTransition;\n\t},\n\n\n\t/**\n \tDoes this state accept?\n \t`true` only of `this.T` exists\n \t\t@method accepts\n \t@return {Boolean}\n */\n\taccepts: function accepts() {\n\t\treturn !!this.T;\n\t},\n\n\n\t/**\n \tDetermine whether a given item \"symbolizes\" the symbol, where symbol is\n \ta class of items handled by this state machine.\n \t\tThis method should be overriden in extended classes.\n \t\t@method test\n \t@param {Mixed} item Does this item match the given symbol?\n \t@param {Mixed} symbol\n \t@return {Boolean}\n */\n\ttest: function test(item, symbol) {\n\t\treturn item === symbol;\n\t},\n\n\n\t/**\n \tEmit the token for this State (just return it in this case)\n \tIf this emits a token, this instance is an accepting state\n \t@method emit\n \t@return {Class} T\n */\n\temit: function emit() {\n\t\treturn this.T;\n\t}\n};\n\n/**\n\tState machine for string-based input\n\n\t@class CharacterState\n\t@extends BaseState\n*/\nvar CharacterState = (0, _class.inherits)(BaseState, createStateClass(), {\n\t/**\n \tDoes the given character match the given character or regular\n \texpression?\n \t\t@method test\n \t@param {String} char\n \t@param {String|RegExp} charOrRegExp\n \t@return {Boolean}\n */\n\ttest: function test(character, charOrRegExp) {\n\t\treturn character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);\n\t}\n});\n\n/**\n\tState machine for input in the form of TextTokens\n\n\t@class TokenState\n\t@extends BaseState\n*/\nvar TokenState = (0, _class.inherits)(BaseState, createStateClass(), {\n\n\t/**\n * Similar to `on`, but returns the state the results in the transition from\n * the given item\n * @method jump\n * @param {Mixed} item\n * @param {Token} [token]\n * @return state\n */\n\tjump: function jump(token) {\n\t\tvar tClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\t\tvar state = this.next(new token('')); // dummy temp token\n\t\tif (state === this.defaultTransition) {\n\t\t\t// Make a new state!\n\t\t\tstate = new this.constructor(tClass);\n\t\t\tthis.on(token, state);\n\t\t} else if (tClass) {\n\t\t\tstate.T = tClass;\n\t\t}\n\t\treturn state;\n\t},\n\n\n\t/**\n \tIs the given token an instance of the given token class?\n \t\t@method test\n \t@param {TextToken} token\n \t@param {Class} tokenClass\n \t@return {Boolean}\n */\n\ttest: function test(token, tokenClass) {\n\t\treturn token instanceof tokenClass;\n\t}\n});\n\n/**\n\tGiven a non-empty target string, generates states (if required) for each\n\tconsecutive substring of characters in str starting from the beginning of\n\tthe string. The final state will have a special value, as specified in\n\toptions. All other \"in between\" substrings will have a default end state.\n\n\tThis turns the state machine into a Trie-like data structure (rather than a\n\tintelligently-designed DFA).\n\n\tNote that I haven't really tried these with any strings other than\n\tDOMAIN.\n\n\t@param {String} str\n\t@param {CharacterState} start State to jump from the first character\n\t@param {Class} endToken Token class to emit when the given string has been\n\t\tmatched and no more jumps exist.\n\t@param {Class} defaultToken \"Filler token\", or which token type to emit when\n\t\twe don't have a full match\n\t@return {Array} list of newly-created states\n*/\nfunction stateify(str, start, endToken, defaultToken) {\n\tvar i = 0,\n\t len = str.length,\n\t state = start,\n\t newStates = [],\n\t nextState = void 0;\n\n\t// Find the next state without a jump to the next character\n\twhile (i < len && (nextState = state.next(str[i]))) {\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tif (i >= len) {\n\t\treturn [];\n\t} // no new tokens were added\n\n\twhile (i < len - 1) {\n\t\tnextState = new CharacterState(defaultToken);\n\t\tnewStates.push(nextState);\n\t\tstate.on(str[i], nextState);\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tnextState = new CharacterState(endToken);\n\tnewStates.push(nextState);\n\tstate.on(str[len - 1], nextState);\n\n\treturn newStates;\n}\n\nexports.CharacterState = CharacterState;\nexports.TokenState = TokenState;\nexports.stateify = stateify;","\"use strict\";\n\nexports.__esModule = true;\nfunction createTokenClass() {\n\treturn function (value) {\n\t\tif (value) {\n\t\t\tthis.v = value;\n\t\t}\n\t};\n}\n\nexports.createTokenClass = createTokenClass;","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","const HANDLERS_PROPERTY = '__v-click-outside'\nconst HAS_WINDOWS = typeof window !== 'undefined'\nconst HAS_NAVIGATOR = typeof navigator !== 'undefined'\nconst IS_TOUCH =\n HAS_WINDOWS &&\n ('ontouchstart' in window ||\n (HAS_NAVIGATOR && navigator.msMaxTouchPoints > 0))\nconst EVENTS = IS_TOUCH ? ['touchstart'] : ['click']\n\nfunction processDirectiveArguments(bindingValue) {\n const isFunction = typeof bindingValue === 'function'\n if (!isFunction && typeof bindingValue !== 'object') {\n throw new Error(\n 'v-click-outside: Binding value must be a function or an object',\n )\n }\n\n return {\n handler: isFunction ? bindingValue : bindingValue.handler,\n middleware: bindingValue.middleware || ((item) => item),\n events: bindingValue.events || EVENTS,\n isActive: !(bindingValue.isActive === false),\n detectIframe: !(bindingValue.detectIframe === false),\n }\n}\n\nfunction execHandler({ event, handler, middleware }) {\n if (middleware(event)) {\n handler(event)\n }\n}\n\nfunction onFauxIframeClick({ el, event, handler, middleware }) {\n // Note: on firefox clicking on iframe triggers blur, but only on\n // next event loop it becomes document.activeElement\n // https://stackoverflow.com/q/2381336#comment61192398_23231136\n setTimeout(() => {\n const { activeElement } = document\n if (\n activeElement &&\n activeElement.tagName === 'IFRAME' &&\n !el.contains(activeElement)\n ) {\n execHandler({ event, handler, middleware })\n }\n }, 0)\n}\n\nfunction onEvent({ el, event, handler, middleware }) {\n // Note: composedPath is not supported on IE and Edge, more information here:\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/composedPath\n // In the meanwhile, we are using el.contains for those browsers, not\n // the ideal solution, but using IE or EDGE is not ideal either.\n const path = event.path || (event.composedPath && event.composedPath())\n const isClickOutside = path\n ? path.indexOf(el) < 0\n : !el.contains(event.target)\n\n if (!isClickOutside) {\n return\n }\n\n execHandler({ event, handler, middleware })\n}\n\nfunction bind(el, { value }) {\n const {\n events,\n handler,\n middleware,\n isActive,\n detectIframe,\n } = processDirectiveArguments(value)\n if (!isActive) {\n return\n }\n\n el[HANDLERS_PROPERTY] = events.map((eventName) => ({\n event: eventName,\n srcTarget: document.documentElement,\n handler: (event) => onEvent({ el, event, handler, middleware }),\n }))\n\n if (detectIframe) {\n const detectIframeEvent = {\n event: 'blur',\n srcTarget: window,\n handler: (event) => onFauxIframeClick({ el, event, handler, middleware }),\n }\n\n el[HANDLERS_PROPERTY] = [...el[HANDLERS_PROPERTY], detectIframeEvent]\n }\n\n el[HANDLERS_PROPERTY].forEach(({ event, srcTarget, handler }) =>\n setTimeout(() => {\n // Note: More info about this implementation can be found here:\n // https://github.com/ndelvalle/v-click-outside/issues/137\n if (!el[HANDLERS_PROPERTY]) {\n return\n }\n srcTarget.addEventListener(event, handler, false)\n }, 0),\n )\n}\n\nfunction unbind(el) {\n const handlers = el[HANDLERS_PROPERTY] || []\n handlers.forEach(({ event, srcTarget, handler }) =>\n srcTarget.removeEventListener(event, handler, false),\n )\n delete el[HANDLERS_PROPERTY]\n}\n\nfunction update(el, { value, oldValue }) {\n if (JSON.stringify(value) === JSON.stringify(oldValue)) {\n return\n }\n unbind(el)\n bind(el, { value })\n}\n\nconst directive = {\n bind,\n update,\n unbind,\n}\n\nexport default HAS_WINDOWS ? directive : {}\n","import directive from './v-click-outside'\n\nconst plugin = {\n install(Vue) {\n Vue.directive('click-outside', directive)\n },\n directive,\n}\n\nexport default plugin\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '<!-') {\n state = STATE_COMMENT;\n }\n\n tag_buffer += char;\n break;\n\n case ' ':\n case '\\n':\n if (tag_buffer === '<') {\n state = STATE_PLAINTEXT;\n output += '< ';\n tag_buffer = '';\n\n break;\n }\n\n tag_buffer += char;\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n\n else if (state === STATE_COMMENT) {\n switch (char) {\n case '>':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","module.exports = require('./lib/linkify-string').default;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _linkify = require('./linkify');\n\nvar linkify = _interopRequireWildcard(_linkify);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tokenize = linkify.tokenize,\n options = linkify.options; /**\n \tConvert strings of text into linkable HTML text\n */\n\nvar Options = options.Options;\n\n\nfunction escapeText(text) {\n\treturn text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n\nfunction escapeAttr(href) {\n\treturn href.replace(/\"/g, '&quot;');\n}\n\nfunction attributesToString(attributes) {\n\tif (!attributes) {\n\t\treturn '';\n\t}\n\tvar result = [];\n\n\tfor (var attr in attributes) {\n\t\tvar val = attributes[attr] + '';\n\t\tresult.push(attr + '=\"' + escapeAttr(val) + '\"');\n\t}\n\treturn result.join(' ');\n}\n\nfunction linkifyStr(str) {\n\tvar opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\topts = new Options(opts);\n\n\tvar tokens = tokenize(str);\n\tvar result = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\n\t\tif (token.type === 'nl' && opts.nl2br) {\n\t\t\tresult.push('<br>\\n');\n\t\t\tcontinue;\n\t\t} else if (!token.isLink || !opts.check(token)) {\n\t\t\tresult.push(escapeText(token.toString()));\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar _opts$resolve = opts.resolve(token),\n\t\t formatted = _opts$resolve.formatted,\n\t\t formattedHref = _opts$resolve.formattedHref,\n\t\t tagName = _opts$resolve.tagName,\n\t\t className = _opts$resolve.className,\n\t\t target = _opts$resolve.target,\n\t\t attributes = _opts$resolve.attributes;\n\n\t\tvar link = '<' + tagName + ' href=\"' + escapeAttr(formattedHref) + '\"';\n\n\t\tif (className) {\n\t\t\tlink += ' class=\"' + escapeAttr(className) + '\"';\n\t\t}\n\n\t\tif (target) {\n\t\t\tlink += ' target=\"' + escapeAttr(target) + '\"';\n\t\t}\n\n\t\tif (attributes) {\n\t\t\tlink += ' ' + attributesToString(attributes);\n\t\t}\n\n\t\tlink += '>' + escapeText(formatted) + '</' + tagName + '>';\n\t\tresult.push(link);\n\t}\n\n\treturn result.join('');\n}\n\nif (!String.prototype.linkify) {\n\ttry {\n\t\tObject.defineProperty(String.prototype, 'linkify', {\n\t\t\tset: function set() {},\n\t\t\tget: function get() {\n\t\t\t\treturn function linkify(opts) {\n\t\t\t\t\treturn linkifyStr(this, opts);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t} catch (e) {\n\t\t// IE 8 doesn't like Object.defineProperty on non-DOM objects\n\t\tif (!String.prototype.linkify) {\n\t\t\tString.prototype.linkify = function (opts) {\n\t\t\t\treturn linkifyStr(this, opts);\n\t\t\t};\n\t\t}\n\t}\n}\n\nexports.default = linkifyStr;","'use strict';\n\nexports.__esModule = true;\nexports.tokenize = exports.test = exports.scanner = exports.parser = exports.options = exports.inherits = exports.find = undefined;\n\nvar _class = require('./linkify/utils/class');\n\nvar _options = require('./linkify/utils/options');\n\nvar options = _interopRequireWildcard(_options);\n\nvar _scanner = require('./linkify/core/scanner');\n\nvar scanner = _interopRequireWildcard(_scanner);\n\nvar _parser = require('./linkify/core/parser');\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nif (!Array.isArray) {\n\tArray.isArray = function (arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t};\n}\n\n/**\n\tConverts a string into tokens that represent linkable and non-linkable bits\n\t@method tokenize\n\t@param {String} str\n\t@return {Array} tokens\n*/\nvar tokenize = function tokenize(str) {\n\treturn parser.run(scanner.run(str));\n};\n\n/**\n\tReturns a list of linkable items in the given string.\n*/\nvar find = function find(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\tvar filtered = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\t\tif (token.isLink && (!type || token.type === type)) {\n\t\t\tfiltered.push(token.toObject());\n\t\t}\n\t}\n\n\treturn filtered;\n};\n\n/**\n\tIs the given string valid linkable text of some sort\n\tNote that this does not trim the text for you.\n\n\tOptionally pass in a second `type` param, which is the type of link to test\n\tfor.\n\n\tFor example,\n\n\t\ttest(str, 'email');\n\n\tWill return `true` if str is a valid email.\n*/\nvar test = function test(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\treturn tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);\n};\n\n// Scanner and parser provide states and tokens for the lexicographic stage\n// (will be used to add additional link types)\nexports.find = find;\nexports.inherits = _class.inherits;\nexports.options = options;\nexports.parser = parser;\nexports.scanner = scanner;\nexports.test = test;\nexports.tokenize = tokenize;","'use strict';\n\nexports.__esModule = true;\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 defaults = {\n\tdefaultProtocol: 'http',\n\tevents: null,\n\tformat: noop,\n\tformatHref: noop,\n\tnl2br: false,\n\ttagName: 'a',\n\ttarget: typeToTarget,\n\tvalidate: true,\n\tignoreTags: [],\n\tattributes: null,\n\tclassName: 'linkified' // Deprecated value - no default class will be provided in the future\n};\n\nexports.defaults = defaults;\nexports.Options = Options;\nexports.contains = contains;\n\n\nfunction Options(opts) {\n\topts = opts || {};\n\n\tthis.defaultProtocol = opts.hasOwnProperty('defaultProtocol') ? opts.defaultProtocol : defaults.defaultProtocol;\n\tthis.events = opts.hasOwnProperty('events') ? opts.events : defaults.events;\n\tthis.format = opts.hasOwnProperty('format') ? opts.format : defaults.format;\n\tthis.formatHref = opts.hasOwnProperty('formatHref') ? opts.formatHref : defaults.formatHref;\n\tthis.nl2br = opts.hasOwnProperty('nl2br') ? opts.nl2br : defaults.nl2br;\n\tthis.tagName = opts.hasOwnProperty('tagName') ? opts.tagName : defaults.tagName;\n\tthis.target = opts.hasOwnProperty('target') ? opts.target : defaults.target;\n\tthis.validate = opts.hasOwnProperty('validate') ? opts.validate : defaults.validate;\n\tthis.ignoreTags = [];\n\n\t// linkAttributes and linkClass is deprecated\n\tthis.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;\n\tthis.className = opts.hasOwnProperty('className') ? opts.className : opts.linkClass || defaults.className;\n\n\t// Make all tags names upper case\n\tvar ignoredTags = opts.hasOwnProperty('ignoreTags') ? opts.ignoreTags : defaults.ignoreTags;\n\tfor (var i = 0; i < ignoredTags.length; i++) {\n\t\tthis.ignoreTags.push(ignoredTags[i].toUpperCase());\n\t}\n}\n\nOptions.prototype = {\n\t/**\n * Given the token, return all options for how it should be displayed\n */\n\tresolve: function resolve(token) {\n\t\tvar href = token.toHref(this.defaultProtocol);\n\t\treturn {\n\t\t\tformatted: this.get('format', token.toString(), token),\n\t\t\tformattedHref: this.get('formatHref', href, token),\n\t\t\ttagName: this.get('tagName', href, token),\n\t\t\tclassName: this.get('className', href, token),\n\t\t\ttarget: this.get('target', href, token),\n\t\t\tevents: this.getObject('events', href, token),\n\t\t\tattributes: this.getObject('attributes', href, token)\n\t\t};\n\t},\n\n\n\t/**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n\tcheck: function check(token) {\n\t\treturn this.get('validate', token.toString(), token);\n\t},\n\n\n\t// Private methods\n\n\t/**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {String} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n\tget: function get(key, operator, token) {\n\t\tvar optionValue = void 0,\n\t\t option = this[key];\n\t\tif (!option) {\n\t\t\treturn option;\n\t\t}\n\n\t\tswitch (typeof option === 'undefined' ? 'undefined' : _typeof(option)) {\n\t\t\tcase 'function':\n\t\t\t\treturn option(operator, token.type);\n\t\t\tcase 'object':\n\t\t\t\toptionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];\n\t\t\t\treturn typeof optionValue === 'function' ? optionValue(operator, token.type) : optionValue;\n\t\t}\n\n\t\treturn option;\n\t},\n\tgetObject: function getObject(key, operator, token) {\n\t\tvar option = this[key];\n\t\treturn typeof option === 'function' ? option(operator, token.type) : option;\n\t}\n};\n\n/**\n * Quick indexOf replacement for checking the ignoreTags option\n */\nfunction contains(arr, value) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (arr[i] === value) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction noop(val) {\n\treturn val;\n}\n\nfunction typeToTarget(href, type) {\n\treturn type === 'url' ? '_blank' : null;\n}","'use strict';\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = require('./state');\n\nvar _text = require('./tokens/text');\n\nvar TOKENS = _interopRequireWildcard(_text);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tlds = 'aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw'.split('|'); // macro, see gulpfile.js\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar NUMBERS = '0123456789'.split('');\nvar ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');\nvar WHITESPACE = [' ', '\\f', '\\r', '\\t', '\\v', '\\xA0', '\\u1680', '\\u180E']; // excluding line breaks\n\nvar domainStates = []; // states that jump to DOMAIN on /[a-z0-9]/\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.CharacterState(tokenClass);\n};\n\n// Frequently used states\nvar S_START = makeState();\nvar S_NUM = makeState(_text.NUM);\nvar S_DOMAIN = makeState(_text.DOMAIN);\nvar S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\nvar S_WS = makeState(_text.WS);\n\n// States for special URL symbols\nS_START.on('@', makeState(_text.AT)).on('.', makeState(_text.DOT)).on('+', makeState(_text.PLUS)).on('#', makeState(_text.POUND)).on('?', makeState(_text.QUERY)).on('/', makeState(_text.SLASH)).on('_', makeState(_text.UNDERSCORE)).on(':', makeState(_text.COLON)).on('{', makeState(_text.OPENBRACE)).on('[', makeState(_text.OPENBRACKET)).on('<', makeState(_text.OPENANGLEBRACKET)).on('(', makeState(_text.OPENPAREN)).on('}', makeState(_text.CLOSEBRACE)).on(']', makeState(_text.CLOSEBRACKET)).on('>', makeState(_text.CLOSEANGLEBRACKET)).on(')', makeState(_text.CLOSEPAREN)).on('&', makeState(_text.AMPERSAND)).on([',', ';', '!', '\"', '\\''], makeState(_text.PUNCTUATION));\n\n// Whitespace jumps\n// Tokens of only non-newline whitespace are arbitrarily long\nS_START.on('\\n', makeState(_text.NL)).on(WHITESPACE, S_WS);\n\n// If any whitespace except newline, more whitespace!\nS_WS.on(WHITESPACE, S_WS);\n\n// Generates states for top-level domains\n// Note that this is most accurate when tlds are in alphabetical order\nfor (var i = 0; i < tlds.length; i++) {\n\tvar newStates = (0, _state.stateify)(tlds[i], S_START, _text.TLD, _text.DOMAIN);\n\tdomainStates.push.apply(domainStates, newStates);\n}\n\n// Collect the states generated by different protocls\nvar partialProtocolFileStates = (0, _state.stateify)('file', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolFtpStates = (0, _state.stateify)('ftp', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolHttpStates = (0, _state.stateify)('http', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolMailtoStates = (0, _state.stateify)('mailto', S_START, _text.DOMAIN, _text.DOMAIN);\n\n// Add the states to the array of DOMAINeric states\ndomainStates.push.apply(domainStates, partialProtocolFileStates);\ndomainStates.push.apply(domainStates, partialProtocolFtpStates);\ndomainStates.push.apply(domainStates, partialProtocolHttpStates);\ndomainStates.push.apply(domainStates, partialProtocolMailtoStates);\n\n// Protocol states\nvar S_PROTOCOL_FILE = partialProtocolFileStates.pop();\nvar S_PROTOCOL_FTP = partialProtocolFtpStates.pop();\nvar S_PROTOCOL_HTTP = partialProtocolHttpStates.pop();\nvar S_MAILTO = partialProtocolMailtoStates.pop();\nvar S_PROTOCOL_SECURE = makeState(_text.DOMAIN);\nvar S_FULL_PROTOCOL = makeState(_text.PROTOCOL); // Full protocol ends with COLON\nvar S_FULL_MAILTO = makeState(_text.MAILTO); // Mailto ends with COLON\n\n// Secure protocols (end with 's')\nS_PROTOCOL_FTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\nS_PROTOCOL_HTTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\ndomainStates.push(S_PROTOCOL_SECURE);\n\n// Become protocol tokens after a COLON\nS_PROTOCOL_FILE.on(':', S_FULL_PROTOCOL);\nS_PROTOCOL_SECURE.on(':', S_FULL_PROTOCOL);\nS_MAILTO.on(':', S_FULL_MAILTO);\n\n// Localhost\nvar partialLocalhostStates = (0, _state.stateify)('localhost', S_START, _text.LOCALHOST, _text.DOMAIN);\ndomainStates.push.apply(domainStates, partialLocalhostStates);\n\n// Everything else\n// DOMAINs make more DOMAINs\n// Number and character transitions\nS_START.on(NUMBERS, S_NUM);\nS_NUM.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN\n\nS_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n\n// All the generated states should have a jump to DOMAIN\nfor (var _i = 0; _i < domainStates.length; _i++) {\n\tdomainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n}\n\nS_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_DOMAIN).on(ALPHANUM, S_DOMAIN);\n\n// Set default transition\nS_START.defaultTransition = makeState(_text.SYM);\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {String} str Input string to scan\n\t@return {Array} Array of TOKEN instances\n*/\nvar run = function run(str) {\n\n\t// The state machine only looks at lowercase strings.\n\t// This selective `toLowerCase` is used because lowercasing the entire\n\t// string causes the length and character position to vary in some in some\n\t// non-English strings. This happens only on V8-based runtimes.\n\tvar lowerStr = str.replace(/[A-Z]/g, function (c) {\n\t\treturn c.toLowerCase();\n\t});\n\tvar len = str.length;\n\tvar tokens = []; // return value\n\n\tvar cursor = 0;\n\n\t// Tokenize the string\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar nextState = null;\n\t\tvar tokenLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && (nextState = state.next(lowerStr[cursor]))) {\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\ttokenLength++;\n\t\t\tcursor++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\t\t\tcontinue;\n\t\t} // Should never happen\n\n\t\t// Roll back to the latest accepting state\n\t\tcursor -= sinceAccepts;\n\t\ttokenLength -= sinceAccepts;\n\n\t\t// Get the class for the new token\n\t\tvar TOKEN = latestAccepting.emit(); // Current token class\n\n\t\t// No more jumps, just make a new token\n\t\ttokens.push(new TOKEN(str.substr(cursor - tokenLength, tokenLength)));\n\t}\n\n\treturn tokens;\n};\n\nvar start = S_START;\nexports.State = _state.CharacterState;\nexports.TOKENS = TOKENS;\nexports.run = run;\nexports.start = start;","'use strict';\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = require('./state');\n\nvar _multi = require('./tokens/multi');\n\nvar MULTI_TOKENS = _interopRequireWildcard(_multi);\n\nvar _text = require('./tokens/text');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main parser\n*/\n\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.TokenState(tokenClass);\n};\n\n// The universal starting state.\nvar S_START = makeState();\n\n// Intermediate states for URLs. Note that domains that begin with a protocol\n// are treated slighly differently from those that don't.\nvar S_PROTOCOL = makeState(); // e.g., 'http:'\nvar S_MAILTO = makeState(); // 'mailto:'\nvar S_PROTOCOL_SLASH = makeState(); // e.g., '/', 'http:/''\nvar S_PROTOCOL_SLASH_SLASH = makeState(); // e.g., '//', 'http://'\nvar S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\nvar S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\nvar S_TLD = makeState(_multi.URL); // (A) Simplest possible URL with no query string\nvar S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\nvar S_TLD_PORT = makeState(_multi.URL); // TLD followed by a port number\nvar S_URL = makeState(_multi.URL); // Long URL with optional port and maybe query string\nvar S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\nvar S_URL_OPENBRACE = makeState(); // URL followed by {\nvar S_URL_OPENBRACKET = makeState(); // URL followed by [\nvar S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\nvar S_URL_OPENPAREN = makeState(); // URL followed by (\nvar S_URL_OPENBRACE_Q = makeState(_multi.URL); // URL followed by { and some symbols that the URL can end it\nvar S_URL_OPENBRACKET_Q = makeState(_multi.URL); // URL followed by [ and some symbols that the URL can end it\nvar S_URL_OPENANGLEBRACKET_Q = makeState(_multi.URL); // URL followed by < and some symbols that the URL can end it\nvar S_URL_OPENPAREN_Q = makeState(_multi.URL); // URL followed by ( and some symbols that the URL can end it\nvar S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\nvar S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\nvar S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\nvar S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\nvar S_EMAIL = makeState(_multi.EMAIL); // (C) Possible email address (could have more tlds)\nvar S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\nvar S_EMAIL_PORT = makeState(_multi.EMAIL); // (C) Email address with a port\nvar S_MAILTO_EMAIL = makeState(_multi.MAILTOEMAIL); // Email that begins with the mailto prefix (D)\nvar S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\nvar S_LOCALPART = makeState(); // Local part of the email address\nvar S_LOCALPART_AT = makeState(); // Local part of the email address plus @\nvar S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\nvar S_NL = makeState(_multi.NL); // single new line\n\n// Make path from start to protocol (with '//')\nS_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);\n\nS_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);\n\n// The very first potential domain name\nS_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);\n\n// Force URL for protocol followed by anything sane\nS_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);\n\n// Account for dots and hyphens\n// hyphens are usually parts of domain names\nS_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Hyphen can jump back to a domain name\n\n// After the first domain and a dot, we can find either a URL or another domain\nS_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);\n\nS_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);\n\n// S_TLD accepts! But the URL could be longer, try to find a match greedily\n// The `run` function should be able to \"rollback\" to the accepting state\nS_TLD.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Become real URLs after `SLASH` or `COLON NUM SLASH`\n// Here PSS and non-PSS converge\nS_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);\nS_TLD_COLON.on(_text.NUM, S_TLD_PORT);\nS_TLD_PORT.on(_text.SLASH, S_URL);\nS_EMAIL.on(_text.COLON, S_EMAIL_COLON);\nS_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);\n\n// Types of characters the URL can definitely end in\nvar qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];\n\n// Types of tokens that can follow a URL and be part of the query string\n// but cannot be the very last characters\n// Characters that cannot appear in the URL at all should be excluded\nvar qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];\n\n// These states are responsible primarily for determining whether or not to\n// include the final round bracket.\n\n// URL, followed by an opening bracket\nS_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// URL with extra symbols at the end, followed by an opening bracket\nS_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// Closing bracket component. This character WILL be included in the URL\nS_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);\n\n// URL that beings with an opening bracket, followed by a symbols.\n// Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n// has a single opening bracket for some reason).\nS_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// URL that begins with an opening bracket, followed by some symbols\nS_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);\n\nS_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// Account for the query string\nS_URL.on(qsAccepting, S_URL);\nS_URL_NON_ACCEPTING.on(qsAccepting, S_URL);\n\nS_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);\n\n// Email address-specific state definitions\n// Note: We are not allowing '/' in email addresses since this would interfere\n// with real URLs\n\n// For addresses with the mailto prefix\n// 'mailto:' followed by anything sane is a valid email\nS_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);\n\n// Greedily get more potential valid email values\nS_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nS_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n\n// For addresses without the mailto prefix\n// Tokens allowed in the localpart of the email\nvar localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];\n\n// Some of the tokens in `localpartAccepting` are already accounted for here and\n// will not be overwritten (don't worry)\nS_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);\n\n// Okay we're on a localpart. Now what?\n// TODO: IP addresses and what if the email starts with numbers?\nS_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT) // close to an email address now\n.on(_text.DOT, S_LOCALPART_DOT);\nS_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);\n// States following `@` defined above\n\nvar run = function run(tokens) {\n\tvar len = tokens.length;\n\tvar cursor = 0;\n\tvar multis = [];\n\tvar textTokens = [];\n\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar secondState = null;\n\t\tvar nextState = null;\n\t\tvar multiLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && !(secondState = state.next(tokens[cursor]))) {\n\t\t\t// Starting tokens with nowhere to jump to.\n\t\t\t// Consider these to be just plain text\n\t\t\ttextTokens.push(tokens[cursor++]);\n\t\t}\n\n\t\twhile (cursor < len && (nextState = secondState || state.next(tokens[cursor]))) {\n\n\t\t\t// Get the next state\n\t\t\tsecondState = null;\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\tcursor++;\n\t\t\tmultiLength++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\n\t\t\t// No accepting state was found, part of a regular text token\n\t\t\t// Add all the tokens we looked at to the text tokens array\n\t\t\tfor (var i = cursor - multiLength; i < cursor; i++) {\n\t\t\t\ttextTokens.push(tokens[i]);\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Accepting state!\n\n\t\t\t// First close off the textTokens (if available)\n\t\t\tif (textTokens.length > 0) {\n\t\t\t\tmultis.push(new _multi.TEXT(textTokens));\n\t\t\t\ttextTokens = [];\n\t\t\t}\n\n\t\t\t// Roll back to the latest accepting state\n\t\t\tcursor -= sinceAccepts;\n\t\t\tmultiLength -= sinceAccepts;\n\n\t\t\t// Create a new multitoken\n\t\t\tvar MULTI = latestAccepting.emit();\n\t\t\tmultis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));\n\t\t}\n\t}\n\n\t// Finally close off the textTokens (if available)\n\tif (textTokens.length > 0) {\n\t\tmultis.push(new _multi.TEXT(textTokens));\n\t}\n\n\treturn multis;\n};\n\nexports.State = _state.TokenState;\nexports.TOKENS = MULTI_TOKENS;\nexports.run = run;\nexports.start = S_START;","'use strict';\n\nexports.__esModule = true;\nexports.URL = exports.TEXT = exports.NL = exports.EMAIL = exports.MAILTOEMAIL = exports.Base = undefined;\n\nvar _createTokenClass = require('./create-token-class');\n\nvar _class = require('../../utils/class');\n\nvar _text = require('./text');\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n// Is the given token a valid domain token?\n// Should nums be included here?\nfunction isDomainToken(token) {\n\treturn token instanceof _text.DOMAIN || token instanceof _text.TLD;\n}\n\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@abstract\n*/\nvar MultiToken = (0, _createTokenClass.createTokenClass)();\n\nMultiToken.prototype = {\n\t/**\n \tString representing the type for this token\n \t@property type\n \t@default 'TOKEN'\n */\n\ttype: 'token',\n\n\t/**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n\tisLink: false,\n\n\t/**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {String}\n */\n\ttoString: function toString() {\n\t\tvar result = [];\n\t\tfor (var i = 0; i < this.v.length; i++) {\n\t\t\tresult.push(this.v[i].toString());\n\t\t}\n\t\treturn result.join('');\n\t},\n\n\n\t/**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\treturn this.toString();\n\t},\n\n\n\t/**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {String} [protocol] `'http'` by default\n \t@return {Object}\n */\n\ttoObject: function toObject() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue: this.toString(),\n\t\t\thref: this.toHref(protocol)\n\t\t};\n\t}\n};\n\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MAILTO\n\t@extends MultiToken\n*/\nvar MAILTOEMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true\n});\n\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class EMAIL\n\t@extends MultiToken\n*/\nvar EMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true,\n\ttoHref: function toHref() {\n\t\treturn 'mailto:' + this.toString();\n\t}\n});\n\n/**\n\tRepresents some plain text\n\t@class TEXT\n\t@extends MultiToken\n*/\nvar TEXT = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'text' });\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class NL\n\t@extends MultiToken\n*/\nvar NL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'nl' });\n\n/**\n\tRepresents a list of tokens making up a valid URL\n\t@class URL\n\t@extends MultiToken\n*/\nvar URL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'url',\n\tisLink: true,\n\n\t/**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {String} protocol\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\tvar hasProtocol = false;\n\t\tvar hasSlashSlash = false;\n\t\tvar tokens = this.v;\n\t\tvar result = [];\n\t\tvar i = 0;\n\n\t\t// Make the first part of the domain lowercase\n\t\t// Lowercase protocol\n\t\twhile (tokens[i] instanceof _text.PROTOCOL) {\n\t\t\thasProtocol = true;\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Skip slash-slash\n\t\twhile (tokens[i] instanceof _text.SLASH) {\n\t\t\thasSlashSlash = true;\n\t\t\tresult.push(tokens[i].toString());\n\t\t\ti++;\n\t\t}\n\n\t\t// Lowercase all other characters in the domain\n\t\twhile (isDomainToken(tokens[i])) {\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Leave all other characters as they were written\n\t\tfor (; i < tokens.length; i++) {\n\t\t\tresult.push(tokens[i].toString());\n\t\t}\n\n\t\tresult = result.join('');\n\n\t\tif (!(hasProtocol || hasSlashSlash)) {\n\t\t\tresult = protocol + '://' + result;\n\t\t}\n\n\t\treturn result;\n\t},\n\thasProtocol: function hasProtocol() {\n\t\treturn this.v[0] instanceof _text.PROTOCOL;\n\t}\n});\n\nexports.Base = MultiToken;\nexports.MAILTOEMAIL = MAILTOEMAIL;\nexports.EMAIL = EMAIL;\nexports.NL = NL;\nexports.TEXT = TEXT;\nexports.URL = URL;","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, UNSUPPORTED_Y);\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///../lib/index.ts","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/linkifyjs/lib/linkify/utils/class.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/tokens/text.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///NextcloudVue.[name]/webpack/universalModuleDefinition","webpack:///NextcloudVue.[name]/webpack/bootstrap","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/api.js","webpack:///NextcloudVue.[name]/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///NextcloudVue.[name]/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/getUrl.js","webpack:///webpack:/NextcloudVue.[name]/external \"vue\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.object.to-string.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"v-tooltip\"","webpack:///NextcloudVue.[name]/src/fonts/iconfont-vue-6b494fc.eot","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/router\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.function.name.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.exec.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.dom-collections.iterator.js\"","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?770b","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss?0d1f","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.js","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.map.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.replace.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.to-string.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.concat.js\"","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?d02f","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?470d","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue","webpack:///NextcloudVue.[name]/src/components/Popover/Popover.vue?01ec","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/event-bus\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.number.constructor.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.symbol.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/auth\"","webpack:///NextcloudVue.[name]/src/utils/IsMobileState.js","webpack:///NextcloudVue.[name]/src/mixins/isMobile/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/axios\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.symbol.description.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.url.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.slice.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"v-click-outside\"","webpack:///webpack:/NextcloudVue.[name]/external \"striptags\"","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?931e","webpack:///NextcloudVue.[name]/src/mixins/userStatus.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.symbol.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"linkifyjs/string\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.from.js\"","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?fe4e","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?b648","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?3c28","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.join.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"regenerator-runtime/runtime.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.promise.js\"","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?d102","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?6682","webpack:///NextcloudVue.[name]/src/components/RichContenteditable/MentionBubble.vue?50ea","webpack:///NextcloudVue.[name]/src/mixins/richEditor/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"escape-html\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.starts-with.js\"","webpack:///NextcloudVue.[name]/src/utils/GenColors.js","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?a5a6","webpack:///NextcloudVue.[name]/src/mixins/excludeClickOutsideClasses/index.js","webpack:///NextcloudVue.[name]/src/mixins/isFullscreen/index.js","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?cb4e","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?356f","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?e2dd","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?ad0c","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?b983","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?f50c","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?ca3a","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.split.js\"","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?7e12","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?125c","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?7897","webpack:///NextcloudVue.[name]/src/components/Avatar/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"md5\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/capabilities\"","webpack:///NextcloudVue.[name]/src/functions/usernameToColor/index.js","webpack:///NextcloudVue.[name]/src/functions/usernameToColor/usernameToColor.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/browser-storage\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.includes.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.constructor.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.flat.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.match.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.from-code-point.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.code-point-at.js\"","webpack:///./node_modules/linkifyjs/lib/linkify/core/state.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/tokens/create-token-class.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/charenc/charenc.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///../src/v-click-outside.js","webpack:///../src/index.js","webpack:///./node_modules/striptags/src/striptags.js","webpack:///./node_modules/linkifyjs/string.js","webpack:///./node_modules/linkifyjs/lib/linkify-string.js","webpack:///./node_modules/linkifyjs/lib/linkify.js","webpack:///./node_modules/linkifyjs/lib/linkify/utils/options.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/scanner.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/parser.js","webpack:///./node_modules/linkifyjs/lib/linkify/core/tokens/multi.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/md5/md5.js","webpack:///./node_modules/crypt/crypt.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js"],"names":["elem","document","fallback","JSON","atob","isObject","require","setPrototypeOf","module","exports","$this","dummy","Wrapper","NewTarget","NewTargetPrototype","constructor","prototype","__esModule","inherits","parent","child","props","arguments","length","undefined","extended","Object","create","p","DESCRIPTORS","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","getOwnPropertyNames","f","getOwnPropertyDescriptor","defineProperty","trim","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","this","valueOf","call","keys","split","j","AMPERSAND","CLOSEPAREN","CLOSEANGLEBRACKET","CLOSEBRACKET","CLOSEBRACE","OPENPAREN","OPENANGLEBRACKET","OPENBRACKET","OPENBRACE","WS","TLD","SYM","UNDERSCORE","SLASH","MAILTO","PROTOCOL","QUERY","POUND","PLUS","NUM","NL","LOCALHOST","PUNCTUATION","DOT","COLON","AT","DOMAIN","Base","_createTokenClass","_class","TextToken","createTokenClass","inheritsToken","v","toString","MATCH","wellKnownSymbol","isRegExp","window","installedModules","__webpack_require__","moduleId","i","l","modules","m","c","d","name","getter","o","enumerable","get","r","Symbol","toStringTag","t","mode","ns","bind","n","object","property","hasOwnProperty","s","_slicedToArray","arr","Array","isArray","iterator","_arr","_n","_d","_e","_s","_i","next","done","push","err","minLen","_arrayLikeToArray","from","test","TypeError","len","arr2","item","_item","content","cssMapping","btoa","base64","unescape","encodeURIComponent","stringify","data","concat","sourceMapping","sourceURLs","sources","map","source","sourceRoot","join","cssWithMappingToString","list","mediaQuery","dedupe","alreadyImportedModules","id","memo","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","Boolean","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","newObj","all","lastIdentifiers","newList","newLastIdentifiers","_index","splice","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","url","default","hash","needQuotes","replace","__webpack_exports__","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default","version","names","mappings","sourcesContent","injectStylesIntoStyleTag_default","Tooltip","locals","VTooltip","defaultTemplate","SCOPE_VERSION","defaultHtml","Popover_Popovervue_type_script_lang_js_","components","VPopover","mounted","val","_this","Popovervue_type_style_index_0_lang_scss_","_h","$createElement","_c","_self","_g","_b","ref","attrs","popover-base-class","popover-wrapper-class","popover-arrow-class","popover-inner-class","$attrs","$listeners","_t","_v","slot","IsMobileState","isMobile","watch","$emit","created","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","$on","onIsMobileChanged","$off","hasStatus","userStatus","status","message","icon","fetchUserStatus","userId","capabilities","getCapabilities","user_status","enabled","getCurrentUser","axios","generateOcsUrl","ocs","_context","response","console","error","RichContenteditable_MentionBubblevue_type_script_lang_js_","type","required","label","primary","computed","avatarUrl","mentionText","getAvatarUrl","user","size","MentionBubblevue_type_style_index_0_id_724f9d58_lang_scss_scoped_true_","_vm","staticClass","class","mention-bubble--primary","contenteditable","backgroundImage","role","title","USERID_REGEX","RegExp","USERID_REGEX_WITH_SPACE","userData","renderContent","escapeHtml","part","flat","startsWith","linkifyStr","defaultProtocol","className","rel","genSelectTemplate","parseContent","text","stripTags","renderComponentHtml","MentionBubble","indexOf","propsData","component","Item","Vue","extend","wrapper","mount","display","body","$mount","renderedHtml","innerHTML","$destroy","Color","g","b","mixPalette","steps","color1","color2","palette","step","ends","GenColors","red","yellow","blue","palette1","palette2","palette3","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","___CSS_LOADER_URL_REPLACEMENT_0___","_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default","_fonts_iconfont_vue_6b494fc_eot__WEBPACK_IMPORTED_MODULE_3__","___CSS_LOADER_URL_REPLACEMENT_1___","_fonts_iconfont_vue_6b494fc_woff__WEBPACK_IMPORTED_MODULE_4__","___CSS_LOADER_URL_REPLACEMENT_2___","_fonts_iconfont_vue_6b494fc_ttf__WEBPACK_IMPORTED_MODULE_5__","___CSS_LOADER_URL_REPLACEMENT_3___","_fonts_iconfont_vue_6b494fc_svg__WEBPACK_IMPORTED_MODULE_6__","excludeClickOutsideClasses","String","clickOutsideMiddleware","event","excludedClassList","hasNodeOrAnyParentClass","node","classArray","classList","contains","parentElement","isFullscreen","_isFullscreen","beforeMount","_onResize","outerHeight","screen","height","PopoverMenu_PopoverMenuItemvue_type_script_lang_js_","href","validator","Math","iconIsUrl","action","PopoverMenuItemvue_type_style_index_0_id_febed9b6_scoped_true_lang_css_","PopoverMenuItemvue_type_style_index_1_id_febed9b6_lang_scss_scoped_true_","PopoverMenu_PopoverMenuvue_type_script_lang_js_","PopoverMenuItem","download","on","click","src","longtext","active","input","submit","$event","preventDefault","placeholder","domProps","directives","rawName","expression","checked","model","change","$$a","$$el","$$c","$$i","$set","_q","composing","for","stopPropagation","disabled","menu","PopoverMenuvue_type_style_index_0_id_4dae360a_lang_scss_scoped_true_","_l","PopoverMenu","getUserHasAvatar","setUserHasAvatar","flag","browserStorage","Avatar_Avatarvue_type_script_lang_js_","tooltip","ClickOutside","Popover","mixins","iconClass","showUserStatus","showUserStatusCompact","preloadedUserStatus","isGuest","displayName","allowPlaceholder","disableTooltip","disableMenu","tooltipMessage","isNoUser","statusColor","menuPosition","menuContainer","avatarUrlLoaded","avatarSrcSetLoaded","userDoesNotExist","isAvatarLoaded","isMenuLoaded","contactsMenuLoading","contactsMenuActions","contactsMenuOpenState","canDisplayUserStatus","showUserStatusIconOnAvatar","getUserIdentifier","isUserDefined","isDisplayNameDefined","isUrlDefined","hasMenu","shouldShowPlaceholder","avatarStyle","width","lineHeight","fontSize","initials","idx","html","actions","beforeDestroyed","handleUserStatusUpdated","toggleMenu","closeMenu","fetchContactsMenu","_this2","axios_default","loadAvatarUrl","srcset","avatarUrlGenerator","updateImageIfValid","userHasAvatar","img","_this3","Avatarvue_type_style_index_0_id_1bfc7bfe_scoped_true_lang_scss_","avatardiv--unknown","avatardiv--with-menu","alt","placement","container","open","backgroundColor","xmlns","viewBox","fill","stroke","stroke-width","stroke-linecap","Avatar","usernameToColor","username","toLowerCase","match","md5","maximum","finalInt","charAt","stateify","TokenState","CharacterState","BaseState","tClass","T","defaultTransition","symbol","state","jump","accepts","emit","character","charOrRegExp","token","tokenClass","str","start","endToken","defaultToken","newStates","nextState","getBuiltIn","definePropertyModule","SPECIES","CONSTRUCTOR_NAME","Constructor","configurable","anObject","aFunction","O","defaultConstructor","S","C","defer","channel","port","IS_IOS","IS_NODE","location","set","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","run","fn","runner","listener","post","postMessage","protocol","host","args","Function","apply","nextTick","now","port2","port1","onmessage","importScripts","setTimeout","userAgent","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","charenc","utf8","stringToBytes","bin","bytesToString","bytes","decodeURIComponent","escape","fromCharCode","$","$map","proto","forced","arrayMethodHasSpeciesSupport","callbackfn","HAS_WINDOWS","HAS_NAVIGATOR","navigator","EVENTS","msMaxTouchPoints","execHandler","handler","middleware","el","bindingValue","isFunction","events","isActive","detectIframe","processDirectiveArguments","eventName","srcTarget","path","composedPath","detectIframeEvent","activeElement","tagName","unbind","oldValue","install","directive","nonNative","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","allowable_tags","tag_replacement","striptags_internal","init_context","tag_set","Set","exec","parse_allowable_tags","tag_buffer","depth","in_quote_char","output","char","normalize_tag","init_streaming_mode","define","linkify","_interopRequireWildcard","tokenize","Options","escapeText","escapeAttr","attributesToString","attr","opts","tokens","nl2br","isLink","check","_opts$resolve","formatted","formattedHref","link","scanner","parser","find","arg","filtered","toObject","_typeof","defaults","format","noop","formatHref","validate","ignoreTags","linkAttributes","linkClass","ignoredTags","toUpperCase","toHref","getObject","operator","optionValue","option","TOKENS","State","_state","_text","tlds","NUMBERS","ALPHANUM","WHITESPACE","domainStates","makeState","S_START","S_NUM","S_DOMAIN","S_DOMAIN_HYPHEN","S_WS","partialProtocolFileStates","partialProtocolFtpStates","partialProtocolHttpStates","partialProtocolMailtoStates","S_PROTOCOL_FILE","pop","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","partialLocalhostStates","lowerStr","cursor","tokenLength","latestAccepting","sinceAccepts","TOKEN","substr","_multi","MULTI_TOKENS","S_PROTOCOL","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN_DOT","S_TLD","URL","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","MAILTOEMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","multis","textTokens","secondState","multiLength","TEXT","MULTI","isDomainToken","MultiToken","hasProtocol","hasSlashSlash","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","separator","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","then","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","isGeneratorFunction","genFun","ctor","mark","__proto__","awrap","async","Promise","iter","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","IS_PURE","NativePromise","redefineAll","setToStringTag","setSpecies","anInstance","inspectSource","iterate","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","InternalStateModule","V8_VERSION","PROMISE","getInternalState","setInternalState","getInternalPromiseState","getterFor","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","FORCED","FakePromise","INCORRECT_ITERATION","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","fail","domain","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","facade","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","that","unsafe","fetch","stat","capability","x","$promiseResolve","remaining","alreadyCalled","race","isArrayIteratorMethod","toLength","getIteratorMethod","iteratorClose","Result","stopped","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","flush","last","toggle","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","promiseCapability","a","descriptor","notARegExp","requireObjectCoercible","correctIsRegExpLogic","$startsWith","min","CORRECT_IS_REGEXP_LOGIC","searchString","search","METHOD_NAME","regexp","error1","error2","fixRegExpWellKnownSymbolLogic","advanceStringIndex","callRegExpExec","regexpExec","UNSUPPORTED_Y","arrayPush","SPLIT","nativeSplit","maybeCallNative","internalSplit","limit","string","lim","lastIndex","lastLength","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","splitter","res","rx","unicodeMatching","q","A","z","crypt","isBuffer","encoding","Uint8Array","bytesToWords","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","endian","_blocksize","_digestsize","digestbytes","wordsToBytes","asBytes","asString","bytesToHex","base64map","rotl","rotr","Number","randomBytes","floor","random","words","hex","hexToBytes","bytesToBase64","triplet","base64ToBytes","imod4","pow","readFloatLE","isSlowBuffer","_isBuffer","loadState","$includes","includes","addToUnscopables","getFlags","stickyHelpers","NativeRegExp","RegExpPrototype","re1","re2","CORRECT_NEW","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","flattenIntoArray","toInteger","arraySpeciesCreate","depthArg","sourceLen","original","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","toAbsoluteIndex","$fromCodePoint","fromCodePoint","elements","RangeError","codeAt","codePointAt","pos"],"mappings":"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","file":"vendors~editor-collab~editor-guest.js?v=5e86dd51f6ac58572b6b","sourcesContent":["import { loadState } from '@nextcloud/initial-state'\n\nexport function getCapabilities(): Object {\n\ttry {\n\t\treturn loadState('core', 'capabilities')\n\t} catch (error) {\n\t\tconsole.debug('Could not find capabilities initial state fall back to _oc_capabilities')\n\t\tif (!('_oc_capabilities' in window)) {\n\t\t\treturn {}\n\t\t}\n\t\treturn window['_oc_capabilities']\n\t}\n}\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.inherits = inherits;\nfunction inherits(parent, child) {\n\tvar props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar extended = Object.create(parent.prototype);\n\tfor (var p in props) {\n\t\textended[p] = props[p];\n\t}\n\textended.constructor = child;\n\tchild.prototype = extended;\n\treturn child;\n}","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\n\nexports.__esModule = true;\nexports.AMPERSAND = exports.CLOSEPAREN = exports.CLOSEANGLEBRACKET = exports.CLOSEBRACKET = exports.CLOSEBRACE = exports.OPENPAREN = exports.OPENANGLEBRACKET = exports.OPENBRACKET = exports.OPENBRACE = exports.WS = exports.TLD = exports.SYM = exports.UNDERSCORE = exports.SLASH = exports.MAILTO = exports.PROTOCOL = exports.QUERY = exports.POUND = exports.PLUS = exports.NUM = exports.NL = exports.LOCALHOST = exports.PUNCTUATION = exports.DOT = exports.COLON = exports.AT = exports.DOMAIN = exports.Base = undefined;\n\nvar _createTokenClass = require('./create-token-class');\n\nvar _class = require('../../utils/class');\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n\n/**\n\tAbstract class used for manufacturing text tokens.\n\tPass in the value this token represents\n\n\t@class TextToken\n\t@abstract\n*/\nvar TextToken = (0, _createTokenClass.createTokenClass)();\nTextToken.prototype = {\n\ttoString: function toString() {\n\t\treturn this.v + '';\n\t}\n};\n\nfunction inheritsToken(value) {\n\tvar props = value ? { v: value } : {};\n\treturn (0, _class.inherits)(TextToken, (0, _createTokenClass.createTokenClass)(), props);\n}\n\n/**\n\tA valid domain token\n\t@class DOMAIN\n\t@extends TextToken\n*/\nvar DOMAIN = inheritsToken();\n\n/**\n\t@class AT\n\t@extends TextToken\n*/\nvar AT = inheritsToken('@');\n\n/**\n\tRepresents a single colon `:` character\n\n\t@class COLON\n\t@extends TextToken\n*/\nvar COLON = inheritsToken(':');\n\n/**\n\t@class DOT\n\t@extends TextToken\n*/\nvar DOT = inheritsToken('.');\n\n/**\n\tA character class that can surround the URL, but which the URL cannot begin\n\tor end with. Does not include certain English punctuation like parentheses.\n\n\t@class PUNCTUATION\n\t@extends TextToken\n*/\nvar PUNCTUATION = inheritsToken();\n\n/**\n\tThe word localhost (by itself)\n\t@class LOCALHOST\n\t@extends TextToken\n*/\nvar LOCALHOST = inheritsToken();\n\n/**\n\tNewline token\n\t@class NL\n\t@extends TextToken\n*/\nvar NL = inheritsToken('\\n');\n\n/**\n\t@class NUM\n\t@extends TextToken\n*/\nvar NUM = inheritsToken();\n\n/**\n\t@class PLUS\n\t@extends TextToken\n*/\nvar PLUS = inheritsToken('+');\n\n/**\n\t@class POUND\n\t@extends TextToken\n*/\nvar POUND = inheritsToken('#');\n\n/**\n\tRepresents a web URL protocol. Supported types include\n\n\t* `http:`\n\t* `https:`\n\t* `ftp:`\n\t* `ftps:`\n\n\t@class PROTOCOL\n\t@extends TextToken\n*/\nvar PROTOCOL = inheritsToken();\n\n/**\n\tRepresents the start of the email URI protocol\n\n\t@class MAILTO\n\t@extends TextToken\n*/\nvar MAILTO = inheritsToken('mailto:');\n\n/**\n\t@class QUERY\n\t@extends TextToken\n*/\nvar QUERY = inheritsToken('?');\n\n/**\n\t@class SLASH\n\t@extends TextToken\n*/\nvar SLASH = inheritsToken('/');\n\n/**\n\t@class UNDERSCORE\n\t@extends TextToken\n*/\nvar UNDERSCORE = inheritsToken('_');\n\n/**\n\tOne ore more non-whitespace symbol.\n\t@class SYM\n\t@extends TextToken\n*/\nvar SYM = inheritsToken();\n\n/**\n\t@class TLD\n\t@extends TextToken\n*/\nvar TLD = inheritsToken();\n\n/**\n\tRepresents a string of consecutive whitespace characters\n\n\t@class WS\n\t@extends TextToken\n*/\nvar WS = inheritsToken();\n\n/**\n\tOpening/closing bracket classes\n*/\n\nvar OPENBRACE = inheritsToken('{');\nvar OPENBRACKET = inheritsToken('[');\nvar OPENANGLEBRACKET = inheritsToken('<');\nvar OPENPAREN = inheritsToken('(');\nvar CLOSEBRACE = inheritsToken('}');\nvar CLOSEBRACKET = inheritsToken(']');\nvar CLOSEANGLEBRACKET = inheritsToken('>');\nvar CLOSEPAREN = inheritsToken(')');\n\nvar AMPERSAND = inheritsToken('&');\n\nexports.Base = TextToken;\nexports.DOMAIN = DOMAIN;\nexports.AT = AT;\nexports.COLON = COLON;\nexports.DOT = DOT;\nexports.PUNCTUATION = PUNCTUATION;\nexports.LOCALHOST = LOCALHOST;\nexports.NL = NL;\nexports.NUM = NUM;\nexports.PLUS = PLUS;\nexports.POUND = POUND;\nexports.QUERY = QUERY;\nexports.PROTOCOL = PROTOCOL;\nexports.MAILTO = MAILTO;\nexports.SLASH = SLASH;\nexports.UNDERSCORE = UNDERSCORE;\nexports.SYM = SYM;\nexports.TLD = TLD;\nexports.WS = WS;\nexports.OPENBRACE = OPENBRACE;\nexports.OPENBRACKET = OPENBRACKET;\nexports.OPENANGLEBRACKET = OPENANGLEBRACKET;\nexports.OPENPAREN = OPENPAREN;\nexports.CLOSEBRACE = CLOSEBRACE;\nexports.CLOSEBRACKET = CLOSEBRACKET;\nexports.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;\nexports.CLOSEPAREN = CLOSEPAREN;\nexports.AMPERSAND = AMPERSAND;","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\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(\"Components/Avatar\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/Avatar\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/Avatar\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 80);\n","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== \"string\") {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n\n return url;\n};","module.exports = require(\"vue\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"v-tooltip\");","export default \"data:application/vnd.ms-fontobject;base64,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\"","module.exports = require(\"@nextcloud/router\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".popover{z-index:100000;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.popover__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background)}.popover__arrow{position:absolute;z-index:1;width:0;height:0;margin:10px;border-style:solid;border-color:var(--color-main-background)}.popover[x-placement^='top']{margin-bottom:10px}.popover[x-placement^='top'] .popover__arrow{bottom:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='bottom']{margin-top:10px}.popover[x-placement^='bottom'] .popover__arrow{top:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='right']{margin-left:10px}.popover[x-placement^='right'] .popover__arrow{top:calc(50% - $arrow-width);left:-10px;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='left']{margin-right:10px}.popover[x-placement^='left'] .popover__arrow{top:calc(50% - $arrow-width);right:-10px;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important}.popover[aria-hidden='true']{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.popover[aria-hidden='false']{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./Popover.vue\"],\"names\":[],\"mappings\":\"AAgHA,SACC,cAAe,CACf,wBAAyB,CAEzB,sDAAuD,CAEvD,gBACC,SAAU,CACV,4BAA6B,CAC7B,kCAAmC,CACnC,uCAAwC,CACxC,gBAGA,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,WApBgB,CAqBhB,kBAAmB,CACnB,yCAA0C,CApB5C,6BAwBE,kBA1BgB,CAElB,6CA2BG,YA7Be,CA8Bf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAjCe,CAkCf,yCAA0C,CAC1C,0CAA2C,CAC3C,wCAAyC,CAlC5C,gCAuCE,eAzCgB,CAElB,gDA0CG,SA5Ce,CA6Cf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAhDe,CAiDf,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CAjD5C,+BAsDE,gBAxDgB,CAElB,+CAyDG,4BAA6B,CAC7B,UA5De,CA6Df,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,uCAAwC,CACxC,0CAA2C,CAC3C,wCAAyC,CAhE5C,8BAqEE,iBAvEgB,CAElB,8CAwEG,4BAA6B,CAC7B,WA3Ee,CA4Ef,cAAe,CACf,aAAc,CACd,6BA9Ee,CA+Ef,uCAAwC,CACxC,yCAA0C,CAC1C,0CAA2C,CA/E9C,6BAoFE,iBAAkB,CAClB,2EAA6E,CAC7E,SAAU,CAtFZ,8BA0FE,kBAAmB,CACnB,yCAA0C,CAC1C,SAAU\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$arrow-width: 10px;\\n\\n.popover {\\n\\tz-index: 100000;\\n\\tdisplay: block !important;\\n\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t&__inner {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground: var(--color-main-background);\\n\\t}\\n\\n\\t&__arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: $arrow-width;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n\\n\\t&[x-placement^='top'] {\\n\\t\\tmargin-bottom: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='bottom'] {\\n\\t\\tmargin-top: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='right'] {\\n\\t\\tmargin-left: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='left'] {\\n\\t\\tmargin-right: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!./index.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { VTooltip } from 'v-tooltip'\nimport './index.scss'\n\n// force scope the tooltip and use .vue-tooltip\n// instead of .tooltip to avoid server compatibility\n// issues and the use of !important\nVTooltip.options.defaultTemplate = `<div class=\"vue-tooltip\" role=\"tooltip\" data-v-${SCOPE_VERSION}><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>`\nVTooltip.options.defaultHtml = false\n\nexport default VTooltip\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vue-tooltip[data-v-6b494fc]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-6b494fc][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-6b494fc][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-6b494fc][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-6b494fc][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-6b494fc][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-6b494fc][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-6b494fc] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-6b494fc] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./index.scss\"],\"names\":[],\"mappings\":\"AAeA,6BACC,iBAAkB,CAClB,cAAe,CACf,UAAW,CACX,SAAU,CACV,aAAc,CACd,QAAS,CAET,eAAgB,CAChB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAEhB,eAAgB,CAChB,sDAAuD,CAhBxD,gEAqBG,QAAS,CACT,YAAa,CACb,eAAgB,CAChB,6BA1Be,CA2Bf,8BAA+B,CAC/B,+BAAgC,CAChC,6BAA8B,CA3BjC,mEAkCG,KAAM,CACN,YAAa,CACb,eAAgB,CAChB,6BAvCe,CAwCf,4BAA6B,CAC7B,8BAA+B,CAC/B,6BAA8B,CAxCjC,kEA+CG,UAAW,CACX,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,4BAA6B,CAC7B,+BAAgC,CAChC,6BAA8B,CArDjC,iEA4DG,SAAU,CACV,cAAe,CACf,aAAc,CACd,6BAjEe,CAkEf,4BAA6B,CAC7B,8BAA+B,CAC/B,+BAAgC,CAlEnC,iDAwEE,iBAAkB,CAClB,wCAAyC,CACzC,SAAU,CA1EZ,kDA6EE,kBAAmB,CACnB,uBAAwB,CACxB,SAAU,CA/EZ,4CAoFE,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,4BAA6B,CAC7B,kCAAmC,CACnC,6CAA8C,CAzFhD,4CA8FE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,QAAS,CACT,kBAAmB,CACnB,yCAA0C\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.vue-tooltip[data-v-#{$scope_version}] {\\n\\tposition: absolute;\\n\\tz-index: 100000;\\n\\tright: auto;\\n\\tleft: auto;\\n\\tdisplay: block;\\n\\tmargin: 0;\\n\\t/* default to top */\\n\\tmargin-top: -3px;\\n\\tpadding: 10px 0;\\n\\ttext-align: left;\\n\\ttext-align: start;\\n\\topacity: 0;\\n\\tline-height: 1.6;\\n\\n\\tline-break: auto;\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t// TOP\\n\\t&[x-placement^='top'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// BOTTOM\\n\\t&[x-placement^='bottom'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// RIGHT\\n\\t&[x-placement^='right'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// LEFT\\n\\t&[x-placement^='left'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// HIDDEN / SHOWN\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\topacity: 0;\\n\\t}\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity .15s;\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// CONTENT\\n\\t.tooltip-inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.tooltip-arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = require(\"core-js/modules/es.array.map.js\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.array.concat.js\");","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VPopover',_vm._g(_vm._b({ref:\"popover\",attrs:{\"popover-base-class\":\"popover\",\"popover-wrapper-class\":\"popover__wrapper\",\"popover-arrow-class\":\"popover__arrow\",\"popover-inner-class\":\"popover__inner\"}},'VPopover',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"trigger\"),_vm._v(\" \"),_c('template',{slot:\"popover\"},[_vm._t(\"default\")],2)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<docs>\n\n### General description\n\nThis component is just a wrapper for the v-component plugin by Akryum,\nplease refer to this documentation for customization:\nhttps://github.com/Akryum/v-tooltip\n\nThis components has two slots:\n* 'trigger' which can be any html element and it will trigger the popover\nthis slot is optional since you can toggle the popover also by updating the\nopen prop on this component;\n\n* a default slot that is for the content of the popover.\n\n### Examples\n\nWith a `<button>` as a trigger:\n```vue\n<template>\n\t<Popover>\n\t\t<button slot=\"trigger\"> I am the trigger </button>\n\t\t<template>\n\t\t<h2>this is some content</h2>\n\t\t</template>\n\t</Popover>\n</template>\n```\n</docs>\n\n<template>\n\t<VPopover\n\t\tref=\"popover\"\n\t\tv-bind=\"$attrs\"\n\t\tpopover-base-class=\"popover\"\n\t\tpopover-wrapper-class=\"popover__wrapper\"\n\t\tpopover-arrow-class=\"popover__arrow\"\n\t\tpopover-inner-class=\"popover__inner\"\n\t\tv-on=\"$listeners\">\n\t\t<!-- This will be the popover target (for the events and position) -->\n\t\t<slot name=\"trigger\" />\n\t\t<!-- This will be the content of the popover -->\n\t\t<template slot=\"popover\">\n\t\t\t<slot />\n\t\t</template>\n\t</VPopover>\n</template>\n\n<script>\nimport { VPopover } from 'v-tooltip'\n\nexport default {\n\tname: 'Popover',\n\tcomponents: {\n\t\tVPopover,\n\t},\n\n\tmounted() {\n\t\tthis.$watch(\n\t\t\t() => {\n\t\t\t\t// required because v-tooltip doesn't provide events\n\t\t\t\t// and @show is too early\n\t\t\t\t// see https://github.com/Akryum/v-tooltip/issues/661\n\t\t\t\treturn this.$refs.popover.isOpen\n\t\t\t},\n\t\t\t(val) => {\n\t\t\t\tif (val) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually displayed.\n\t\t\t\t\t *\n\t\t\t\t\t * This is different from the 'show' and 'apply-show' which\n\t\t\t\t\t * run earlier than this where there is no guarantee that the\n\t\t\t\t\t * tooltip is already visible and in the DOM.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-show')\n\t\t\t\t} else {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually hidden.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-hide')\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n$arrow-width: 10px;\n\n.popover {\n\tz-index: 100000;\n\tdisplay: block !important;\n\n\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t&__inner {\n\t\tpadding: 0;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground: var(--color-main-background);\n\t}\n\n\t&__arrow {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: $arrow-width;\n\t\tborder-style: solid;\n\t\tborder-color: var(--color-main-background);\n\t}\n\n\t&[x-placement^='top'] {\n\t\tmargin-bottom: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\tbottom: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='bottom'] {\n\t\tmargin-top: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='right'] {\n\t\tmargin-left: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tleft: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width $arrow-width $arrow-width 0;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='left'] {\n\t\tmargin-right: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tright: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t}\n\t}\n\n\t&[aria-hidden='true'] {\n\t\tvisibility: hidden;\n\t\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\n\t\topacity: 0;\n\t}\n\n\t&[aria-hidden='false'] {\n\t\tvisibility: visible;\n\t\ttransition: opacity var(--animation-quick);\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","module.exports = require(\"@nextcloud/event-bus\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"@nextcloud/auth\");","/**\n * @copyright Copyright (c) 2019 Kristof Hamann, Paul Schwörer\n *\n * @author Kristof Hamann\n * @author Paul Schwörer\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\n\nexport const IsMobileState = new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\twatch: {\n\t\tisMobile(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\tthis.isMobile = document.documentElement.clientWidth < 1024\n\t\t},\n\t},\n})\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { IsMobileState } from '../../utils/IsMobileState'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\tmounted() {\n\t\tIsMobileState.$on('changed', this.onIsMobileChanged)\n\t\tthis.isMobile = IsMobileState.isMobile\n\t},\n\tbeforeDestroy() {\n\t\tIsMobileState.$off('changed', this.onIsMobileChanged)\n\t},\n\tmethods: {\n\t\tonIsMobileChanged(val) {\n\t\t\tthis.isMobile = val\n\t\t},\n\t},\n}\n","module.exports = require(\"@nextcloud/axios\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/web.url.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"v-click-outside\");","module.exports = require(\"striptags\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mention-bubble--primary .mention-bubble__content[data-v-724f9d58]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-724f9d58]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-724f9d58]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-724f9d58]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-724f9d58]{color:inherit;background-size:cover}.mention-bubble__title[data-v-724f9d58]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-724f9d58]::before{content:attr(title)}.mention-bubble__select[data-v-724f9d58]{position:absolute;z-index:-1;left:-1000px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./MentionBubble.vue\"],\"names\":[],\"mappings\":\"AAsGC,mEACC,+BAAgC,CAChC,6CAA8C,CAC9C,0CAGA,eAXsB,CAatB,WAAwC,CACxC,0BAA2B,CAC3B,mBAAoB,CACpB,kBAAmB,CACnB,0CAGA,mBAAoB,CACpB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,WAzBkB,CA0BlB,wBAAyB,CACzB,gBAAiB,CACjB,iBAAkC,CAClC,gBA3BkB,CA4BlB,kBAAiC,CACjC,6CAA8C,CAC9C,uCAGA,iBAAkB,CAClB,UAjCuD,CAkCvD,WAlCuD,CAmCvD,iBAAsC,CACtC,+CAAgD,CAChD,2BAA4B,CAC5B,0BAA2B,CAC3B,oBAA0D,CAE1D,oDACC,aAAc,CACd,qBAAsB,CACtB,wCAID,eAAgB,CAChB,eAlDkB,CAmDlB,kBAAmB,CACnB,sBAAuB,CAJvB,gDAOC,mBAAoB,CACpB,yCAKD,iBAAkB,CAClB,UAAW,CACX,YAAa\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: $bubble-height / 2;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: $bubble-avatar-size / 2;\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\thasStatus: false,\n\t\t\tuserStatus: {\n\t\t\t\tstatus: null,\n\t\t\t\tmessage: null,\n\t\t\t\ticon: null,\n\t\t\t},\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Fetches the user-status from the server\n\t\t * @param {String} userId UserId of the user to fetch the status for\n\t\t *\n\t\t * @returns {Promise<void>}\n\t\t */\n\t\tasync fetchUserStatus(userId) {\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tif (!Object.prototype.hasOwnProperty.call(capabilities, 'user_status') || !capabilities.user_status.enabled) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// User status endpoint is not available for guests.\n\t\t\tif (!getCurrentUser()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.get(generateOcsUrl('apps/user_status/api/v1', 2) + `statuses/${encodeURIComponent(userId)}`)\n\t\t\t\tconst {\n\t\t\t\t\tstatus,\n\t\t\t\t\tmessage,\n\t\t\t\t\ticon,\n\t\t\t\t} = data.ocs.data\n\t\t\t\tthis.userStatus.status = status\n\t\t\t\tthis.userStatus.message = message || ''\n\t\t\t\tthis.userStatus.icon = icon || ''\n\t\t\t\tthis.hasStatus = true\n\t\t\t} catch (e) {\n\t\t\t\tif (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n\t\t\t\t\t// User just has no status set, so don't log it\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t},\n\t},\n}\n","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"linkifyjs/string\");","module.exports = require(\"core-js/modules/es.array.from.js\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nbutton.menuitem[data-v-febed9b6] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-febed9b6] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-febed9b6]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-febed9b6] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-febed9b6] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenuItem.vue\"],\"names\":[],\"mappings\":\";AAmLA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,4CAAA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<li class=\\\"popover__menuitem\\\">\\n\\t\\t<!-- If item.href is set, a link will be directly used -->\\n\\t\\t<a v-if=\\\"item.href\\\"\\n\\t\\t\\t:href=\\\"(item.href) ? item.href : '#' \\\"\\n\\t\\t\\t:target=\\\"(item.target) ? item.target : '' \\\"\\n\\t\\t\\t:download=\\\"item.download\\\"\\n\\t\\t\\tclass=\\\"focusable\\\"\\n\\t\\t\\trel=\\\"noreferrer noopener\\\"\\n\\t\\t\\t@click=\\\"action\\\">\\n\\t\\t\\t<span v-if=\\\"!iconIsUrl\\\" :class=\\\"item.icon\\\" />\\n\\t\\t\\t<img v-else :src=\\\"item.icon\\\">\\n\\t\\t\\t<p v-if=\\\"item.text && item.longtext\\\">\\n\\t\\t\\t\\t<strong class=\\\"menuitem-text\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\\\"menuitem-text-detail\\\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\\\"item.text\\\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\\\"item.longtext\\\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</a>\\n\\n\\t\\t<!-- If item.input is set instead, an put will be used -->\\n\\t\\t<span v-else-if=\\\"item.input\\\" class=\\\"menuitem\\\" :class=\\\"{active: item.active}\\\">\\n\\t\\t\\t<!-- does not show if input is checkbox -->\\n\\t\\t\\t<span v-if=\\\"item.input !== 'checkbox'\\\" :class=\\\"item.icon\\\" />\\n\\n\\t\\t\\t<!-- only shows if input is text -->\\n\\t\\t\\t<form v-if=\\\"item.input === 'text'\\\"\\n\\t\\t\\t\\t:class=\\\"item.input\\\"\\n\\t\\t\\t\\t@submit.prevent=\\\"item.action\\\">\\n\\t\\t\\t\\t<input :type=\\\"item.input\\\"\\n\\t\\t\\t\\t\\t:value=\\\"item.value\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"item.text\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<input type=\\\"submit\\\" value=\\\"\\\" class=\\\"icon-confirm\\\">\\n\\t\\t\\t</form>\\n\\n\\t\\t\\t<!-- checkbox -->\\n\\t\\t\\t<template v-else>\\n\\t\\t\\t\\t<!-- eslint-disable-next-line -->\\n\\t\\t\\t\\t<input :id=\\\"key\\\" v-model=\\\"item.model\\\"\\n\\t\\t\\t\\t\\t:type=\\\"item.input\\\"\\n\\t\\t\\t\\t\\t:class=\\\"item.input\\\"\\n\\t\\t\\t\\t\\t@change=\\\"item.action\\\">\\n\\t\\t\\t\\t<label :for=\\\"key\\\" @click.stop.prevent=\\\"item.action\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</template>\\n\\t\\t</span>\\n\\n\\t\\t<!-- If item.action is set instead, a button will be used -->\\n\\t\\t<button v-else-if=\\\"item.action\\\"\\n\\t\\t\\tclass=\\\"menuitem focusable\\\"\\n\\t\\t\\t:class=\\\"{active: item.active}\\\"\\n\\t\\t\\t:disabled=\\\"item.disabled\\\"\\n\\t\\t\\t@click.stop.prevent=\\\"item.action\\\">\\n\\t\\t\\t<span :class=\\\"item.icon\\\" />\\n\\t\\t\\t<p v-if=\\\"item.text && item.longtext\\\">\\n\\t\\t\\t\\t<strong class=\\\"menuitem-text\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\\\"menuitem-text-detail\\\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\\\"item.text\\\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\\\"item.longtext\\\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</button>\\n\\n\\t\\t<!-- If item.longtext is set AND the item does not have an action -->\\n\\t\\t<span v-else class=\\\"menuitem\\\" :class=\\\"{active: item.active}\\\">\\n\\t\\t\\t<span :class=\\\"item.icon\\\" />\\n\\t\\t\\t<p v-if=\\\"item.text && item.longtext\\\">\\n\\t\\t\\t\\t<strong class=\\\"menuitem-text\\\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\\\"menuitem-text-detail\\\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\\\"item.text\\\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\\\"item.longtext\\\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</span>\\n\\t</li>\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: 'PopoverMenuItem',\\n\\tprops: {\\n\\t\\titem: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t\\tdefault: () => {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tkey: 'nextcloud-link',\\n\\t\\t\\t\\t\\thref: 'https://nextcloud.com',\\n\\t\\t\\t\\t\\ticon: 'icon-links',\\n\\t\\t\\t\\t\\ttext: 'Nextcloud',\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\t// check the input types\\n\\t\\t\\t// TODO: add more validation of types\\n\\t\\t\\tvalidator: item => {\\n\\t\\t\\t\\t// TODO: support radio\\n\\t\\t\\t\\tif (item.input) {\\n\\t\\t\\t\\t\\treturn ['text', 'checkbox'].indexOf(item.input) !== -1\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t},\\n\\t\\t},\\n\\t},\\n\\tcomputed: {\\n\\t\\t// random key for inputs binding if not provided\\n\\t\\tkey() {\\n\\t\\t\\treturn this.item.key\\n\\t\\t\\t\\t? this.item.key\\n\\t\\t\\t\\t: Math.round(Math.random() * 16 * 1000000).toString(16)\\n\\t\\t},\\n\\t\\ticonIsUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// eslint-disable-next-line no-new\\n\\t\\t\\t\\tnew URL(this.item.icon)\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t} catch (_) {\\n\\t\\t\\t\\treturn false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\t// allow us to use both link and an action on `a`\\n\\t\\t// we still need to make sure item.action exists\\n\\t\\taction(event) {\\n\\t\\t\\tif (this.item.action) {\\n\\t\\t\\t\\tthis.item.action(event)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\n\\tbutton.menuitem {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\tbutton.menuitem * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\tbutton.menuitem:disabled {\\n\\t\\topacity: 0.5 !important;\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\tbutton.menuitem:disabled * {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.menuitem.active {\\n\\t\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\t\\tborder-radius: 0;\\n\\t}\\n</style>\\n\\n<style lang=\\\"scss\\\" scoped>\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"li[data-v-febed9b6]{display:flex;flex:0 0 auto}li.hidden[data-v-febed9b6]{display:none}li>button[data-v-febed9b6],li>a[data-v-febed9b6],li>.menuitem[data-v-febed9b6]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-febed9b6],li>button span[class*=' icon-'][data-v-febed9b6],li>button[class^='icon-'][data-v-febed9b6],li>button[class*=' icon-'][data-v-febed9b6],li>a span[class^='icon-'][data-v-febed9b6],li>a span[class*=' icon-'][data-v-febed9b6],li>a[class^='icon-'][data-v-febed9b6],li>a[class*=' icon-'][data-v-febed9b6],li>.menuitem span[class^='icon-'][data-v-febed9b6],li>.menuitem span[class*=' icon-'][data-v-febed9b6],li>.menuitem[class^='icon-'][data-v-febed9b6],li>.menuitem[class*=' icon-'][data-v-febed9b6]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-febed9b6],li>button span[class*=' icon-'][data-v-febed9b6],li>a span[class^='icon-'][data-v-febed9b6],li>a span[class*=' icon-'][data-v-febed9b6],li>.menuitem span[class^='icon-'][data-v-febed9b6],li>.menuitem span[class*=' icon-'][data-v-febed9b6]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-febed9b6]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-febed9b6],li>button[class*=' icon-'][data-v-febed9b6],li>a[class^='icon-'][data-v-febed9b6],li>a[class*=' icon-'][data-v-febed9b6],li>.menuitem[class^='icon-'][data-v-febed9b6],li>.menuitem[class*=' icon-'][data-v-febed9b6]{padding:0 14px 0 44px}li>button[data-v-febed9b6]:not(:disabled):hover,li>button[data-v-febed9b6]:not(:disabled):focus,li>button:not(:disabled).active[data-v-febed9b6],li>a[data-v-febed9b6]:not(:disabled):hover,li>a[data-v-febed9b6]:not(:disabled):focus,li>a:not(:disabled).active[data-v-febed9b6],li>.menuitem[data-v-febed9b6]:not(:disabled):hover,li>.menuitem[data-v-febed9b6]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-febed9b6]{opacity:1 !important}li>button.action[data-v-febed9b6],li>a.action[data-v-febed9b6],li>.menuitem.action[data-v-febed9b6]{padding:inherit !important}li>button>span[data-v-febed9b6],li>a>span[data-v-febed9b6],li>.menuitem>span[data-v-febed9b6]{cursor:pointer;white-space:nowrap}li>button>p[data-v-febed9b6],li>a>p[data-v-febed9b6],li>.menuitem>p[data-v-febed9b6]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal;overflow:hidden;text-overflow:ellipsis}li>button>select[data-v-febed9b6],li>a>select[data-v-febed9b6],li>.menuitem>select[data-v-febed9b6]{margin:0;margin-left:6px}li>button[data-v-febed9b6]:not(:empty),li>a[data-v-febed9b6]:not(:empty),li>.menuitem[data-v-febed9b6]:not(:empty){padding-right:14px !important}li>button>img[data-v-febed9b6],li>a>img[data-v-febed9b6],li>.menuitem>img[data-v-febed9b6]{width:16px;padding:14px}li>button>input.radio+label[data-v-febed9b6],li>button>input.checkbox+label[data-v-febed9b6],li>a>input.radio+label[data-v-febed9b6],li>a>input.checkbox+label[data-v-febed9b6],li>.menuitem>input.radio+label[data-v-febed9b6],li>.menuitem>input.checkbox+label[data-v-febed9b6]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-febed9b6]::before,li>a>input.checkbox+label[data-v-febed9b6]::before,li>.menuitem>input.checkbox+label[data-v-febed9b6]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-febed9b6]::before,li>a>input.radio+label[data-v-febed9b6]::before,li>.menuitem>input.radio+label[data-v-febed9b6]::before{margin:-2px 12px 0}li>button>input[data-v-febed9b6]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-febed9b6]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-febed9b6]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-febed9b6],li>a form[data-v-febed9b6],li>.menuitem form[data-v-febed9b6]{display:flex;flex:1 1 auto}li>button form[data-v-febed9b6]:not(:first-child),li>a form[data-v-febed9b6]:not(:first-child),li>.menuitem form[data-v-febed9b6]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-febed9b6],li>button>span[style*='display:none']+form[data-v-febed9b6],li>a>span.hidden+form[data-v-febed9b6],li>a>span[style*='display:none']+form[data-v-febed9b6],li>.menuitem>span.hidden+form[data-v-febed9b6],li>.menuitem>span[style*='display:none']+form[data-v-febed9b6]{margin-left:0}li>button input[data-v-febed9b6],li>a input[data-v-febed9b6],li>.menuitem input[data-v-febed9b6]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-febed9b6]:not(:first-child),li>a input[data-v-febed9b6]:not(:first-child),li>.menuitem input[data-v-febed9b6]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-febed9b6]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-febed9b6],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-febed9b6]{margin-bottom:12px}li>button[data-v-febed9b6]{padding:0}li>button span[data-v-febed9b6]{opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenuItem.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AA4MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC/LmB,CDgMnB,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,YAAa,CACb,sBAAuB,CACvB,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBAAmB,CACnB,eAAgB,CAChB,UAAW,CACX,4BAA6B,CAC7B,kBAAmB,CACnB,UC3LiB,CDiKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBCnNa,CD+KhB,+RA2CG,wBC9NkB,CDmLrB,iqCAoDK,gBCvOgB,CDmLrB,iQA2DG,qBC9OkB,CDmLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAGnB,eAAgB,CAChB,sBAAuB,CAvF1B,oGA4FG,QAAS,CACT,eAAgB,CA7FnB,mHAkGG,6BAAsC,CAlGzC,2FAwGG,UCvRa,CDwRb,YCpR6C,CD2KhD,mRA+GG,oBAAqB,CACrB,UAAW,CAhHd,sKAmHG,kBAAmB,CAnHtB,6JAsHG,kBAAmB,CAtHtB,4QAyHG,WAAY,CAzHf,8FA8HG,YAAa,CACb,aAAc,CA/HjB,oJAmII,eAAgB,CAnIpB,oTAyIG,aAAc,CAzIjB,iGA6IG,cChUkB,CDiUlB,eAAY,CACZ,YAAa,CACb,aAAc,CAhJjB,uJAmJI,eAAgB,CAnJpB,+gBA8JK,eAA8B,CA9JnC,ygBAqKK,kBAAiC,CArKtC,2BA2KE,SAAU,CA3KZ,gCA6KG,SC7Ua\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"ul[data-v-4dae360a]{display:flex;flex-direction:column}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenu.vue\"],\"names\":[],\"mappings\":\"AA0DA,oBACC,YAAa,CACb,qBAAsB\",\"sourcesContent\":[\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nul {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = require(\"core-js/modules/es.array.join.js\");","module.exports = require(\"regenerator-runtime/runtime.js\");","module.exports = require(\"core-js/modules/es.promise.js\");","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"label\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'MentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn this.id.indexOf(' ') === -1\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: $bubble-height / 2;\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: $bubble-avatar-size / 2;\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put label in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=style&index=0&id=724f9d58&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"mention-bubble\",class:{'mention-bubble--primary': _vm.primary},attrs:{\"contenteditable\":\"false\"}},[_c('span',{staticClass:\"mention-bubble__wrapper\"},[_c('span',{staticClass:\"mention-bubble__content\"},[_c('span',{staticClass:\"mention-bubble__icon\",class:[_vm.icon, (\"mention-bubble__icon--\" + (_vm.avatarUrl ? 'with-avatar' : ''))],style:(_vm.avatarUrl ? { backgroundImage: (\"url(\" + _vm.avatarUrl + \")\") } : null)}),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__title\",attrs:{\"role\":\"heading\",\"title\":_vm.label}})]),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__select\",attrs:{\"role\":\"none\"}},[_vm._v(_vm._s(_vm.mentionText))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport escapeHtml from 'escape-html'\nimport linkifyStr from 'linkifyjs/string'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\nimport MentionBubble from '../../components/RichContenteditable/MentionBubble'\n\n// Beginning or whitespace. Non-capturing group\nconst MENTION_START = '(?:^|\\\\s)'\n// Anything that is not text or end-of-line. Non-capturing group\nconst MENTION_END = '(?:[^a-z]|$)'\nexport const USERID_REGEX = new RegExp(`${MENTION_START}(@[a-zA-Z0-9_.@\\\\-']+)(${MENTION_END})`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}(@\"[a-zA-Z0-9 _.@\\\\-']+\")(${MENTION_END})`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @returns {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn linkifyStr(part, {\n\t\t\t\t\t\t\tdefaultProtocol: 'https',\n\t\t\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\t\t\tclassName: 'external',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\trel: 'noopener noreferrer',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the \" and @\n\t\t\t\t\tconst id = part.replace(/[@\"]/gi, '')\n\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn ' ' + this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @returns {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content.replace(/<br>/gmi, '\\n')\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @returns {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return `@${value}`\n\t\t\t\treturn value.indexOf(' ') === -1\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, MentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {Object} propsData the props to pass to the component\n\t\t * @param {Object} component the component to render\n\t\t * @returns {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n","module.exports = require(\"escape-html\");","module.exports = require(\"core-js/modules/es.string.starts-with.js\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Originally taken from https://github.com/nextcloud/server/blob/master/core/js/placeholder.js\n */\n\nfunction Color(r, g, b) {\n\tthis.r = r\n\tthis.g = g\n\tthis.b = b\n}\n\nfunction stepCalc(steps, ends) {\n\tconst step = new Array(3)\n\tstep[0] = (ends[1].r - ends[0].r) / steps\n\tstep[1] = (ends[1].g - ends[0].g) / steps\n\tstep[2] = (ends[1].b - ends[0].b) / steps\n\treturn step\n}\n\nfunction mixPalette(steps, color1, color2) {\n\tconst palette = []\n\tpalette.push(color1)\n\tconst step = stepCalc(steps, [color1, color2])\n\tfor (let i = 1; i < steps; i++) {\n\t\tconst r = parseInt(color1.r + step[0] * i, 10)\n\t\tconst g = parseInt(color1.g + step[1] * i, 10)\n\t\tconst b = parseInt(color1.b + step[2] * i, 10)\n\t\tpalette.push(new Color(r, g, b))\n\t}\n\treturn palette\n}\n\n/**\n * Generate colors from the official nextcloud color\n * You can provide how many colors you want (multiplied by 3)\n * if step = 6\n * 3 colors * 6 will result in 18 generated colors\n *\n * @param {number} [steps=6] Number of steps to go from a color to another\n * @returns {Object[]}\n */\nfunction GenColors(steps) {\n\tif (!steps) {\n\t\tsteps = 6\n\t}\n\n\tconst red = new Color(182, 70, 157)\n\tconst yellow = new Color(221, 203, 85)\n\tconst blue = new Color(0, 130, 201) // Nextcloud blue\n\n\tconst palette1 = mixPalette(steps, red, yellow)\n\tconst palette2 = mixPalette(steps, yellow, blue)\n\tconst palette3 = mixPalette(steps, blue, red)\n\n\treturn palette1.concat(palette2).concat(palette3)\n}\n\nexport default GenColors\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../../fonts/iconfont-vue-6b494fc.eot\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"../../fonts/iconfont-vue-6b494fc.woff\";\nimport ___CSS_LOADER_URL_IMPORT_2___ from \"../../fonts/iconfont-vue-6b494fc.ttf\";\nimport ___CSS_LOADER_URL_IMPORT_3___ from \"../../fonts/iconfont-vue-6b494fc.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:\\\"iconfont-vue-6b494fc\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format(\\\"svg\\\")}.icon[data-v-1bfc7bfe]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.arrow-left[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.arrow-right-double[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.arrow-right[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.breadcrumb[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.checkmark[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.close[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.confirm[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.info[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.menu[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.more[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.pause[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.play[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.triangle-s[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-away[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-dnd[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-invisible[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.icon.user-status-online[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";content:\\\"\\\"}.avatardiv[data-v-1bfc7bfe]{position:relative;display:inline-block}.avatardiv--unknown[data-v-1bfc7bfe]{position:relative;background-color:var(--color-text-maxcontrast)}.avatardiv[data-v-1bfc7bfe]:not(.avatardiv--unknown){background-color:#fff !important;box-shadow:0 0 5px rgba(0,0,0,0.05) inset}body.theme--dark .avatardiv[data-v-1bfc7bfe]:not(.avatardiv--unknown){background-color:#000 !important}.avatardiv--with-menu[data-v-1bfc7bfe]{cursor:pointer}.avatardiv--with-menu[data-v-1bfc7bfe] .trigger{position:absolute;top:0;left:0}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe]{display:flex;cursor:pointer;opacity:0;background:none;font-size:18px;align-items:center;justify-content:center}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe]::before{display:block}.avatardiv--with-menu:focus .icon-more[data-v-1bfc7bfe],.avatardiv--with-menu:hover .icon-more[data-v-1bfc7bfe]{opacity:1}.avatardiv--with-menu:focus img[data-v-1bfc7bfe],.avatardiv--with-menu:hover img[data-v-1bfc7bfe]{opacity:0.3}.avatardiv--with-menu .icon-more[data-v-1bfc7bfe],.avatardiv--with-menu img[data-v-1bfc7bfe]{transition:opacity var(--animation-quick)}.avatardiv>.unknown[data-v-1bfc7bfe]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal;color:var(--color-main-background)}.avatardiv img[data-v-1bfc7bfe]{width:100%;height:100%;object-fit:cover}.avatardiv .avatardiv__status[data-v-1bfc7bfe]{position:absolute;top:22px;left:22px;width:10px;height:10px;border:1px solid rgba(255,255,255,0.5);background-clip:content-box}.avatardiv .avatardiv__status--positive[data-v-1bfc7bfe]{border-radius:50%;background-color:var(--color-success)}.avatardiv .avatardiv__status--negative[data-v-1bfc7bfe]{background-color:var(--color-error)}.avatardiv .avatardiv__status--neutral[data-v-1bfc7bfe]{border:none;background-color:transparent !important}.avatardiv .avatardiv__status--neutral svg[data-v-1bfc7bfe]{position:absolute;top:-3px;left:-2px}.avatardiv .avatardiv__status--neutral svg path[data-v-1bfc7bfe]{fill:#aaa}.avatardiv .avatardiv__user-status[data-v-1bfc7bfe]{position:absolute;right:-4px;bottom:-4px;height:18px;width:18px;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-1bfc7bfe]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-1bfc7bfe]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-1bfc7bfe]{color:#49b382}.avatardiv .avatardiv__user-status--online[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--dnd[data-v-1bfc7bfe]{background-color:#ffffff;color:#ed484c}.avatardiv .avatardiv__user-status--dnd[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--away[data-v-1bfc7bfe]{color:#f4a331}.avatardiv .avatardiv__user-status--away[data-v-1bfc7bfe]:before{font-family:\\\"iconfont-vue-6b494fc\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--icon[data-v-1bfc7bfe]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-1bfc7bfe]{position:relative;display:inline-block}.avatar-class-icon[data-v-1bfc7bfe]{border-radius:50%;background-color:var(--color-background-darker);height:100%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../fonts/scss/iconfont-vue.scss\",\"webpack://./Avatar.vue\"],\"names\":[],\"mappings\":\"AA2FE,WACC,kCAAmC,CACnC,2CAAuC,CACvC,+OAGmD,CAMpD,uBACE,iBAAkB,CAClB,eAAgB,CAFlB,gDAMM,kCAAmC,CACnC,WA5Ge,CAAO,yCA0GL,kCACJ,CAAsB,WA1G3B,CAAA,iDAyGU,kCACL,CAAA,WAzGG,CAAA,0CAwGL,kCACE,CAAA,WAxGJ,CAAA,yCAuGC,kCACG,CAAA,WACN,CAxGC,wCAsGC,kCACI,CAAA,WACb,CAAO,oCAFF,kCACQ,CAAA,WACb,CAAA,sCAFO,kCACM,CAAA,WACb,CAAA,mCAFI,kCACS,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,oCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WAAsB,CACnC,yCAPD,kCAMc,CAAA,WAAA,CAAsB,+CANpC,kCAMc,CAAA,WAAA,CAAA,8CANd,kCAMc,CAAA,WAAA,CAAA,oDANd,kCAMc,CAAA,WAAA,CAAA,iDANd,kCAMc,CAAA,WAAA,CAAA,4BACb,iBC0eE,CACT,oBACA,CAAA,qCAEA,iBAAU,CACT,8CACkB,CAAA,qDAGZ,gCAEN,CAAA,yCAKoB,CAAA,sEAPd,gCAKL,CAAA,uCACA,cAAA,CAAA,iDAMD,iBAAiB,CAChB,KAAA,CAAA,MAAU,CAAA,kDAHX,YAOA,CAAA,cACU,CAAA,SACH,CAAE,eACD,CAAE,cACG,CAAA,kBAEZ,CAAA,sBACA,CAAA,yDAPD,kCDjnBD,CAAA,iBAAsB,CAkFnB,eAAY,CAAA,WACZ,CAAA,0DC8hBF,aAAU,CAAA,gHAPV,SAuBC,CAAA,kGAvBD,WAAW,CAAA,6FAAX,yCAgCqB,CAAA,qCAnDvB,iBAuDG,CAAQ,KACT,CAAA,MAAU,CAAA,aAEV,CAAA,UACA,CAAA,iBACO,CAAI,kBACO,CAClB,kCACO,CAAA,gCAAA,UA/DT,CAAA,WAoEE,CAAA,gBACQ,CAAA,+CAKT,iBAAA,CAAkB,QACjB,CAAQ,SAAU,CAClB,UACA,CAAA,WACA,CAAA,sCAEkB,CAAA,2BAClB,CAAA,yDACC,iBAAA,CAAU,qCAEQ,CAAA,yDAElB,mCACgB,CAAE,wDAElB,WAAA,CAAA,uCAEkB,CAAA,4DAFlB,iBAGA,CAAG,QACF,CAAQ,SAAU,CAClB,iEALD,SAAS,CAGT,oDAWF,iBAAA,CAAuB,UACZ,CAAA,WACV,CAAA,WACA,CAAA,UACA,CAAA,gBACO,CAAA,kCAEI,CAAA,6CACO,CAAA,6CACA,CAAA,iBAAA,CAA4B,gEAT/C,0CAagB,CAAA,8CACI,CAAA,iEAdpB,uCAiBgB,CAAA,2CACI,CAAA,4DAGlB,aAAA,CAAA,mEAAA,kCDntBF,CAAA,iBAAA,CAAsB,eAkFP,CAAA,WACZ,CAAA,yDCooBD,wBAEA,CAAA,aAAkB,CAAA,gEAFlB,kCDvtBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DCyoBD,aAAA,CAAA,iEAAA,kCD5tBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC6oBD,WAAA,CAAA,4BAEA,CAAA,iDA3IO,iBA+IT,CAAA,oBACW,CAAQ,oCACT,iBACT,CAAA,+CAKiB,CAAA,WAAA\",\"sourcesContent\":[\"$__iconfont__data: map-merge(if(global_variable_exists('__iconfont__data'), $__iconfont__data, ()), (\\n\\t\\\"iconfont-vue-6b494fc\\\": (\\n\\t\\t\\\"arrow-left-double\\\": \\\"\\\\ea01\\\",\\n\\t\\t\\\"arrow-left\\\": \\\"\\\\ea02\\\",\\n\\t\\t\\\"arrow-right-double\\\": \\\"\\\\ea03\\\",\\n\\t\\t\\\"arrow-right\\\": \\\"\\\\ea04\\\",\\n\\t\\t\\\"breadcrumb\\\": \\\"\\\\ea05\\\",\\n\\t\\t\\\"checkmark\\\": \\\"\\\\ea06\\\",\\n\\t\\t\\\"close\\\": \\\"\\\\ea07\\\",\\n\\t\\t\\\"confirm\\\": \\\"\\\\ea08\\\",\\n\\t\\t\\\"info\\\": \\\"\\\\ea09\\\",\\n\\t\\t\\\"menu\\\": \\\"\\\\ea0a\\\",\\n\\t\\t\\\"more\\\": \\\"\\\\ea0b\\\",\\n\\t\\t\\\"pause\\\": \\\"\\\\ea0c\\\",\\n\\t\\t\\\"play\\\": \\\"\\\\ea0d\\\",\\n\\t\\t\\\"triangle-s\\\": \\\"\\\\ea0e\\\",\\n\\t\\t\\\"user-status-away\\\": \\\"\\\\ea0f\\\",\\n\\t\\t\\\"user-status-dnd\\\": \\\"\\\\ea10\\\",\\n\\t\\t\\\"user-status-invisible\\\": \\\"\\\\ea11\\\",\\n\\t\\t\\\"user-status-online\\\": \\\"\\\\ea12\\\"\\n\\t)\\n));\\n\\n\\n$create-font-face: true !default; // should the @font-face tag get created?\\n\\n// should there be a custom class for each icon? will be .filename\\n$create-icon-classes: true !default; \\n\\n// what is the common class name that icons share? in this case icons need to have .icon.filename in their classes\\n// this requires you to have 2 classes on each icon html element, but reduced redeclaration of the font family\\n// for each icon\\n$icon-common-class: 'icon' !default;\\n\\n// if you whish to prefix your filenames, here you can do so.\\n// if this string stays empty, your classes will use the filename, for example\\n// an icon called star.svg will result in a class called .star\\n// if you use the prefix to be 'icon-' it would result in .icon-star\\n$icon-prefix: '' !default; \\n\\n// helper function to get the correct font group\\n@function iconfont-group($group: null) {\\n @if (null == $group) {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n @if (false == map-has-key($__iconfont__data, $group)) {\\n @warn 'Undefined Iconfont Family!';\\n @return ();\\n }\\n @return map-get($__iconfont__data, $group);\\n}\\n\\n// helper function to get the correct icon of a group\\n@function iconfont-item($name) {\\n $slash: str-index($name, '/');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($name, 0, $slash - 1);\\n $name: str-slice($name, $slash + 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n $group: iconfont-group($group);\\n @if (false == map-has-key($group, $name)) {\\n @warn 'Undefined Iconfont Glyph!';\\n @return '';\\n }\\n @return map-get($group, $name);\\n}\\n\\n// complete mixing to include the icon\\n// usage:\\n// .my_icon{ @include iconfont('star') }\\n@mixin iconfont($icon) {\\n $slash: str-index($icon, '/');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($icon, 0, $slash - 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n &:before {\\n font-family: $group;\\n font-style: normal;\\n font-weight: 400;\\n content: iconfont-item($icon);\\n }\\n}\\n\\n// creates the font face tag if the variable is set to true (default)\\n@if $create-font-face == true {\\n @font-face {\\n font-family: \\\"iconfont-vue-6b494fc\\\";\\n src: url('../iconfont-vue-6b494fc.eot'); /* IE9 Compat Modes */\\n src: url('../iconfont-vue-6b494fc.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\\n url('../iconfont-vue-6b494fc.woff') format('woff'), /* Pretty Modern Browsers */\\n url('../iconfont-vue-6b494fc.ttf') format('truetype'), /* Safari, Android, iOS */\\n url('../iconfont-vue-6b494fc.svg') format('svg'); /* Legacy iOS */\\n }\\n}\\n\\n// creates icon classes for each individual loaded svg (default)\\n@if $create-icon-classes == true {\\n .#{$icon-common-class} {\\n font-style: normal;\\n font-weight: 400;\\n\\n @each $icon, $content in map-get($__iconfont__data, \\\"iconfont-vue-6b494fc\\\") {\\n &.#{$icon-prefix}#{$icon}:before {\\n font-family: \\\"iconfont-vue-6b494fc\\\";\\n content: iconfont-item(\\\"iconfont-vue-6b494fc/#{$icon}\\\");\\n }\\n }\\n }\\n}\\n\",\"$scope_version:\\\"6b494fc\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n@import '../../fonts/scss/iconfont-vue';\\n\\n.avatardiv {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t&--unknown {\\n\\t\\tposition: relative;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&:not(&--unknown) {\\n\\t\\t// White background for avatars with transparency\\n\\t\\tbackground-color: #fff !important;\\n\\t\\tbody.theme--dark & {\\n\\t\\t\\t// And black background in dark mode, as it shines through on hover of the menu\\n\\t\\t\\tbackground-color: #000 !important;\\n\\t\\t}\\n\\t\\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\\n\\t}\\n\\n\\t&--with-menu {\\n\\t\\tcursor: pointer;\\n\\t\\t::v-deep .trigger {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t}\\n\\t\\t.icon-more {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\tbackground: none;\\n\\t\\t\\tfont-size: 18px;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t@include iconfont('more');\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\t.icon-more {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t\\timg {\\n\\t\\t\\t\\topacity: 0.3;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.icon-more,\\n\\t\\timg {\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t}\\n\\t}\\n\\n\\t> .unknown {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t\\tfont-weight: normal;\\n\\t\\tcolor: var(--color-main-background);\\n\\t}\\n\\n\\timg {\\n\\t\\t// Cover entire area\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\t// Keep ratio\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t.avatardiv__status {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 22px;\\n\\t\\tleft: 22px;\\n\\t\\twidth: 10px;\\n\\t\\theight: 10px;\\n\\t\\tborder: 1px solid rgba(255, 255, 255, .5);\\n\\t\\tbackground-clip: content-box;\\n\\t\\t&--positive {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t\\t&--negative {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t\\t&--neutral {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: -3px;\\n\\t\\t\\t\\tleft: -2px;\\n\\t\\t\\t\\tpath {\\n\\t\\t\\t\\t\\tfill: #aaa;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.avatardiv__user-status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\theight: 18px;\\n\\t\\twidth: 18px;\\n\\t\\tline-height: 15px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.acli:hover & {\\n\\t\\t\\tborder-color: var(--color-background-hover);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t.acli.active & {\\n\\t\\t\\tborder-color: var(--color-primary-light);\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\n\\t\\t&--online{\\n\\t\\t\\t@include iconfont('user-status-online');\\n\\t\\t\\tcolor: #49b382;\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\t@include iconfont('user-status-dnd');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t\\tcolor: #ed484c;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\t@include iconfont('user-status-away');\\n\\t\\t\\tcolor: #f4a331;\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t.popovermenu-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n}\\n\\n.avatar-class-icon {\\n\\tborder-radius: 50%;\\n\\tbackground-color: var(--color-background-darker);\\n\\theight: 100%;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default {\n\tprops: {\n\t\t/**\n\t\t * A class-name or an array of class-names\n\t\t * to be ignored when clicking outside\n\t\t * an element\n\t\t */\n\t\texcludeClickOutsideClasses: {\n\t\t\ttype: String | Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Middleware Handler for V-Click-Outside\n\t\t *\n\t\t * @param {Event} event The click event\n\t\t * @returns {Boolean}\n\t\t */\n\t\tclickOutsideMiddleware(event) {\n\t\t\tconst excludedClassList = Array.isArray(this.excludeClickOutsideClasses)\n\t\t\t\t? this.excludeClickOutsideClasses\n\t\t\t\t: [this.excludeClickOutsideClasses]\n\n\t\t\t// No need to iterate through all parents\n\t\t\t// if class-list is empty\n\t\t\tif (excludedClassList.length === 0) {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\treturn !this.hasNodeOrAnyParentClass(event.target, excludedClassList)\n\t\t},\n\t\t/**\n\t\t * Checks if given node or any of it's parents have a class of classArray\n\t\t *\n\t\t * @param {Element} node Node to test\n\t\t * @param {Array} classArray List of classes to check for\n\t\t * @returns {Boolean}\n\t\t */\n\t\thasNodeOrAnyParentClass(node, classArray) {\n\t\t\tfor (const className of classArray) {\n\t\t\t\tif (node?.classList?.contains(className)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn !!node.parentElement && this.hasNodeOrAnyParentClass(node.parentElement, classArray)\n\t\t},\n\t},\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisFullscreen: this._isFullscreen(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update fullscreen mode\n\t\t\tthis.isFullscreen = this._isFullscreen()\n\t\t},\n\t\t_isFullscreen() {\n\t\t\t// if the window height is equal to the screen height,\n\t\t\t// we're in full screen mode\n\t\t\treturn window.outerHeight === screen.height\n\t\t},\n\t},\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"popover__menu\"},_vm._l((_vm.menu),function(item,key){return _c('PopoverMenuItem',{key:key,attrs:{\"item\":item}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"popover__menuitem\">\n\t\t<!-- If item.href is set, a link will be directly used -->\n\t\t<a v-if=\"item.href\"\n\t\t\t:href=\"(item.href) ? item.href : '#' \"\n\t\t\t:target=\"(item.target) ? item.target : '' \"\n\t\t\t:download=\"item.download\"\n\t\t\tclass=\"focusable\"\n\t\t\trel=\"noreferrer noopener\"\n\t\t\t@click=\"action\">\n\t\t\t<span v-if=\"!iconIsUrl\" :class=\"item.icon\" />\n\t\t\t<img v-else :src=\"item.icon\">\n\t\t\t<p v-if=\"item.text && item.longtext\">\n\t\t\t\t<strong class=\"menuitem-text\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class=\"menuitem-text-detail\">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if=\"item.text\">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if=\"item.longtext\">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</a>\n\n\t\t<!-- If item.input is set instead, an put will be used -->\n\t\t<span v-else-if=\"item.input\" class=\"menuitem\" :class=\"{active: item.active}\">\n\t\t\t<!-- does not show if input is checkbox -->\n\t\t\t<span v-if=\"item.input !== 'checkbox'\" :class=\"item.icon\" />\n\n\t\t\t<!-- only shows if input is text -->\n\t\t\t<form v-if=\"item.input === 'text'\"\n\t\t\t\t:class=\"item.input\"\n\t\t\t\t@submit.prevent=\"item.action\">\n\t\t\t\t<input :type=\"item.input\"\n\t\t\t\t\t:value=\"item.value\"\n\t\t\t\t\t:placeholder=\"item.text\"\n\t\t\t\t\trequired>\n\t\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t\t</form>\n\n\t\t\t<!-- checkbox -->\n\t\t\t<template v-else>\n\t\t\t\t<!-- eslint-disable-next-line -->\n\t\t\t\t<input :id=\"key\" v-model=\"item.model\"\n\t\t\t\t\t:type=\"item.input\"\n\t\t\t\t\t:class=\"item.input\"\n\t\t\t\t\t@change=\"item.action\">\n\t\t\t\t<label :for=\"key\" @click.stop.prevent=\"item.action\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</label>\n\t\t\t</template>\n\t\t</span>\n\n\t\t<!-- If item.action is set instead, a button will be used -->\n\t\t<button v-else-if=\"item.action\"\n\t\t\tclass=\"menuitem focusable\"\n\t\t\t:class=\"{active: item.active}\"\n\t\t\t:disabled=\"item.disabled\"\n\t\t\t@click.stop.prevent=\"item.action\">\n\t\t\t<span :class=\"item.icon\" />\n\t\t\t<p v-if=\"item.text && item.longtext\">\n\t\t\t\t<strong class=\"menuitem-text\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class=\"menuitem-text-detail\">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if=\"item.text\">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if=\"item.longtext\">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</button>\n\n\t\t<!-- If item.longtext is set AND the item does not have an action -->\n\t\t<span v-else class=\"menuitem\" :class=\"{active: item.active}\">\n\t\t\t<span :class=\"item.icon\" />\n\t\t\t<p v-if=\"item.text && item.longtext\">\n\t\t\t\t<strong class=\"menuitem-text\">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class=\"menuitem-text-detail\">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if=\"item.text\">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if=\"item.longtext\">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</span>\n\t</li>\n</template>\n\n<script>\nexport default {\n\tname: 'PopoverMenuItem',\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'nextcloud-link',\n\t\t\t\t\thref: 'https://nextcloud.com',\n\t\t\t\t\ticon: 'icon-links',\n\t\t\t\t\ttext: 'Nextcloud',\n\t\t\t\t}\n\t\t\t},\n\t\t\t// check the input types\n\t\t\t// TODO: add more validation of types\n\t\t\tvalidator: item => {\n\t\t\t\t// TODO: support radio\n\t\t\t\tif (item.input) {\n\t\t\t\t\treturn ['text', 'checkbox'].indexOf(item.input) !== -1\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t},\n\tcomputed: {\n\t\t// random key for inputs binding if not provided\n\t\tkey() {\n\t\t\treturn this.item.key\n\t\t\t\t? this.item.key\n\t\t\t\t: Math.round(Math.random() * 16 * 1000000).toString(16)\n\t\t},\n\t\ticonIsUrl() {\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew URL(this.item.icon)\n\t\t\t\treturn true\n\t\t\t} catch (_) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\t// allow us to use both link and an action on `a`\n\t\t// we still need to make sure item.action exists\n\t\taction(event) {\n\t\t\tif (this.item.action) {\n\t\t\t\tthis.item.action(event)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\tbutton.menuitem {\n\t\ttext-align: left;\n\t}\n\n\tbutton.menuitem * {\n\t\tcursor: pointer;\n\t}\n\n\tbutton.menuitem:disabled {\n\t\topacity: 0.5 !important;\n\t\tcursor: default;\n\t}\n\n\tbutton.menuitem:disabled * {\n\t\tcursor: default;\n\t}\n\n\t.menuitem.active {\n\t\tbox-shadow: inset 2px 0 var(--color-primary);\n\t\tborder-radius: 0;\n\t}\n</style>\n\n<style lang=\"scss\" scoped>\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'],\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^='icon-']):not([class*='icon-']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^='icon-']):not([class*='icon-']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\n\t\t}\n\n\t\t> span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $icon-size;\n\t\t\tpadding: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*='display:none'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*='display:none']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=0&id=febed9b6&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=1&id=febed9b6&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\tThis component is deprecated. Please use the [Actions](#/Components?id=actions-1) component instead.\n</docs>\n\n<template>\n\t<ul class=\"popover__menu\">\n\t\t<PopoverMenuItem v-for=\"(item, key) in menu\" :key=\"key\" :item=\"item\" />\n\t</ul>\n</template>\n\n<script>\nimport PopoverMenuItem from './PopoverMenuItem'\n\nexport default {\n\tname: 'PopoverMenu',\n\tcomponents: {\n\t\tPopoverMenuItem,\n\t},\n\tprops: {\n\t\tmenu: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => {\n\t\t\t\treturn [{\n\t\t\t\t\thref: 'https://nextcloud.com',\n\t\t\t\t\ticon: 'icon-links',\n\t\t\t\t\ttext: 'Nextcloud',\n\t\t\t\t}]\n\t\t\t},\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nul {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n</style>\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"popover__menuitem\"},[(_vm.item.href)?_c('a',{staticClass:\"focusable\",attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#',\"target\":(_vm.item.target) ? _vm.item.target : '',\"download\":_vm.item.download,\"rel\":\"noreferrer noopener\"},on:{\"click\":_vm.action}},[(!_vm.iconIsUrl)?_c('span',{class:_vm.item.icon}):_c('img',{attrs:{\"src\":_vm.item.icon}}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):(_vm.item.input)?_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[(_vm.item.input !== 'checkbox')?_c('span',{class:_vm.item.icon}):_vm._e(),_vm._v(\" \"),(_vm.item.input === 'text')?_c('form',{class:_vm.item.input,on:{\"submit\":function($event){$event.preventDefault();return _vm.item.action($event)}}},[_c('input',{attrs:{\"type\":_vm.item.input,\"placeholder\":_vm.item.text,\"required\":\"\"},domProps:{\"value\":_vm.item.value}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]):[((_vm.item.input)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.item.model)?_vm._i(_vm.item.model,null)>-1:(_vm.item.model)},on:{\"change\":[function($event){var $$a=_vm.item.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.item, \"model\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.item, \"model\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.item, \"model\", $$c)}},_vm.item.action]}}):((_vm.item.input)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.item.model,null)},on:{\"change\":[function($event){return _vm.$set(_vm.item, \"model\", null)},_vm.item.action]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":_vm.item.input},domProps:{\"value\":(_vm.item.model)},on:{\"change\":_vm.item.action,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"model\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.key},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")])]],2):(_vm.item.action)?_c('button',{staticClass:\"menuitem focusable\",class:{active: _vm.item.active},attrs:{\"disabled\":_vm.item.disabled},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=style&index=0&id=4dae360a&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport PopoverMenu from './PopoverMenu'\n\nexport default PopoverMenu\n","module.exports = require(\"core-js/modules/es.string.split.js\");","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g({directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"},{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeMenu),expression:\"closeMenu\"}],staticClass:\"avatardiv popovermenu-wrapper\",class:{\n\t\t'avatardiv--unknown': _vm.userDoesNotExist,\n\t\t'avatardiv--with-menu': _vm.hasMenu\n\t},style:(_vm.avatarStyle)},!_vm.disableMenu ? { click: _vm.toggleMenu } : {}),[(_vm.iconClass)?_c('div',{staticClass:\"avatar-class-icon\",class:_vm.iconClass}):(_vm.isAvatarLoaded && !_vm.userDoesNotExist)?_c('img',{attrs:{\"src\":_vm.avatarUrlLoaded,\"srcset\":_vm.avatarSrcSetLoaded,\"alt\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasMenu)?_c('Popover',{attrs:{\"placement\":\"auto\",\"container\":_vm.menuContainer,\"open\":_vm.contactsMenuOpenState}},[_c('PopoverMenu',{attrs:{\"menu\":_vm.menu}}),_vm._v(\" \"),_c('template',{slot:\"trigger\"},[_c('div',{class:_vm.contactsMenuLoading ? 'icon-loading' : 'icon-more',style:({'width': _vm.size + 'px', 'height': _vm.size + 'px'})})])],2):_vm._e(),_vm._v(\" \"),(_vm.showUserStatusIconOnAvatar)?_c('div',{staticClass:\"avatardiv__user-status avatardiv__user-status--icon\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.userStatus.icon)+\"\\n\\t\")]):(_vm.canDisplayUserStatus)?_c('div',{staticClass:\"avatardiv__user-status\",class:'avatardiv__user-status--' + _vm.userStatus.status}):(_vm.status)?_c('div',{staticClass:\"avatardiv__status\",class:'avatardiv__status--' + _vm.status,style:({ backgroundColor: (\"#\" + _vm.statusColor) })},[(_vm.status === 'neutral')?_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"12\",\"height\":\"11\",\"viewBox\":\"0 0 3.175 2.91\"}},[_c('path',{style:({ fill: (\"#\" + _vm.statusColor) }),attrs:{\"d\":\"M3.21 3.043H.494l.679-1.177.68-1.176.678 1.176z\",\"stroke\":\"#fff\",\"stroke-width\":\".265\",\"stroke-linecap\":\"square\"}})]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.userDoesNotExist && !_vm.iconClass)?_c('div',{staticClass:\"unknown\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.initials)+\"\\n\\t\")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n### Basic user avatar\n\n```vue\n\t<avatar user=\"janedoe\" display-name=\"Jane Doe\" />\n```\n\n### Avatar with image\n\n```vue\n\t<avatar url=\"https://nextcloud.com/wp-content/themes/next/assets/img/common/nextcloud-square-logo.png\" />\n```\n\n</docs>\n<template>\n\t<div v-tooltip=\"tooltip\"\n\t\tv-click-outside=\"closeMenu\"\n\t\t:class=\"{\n\t\t\t'avatardiv--unknown': userDoesNotExist,\n\t\t\t'avatardiv--with-menu': hasMenu\n\t\t}\"\n\t\t:style=\"avatarStyle\"\n\t\tclass=\"avatardiv popovermenu-wrapper\"\n\t\tv-on=\"!disableMenu ? { click: toggleMenu } : {}\">\n\t\t<!-- Avatar icon or image -->\n\t\t<div v-if=\"iconClass\" :class=\"iconClass\" class=\"avatar-class-icon\" />\n\t\t<img v-else-if=\"isAvatarLoaded && !userDoesNotExist\"\n\t\t\t:src=\"avatarUrlLoaded\"\n\t\t\t:srcset=\"avatarSrcSetLoaded\"\n\t\t\talt=\"\">\n\t\t<Popover\n\t\t\tv-if=\"hasMenu\"\n\t\t\tplacement=\"auto\"\n\t\t\t:container=\"menuContainer\"\n\t\t\t:open=\"contactsMenuOpenState\">\n\t\t\t<PopoverMenu :menu=\"menu\" />\n\t\t\t<template slot=\"trigger\">\n\t\t\t\t<div :class=\"contactsMenuLoading ? 'icon-loading' : 'icon-more'\" :style=\"{'width': size + 'px', 'height': size + 'px'}\" />\n\t\t\t</template>\n\t\t</Popover>\n\n\t\t<!-- Avatar status -->\n\t\t<div v-if=\"showUserStatusIconOnAvatar\" class=\"avatardiv__user-status avatardiv__user-status--icon\">\n\t\t\t{{ userStatus.icon }}\n\t\t</div>\n\t\t<div v-else-if=\"canDisplayUserStatus\"\n\t\t\tclass=\"avatardiv__user-status\"\n\t\t\t:class=\"'avatardiv__user-status--' + userStatus.status\" />\n\t\t<div v-else-if=\"status\"\n\t\t\tclass=\"avatardiv__status\"\n\t\t\t:class=\"'avatardiv__status--' + status\"\n\t\t\t:style=\"{ backgroundColor: `#${statusColor}` }\">\n\t\t\t<!-- triangle -->\n\t\t\t<svg v-if=\"status === 'neutral'\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"12\"\n\t\t\t\theight=\"11\"\n\t\t\t\tviewBox=\"0 0 3.175 2.91\">\n\t\t\t\t<path d=\"M3.21 3.043H.494l.679-1.177.68-1.176.678 1.176z\"\n\t\t\t\t\t:style=\"{ fill: `#${statusColor}` }\"\n\t\t\t\t\tstroke=\"#fff\"\n\t\t\t\t\tstroke-width=\".265\"\n\t\t\t\t\tstroke-linecap=\"square\" />\n\t\t\t</svg>\n\t\t</div>\n\n\t\t<!-- Show the letter if no avatar nor icon class -->\n\t\t<div v-if=\"userDoesNotExist && !iconClass\" class=\"unknown\">\n\t\t\t{{ initials }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { directive as ClickOutside } from 'v-click-outside'\nimport PopoverMenu from '../PopoverMenu'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport Tooltip from '../../directives/Tooltip'\nimport usernameToColor from '../../functions/usernameToColor'\nimport { userStatus } from '../../mixins'\nimport Popover from '../Popover/Popover'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\n\nfunction getUserHasAvatar(userId) {\n\tconst flag = browserStorage.getItem('user-has-avatar.' + userId)\n\tif (typeof flag === 'string') {\n\t\treturn Boolean(flag)\n\t}\n\treturn null\n}\n\nfunction setUserHasAvatar(userId, flag) {\n\tif (userId) {\n\t\tbrowserStorage.setItem('user-has-avatar.' + userId, flag)\n\t}\n}\n\nexport default {\n\tname: 'Avatar',\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tPopover,\n\t\tPopoverMenu,\n\t},\n\tmixins: [userStatus],\n\tprops: {\n\t\t/**\n\t\t * Set a custom url to the avatar image\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a css icon-class for an icon to be used instead of the avatar.\n\t\t */\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set the user id to fetch the avatar\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Whether or not to the status-icon should be used instead of online/away\n\t\t */\n\t\tshowUserStatusCompact: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * When the user status was preloaded via another source it can be handed in with this property to save the request.\n\t\t * If this property is not set the status will be fetched automatically.\n\t\t * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n\t\t */\n\t\tpreloadedUserStatus: {\n\t\t\ttype: Object,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the user a guest user (then we have to user a different endpoint)\n\t\t */\n\t\tisGuest: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Set a display name that will be rendered as a tooltip\n\t\t * either the url, user or displayName property must be defined\n\t\t * specify just the displayname to generate a placeholder avatar without\n\t\t * trying to fetch the avatar based on the user id\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a size in px for the rendered avatar\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 32,\n\t\t},\n\t\t/**\n\t\t * Placeholder avatars will be automatically generated when this is set to true\n\t\t */\n\t\tallowPlaceholder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * Disable the tooltip\n\t\t */\n\t\tdisableTooltip: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Disable the menu\n\t\t */\n\t\tdisableMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declares a custom tooltip when not null\n\t\t * Fallback will be the displayName\n\t\t *\n\t\t * requires disableTooltip not to be set to true\n\t\t */\n\t\ttooltipMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Declares username is not a user's name, when true.\n\t\t * Prevents loading user's avatar from server and forces generating colored initials,\n\t\t * i.e. if the user is a group\n\t\t */\n\t\tisNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * DEPRECATED!\n\t\t * This prop will be removed with nc/vue 3.0\n\t\t *\n\t\t * Declares a status indicator on the avatar\n\t\t * Available options are `positive`, `negative`, `neutral`\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => {\n\t\t\t\tswitch (value) {\n\t\t\t\tcase 'positive':\n\t\t\t\tcase 'negative':\n\t\t\t\tcase 'neutral':\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Declares a different color to be used with the status indicator\n\t\t */\n\t\tstatusColor: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: null,\n\t\t\tvalidator: value => {\n\t\t\t\treturn /^([a-f0-9]{3}){1,2}$/i.test(value)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Choose the avatar menu alignment.\n\t\t * Possible values are `left`, `center`, `right`.\n\t\t */\n\t\tmenuPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'center',\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover menu container\n\t\t */\n\t\tmenuContainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavatarUrlLoaded: null,\n\t\t\tavatarSrcSetLoaded: null,\n\t\t\tuserDoesNotExist: false,\n\t\t\tisAvatarLoaded: false,\n\t\t\tisMenuLoaded: false,\n\t\t\tcontactsMenuLoading: false,\n\t\t\tcontactsMenuActions: [],\n\t\t\tcontactsMenuOpenState: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcanDisplayUserStatus() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& ['online', 'away', 'dnd'].includes(this.userStatus.status)\n\t\t},\n\t\tshowUserStatusIconOnAvatar() {\n\t\t\treturn this.showUserStatus\n\t\t\t\t&& this.showUserStatusCompact\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& this.userStatus.status !== 'dnd'\n\t\t\t\t&& this.userStatus.icon\n\t\t},\n\t\tgetUserIdentifier() {\n\t\t\tif (this.isDisplayNameDefined) {\n\t\t\t\treturn this.displayName\n\t\t\t}\n\t\t\tif (this.isUserDefined) {\n\t\t\t\treturn this.user\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tisUserDefined() {\n\t\t\treturn typeof this.user !== 'undefined'\n\t\t},\n\t\tisDisplayNameDefined() {\n\t\t\treturn typeof this.displayName !== 'undefined'\n\t\t},\n\t\tisUrlDefined() {\n\t\t\treturn typeof this.url !== 'undefined'\n\t\t},\n\t\thasMenu() {\n\t\t\tif (this.disableMenu) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.isMenuLoaded) {\n\t\t\t\treturn this.menu.length > 0\n\t\t\t}\n\t\t\treturn !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url)\n\t\t},\n\t\tshouldShowPlaceholder() {\n\t\t\treturn this.allowPlaceholder && (\n\t\t\t\tthis.userDoesNotExist)\n\t\t},\n\t\tavatarStyle() {\n\t\t\tconst style = {\n\t\t\t\twidth: this.size + 'px',\n\t\t\t\theight: this.size + 'px',\n\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\tfontSize: Math.round(this.size * 0.55) + 'px',\n\t\t\t}\n\n\t\t\tif (!this.iconClass && !this.avatarSrcSetLoaded) {\n\t\t\t\tconst rgb = usernameToColor(this.getUserIdentifier)\n\t\t\t\tstyle.backgroundColor = 'rgb(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ')'\n\t\t\t}\n\t\t\treturn style\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.disableTooltip) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.tooltipMessage) {\n\t\t\t\treturn this.tooltipMessage\n\t\t\t}\n\n\t\t\treturn this.displayName\n\t\t},\n\t\tinitials() {\n\t\t\tlet initials\n\t\t\tif (this.shouldShowPlaceholder) {\n\t\t\t\tconst user = this.getUserIdentifier\n\t\t\t\tconst idx = user.indexOf(' ')\n\t\t\t\tif (user === '') {\n\t\t\t\t\tinitials = '?'\n\t\t\t\t} else {\n\t\t\t\t\tinitials = String.fromCodePoint(user.codePointAt(0))\n\t\t\t\t\tif (idx !== -1) {\n\t\t\t\t\t\tinitials = initials.concat(String.fromCodePoint(user.codePointAt(idx + 1)))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn initials.toUpperCase()\n\t\t},\n\t\tmenu() {\n\t\t\tconst actions = this.contactsMenuActions.map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\thref: item.hyperlink,\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\tlongtext: item.title,\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tfunction escape(html) {\n\t\t\t\tconst text = document.createTextNode(html)\n\t\t\t\tconst p = document.createElement('p')\n\t\t\t\tp.appendChild(text)\n\t\t\t\treturn p.innerHTML\n\t\t\t}\n\n\t\t\tif (this.showUserStatus && (this.userStatus.icon || this.userStatus.message)) {\n\t\t\t\treturn [{\n\t\t\t\t\thref: '#',\n\t\t\t\t\ticon: `data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>${escape(this.userStatus.icon)}</text></svg>`,\n\t\t\t\t\ttext: `${this.userStatus.message}`,\n\t\t\t\t}].concat(actions)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t},\n\n\twatch: {\n\t\turl() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t\tuser() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.isMenuLoaded = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.loadAvatarUrl()\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tif (!this.preloadedUserStatus) {\n\t\t\t\tthis.fetchUserStatus(this.user)\n\t\t\t} else {\n\t\t\t\tthis.userStatus.status = this.preloadedUserStatus.status || ''\n\t\t\t\tthis.userStatus.message = this.preloadedUserStatus.message || ''\n\t\t\t\tthis.userStatus.icon = this.preloadedUserStatus.icon || ''\n\t\t\t\tthis.hasStatus = this.preloadedUserStatus.status !== null\n\t\t\t}\n\t\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tbeforeDestroyed() {\n\t\tif (this.showUserStatus && this.user && !this.isNoUser) {\n\t\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tmethods: {\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (this.user === state.userId) {\n\t\t\t\tthis.userStatus = {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync toggleMenu() {\n\t\t\tif (!this.hasMenu) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!this.contactsMenuOpenState) {\n\t\t\t\tawait this.fetchContactsMenu()\n\t\t\t}\n\t\t\tthis.contactsMenuOpenState = !this.contactsMenuOpenState\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.contactsMenuOpenState = false\n\t\t},\n\t\tasync fetchContactsMenu() {\n\t\t\tthis.contactsMenuLoading = true\n\t\t\ttry {\n\t\t\t\tconst user = encodeURIComponent(this.user)\n\t\t\t\tconst { data } = await axios.post(generateUrl('contactsmenu/findOne'), `shareType=0&shareWith=${user}`)\n\t\t\t\tthis.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions\n\t\t\t} catch (e) {\n\t\t\t\tthis.contactsMenuOpenState = false\n\t\t\t}\n\t\t\tthis.contactsMenuLoading = false\n\t\t\tthis.isMenuLoaded = true\n\t\t},\n\n\t\t/**\n\t\t * Handle avatar loading if user or url defined\n\t\t */\n\t\tloadAvatarUrl() {\n\t\t\tthis.isAvatarLoaded = false\n\n\t\t\t/** Only run avatar image loading if either user or url property is defined */\n\t\t\tif (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser)) {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Directly use the url if defined\n\t\t\tif (this.isUrlDefined) {\n\t\t\t\tthis.updateImageIfValid(this.url)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, this.size)\n\t\t\tconst srcset = [\n\t\t\t\tavatarUrl + ' 1x',\n\t\t\t\tthis.avatarUrlGenerator(this.user, this.size * 2) + ' 2x',\n\t\t\t\tthis.avatarUrlGenerator(this.user, this.size * 4) + ' 4x',\n\t\t\t].join(', ')\n\n\t\t\tthis.updateImageIfValid(avatarUrl, srcset)\n\t\t},\n\n\t\t/**\n\t\t * Generate an avatar url from the server's avatar endpoint\n\t\t *\n\t\t * @param {string} user the user id\n\t\t * @param {number} size the desired size\n\t\t * @returns {string}\n\t\t */\n\t\tavatarUrlGenerator(user, size) {\n\t\t\tlet url = '/avatar/{user}/{size}'\n\t\t\tif (this.isGuest) {\n\t\t\t\turl = '/avatar/guest/{user}/{size}'\n\t\t\t}\n\n\t\t\tlet avatarUrl = generateUrl(\n\t\t\t\turl,\n\t\t\t\t{\n\t\t\t\t\tuser,\n\t\t\t\t\tsize,\n\t\t\t\t})\n\n\t\t\t// eslint-disable-next-line camelcase\n\t\t\tif (user === getCurrentUser()?.uid && typeof oc_userconfig !== 'undefined') {\n\t\t\t\tavatarUrl += '?v=' + oc_userconfig.avatar.version\n\t\t\t}\n\n\t\t\treturn avatarUrl\n\t\t},\n\n\t\t/**\n\t\t * Check if the provided url is valid and update Avatar if so\n\t\t *\n\t\t * @param {string} url the avatar url\n\t\t * @param {array} srcset the avatar srcset\n\t\t */\n\t\tupdateImageIfValid(url, srcset = null) {\n\t\t\t// skip loading\n\t\t\tconst userHasAvatar = getUserHasAvatar(this.user)\n\t\t\tif (this.isUserDefined && typeof userHasAvatar === 'boolean') {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tif (userHasAvatar === false) {\n\t\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst img = new Image()\n\t\t\timg.onload = () => {\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\t// re-get to avoid concurrent access\n\t\t\t\tsetUserHasAvatar(this.user, true)\n\t\t\t}\n\t\t\timg.onerror = () => {\n\t\t\t\tconsole.debug('Invalid avatar url', url)\n\t\t\t\t// Avatar is invalid, reset\n\t\t\t\tthis.avatarUrlLoaded = null\n\t\t\t\tthis.avatarSrcSetLoaded = null\n\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\tthis.isAvatarLoaded = false\n\t\t\t\tsetUserHasAvatar(this.user, false)\n\t\t\t}\n\n\t\t\tif (srcset) {\n\t\t\t\timg.srcset = srcset\n\t\t\t}\n\t\t\timg.src = url\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@import '../../fonts/scss/iconfont-vue';\n\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White background for avatars with transparency\n\t\tbackground-color: #fff !important;\n\t\tbody.theme--dark & {\n\t\t\t// And black background in dark mode, as it shines through on hover of the menu\n\t\t\tbackground-color: #000 !important;\n\t\t}\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t::v-deep .trigger {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t.icon-more {\n\t\t\tdisplay: flex;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t\tbackground: none;\n\t\t\tfont-size: 18px;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\n\t\t\t@include iconfont('more');\n\t\t\t&::before {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t\t&:focus,\n\t\t&:hover {\n\t\t\t.icon-more {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t.icon-more,\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t}\n\n\t> .unknown {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tfont-weight: normal;\n\t\tcolor: var(--color-main-background);\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.avatardiv__status {\n\t\tposition: absolute;\n\t\ttop: 22px;\n\t\tleft: 22px;\n\t\twidth: 10px;\n\t\theight: 10px;\n\t\tborder: 1px solid rgba(255, 255, 255, .5);\n\t\tbackground-clip: content-box;\n\t\t&--positive {\n\t\t\tborder-radius: 50%;\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t\t&--negative {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t\t&--neutral {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent !important;\n\t\t\tsvg {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: -3px;\n\t\t\t\tleft: -2px;\n\t\t\t\tpath {\n\t\t\t\t\tfill: #aaa;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.avatardiv__user-status {\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\theight: 18px;\n\t\twidth: 18px;\n\t\tline-height: 15px;\n\t\tfont-size: var(--default-font-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-light);\n\t\t\tbackground-color: var(--color-primary-light);\n\t\t}\n\n\t\t&--online{\n\t\t\t@include iconfont('user-status-online');\n\t\t\tcolor: #49b382;\n\t\t}\n\t\t&--dnd{\n\t\t\t@include iconfont('user-status-dnd');\n\t\t\tbackground-color: #ffffff;\n\t\t\tcolor: #ed484c;\n\t\t}\n\t\t&--away{\n\t\t\t@include iconfont('user-status-away');\n\t\t\tcolor: #f4a331;\n\t\t}\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n}\n\n.avatar-class-icon {\n\tborder-radius: 50%;\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&id=1bfc7bfe&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Avatar from './Avatar'\n\nexport default Avatar\n","module.exports = require(\"md5\");","module.exports = require(\"@nextcloud/capabilities\");","/**\n * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport usernameToColor from './usernameToColor'\n\nexport default usernameToColor\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport md5 from 'md5'\nimport GenColors from '../../utils/GenColors'\n\n/**\n * Originally taken from https://github.com/nextcloud/server/blob/master/core/js/placeholder.js\n * @param {string} username Display name or user id to generate from\n * @returns {Object} the rgb colors as {r:255, g:255, b:255}\n */\nconst usernameToColor = function(username) {\n\t// Normalize hash\n\tlet hash = username.toLowerCase()\n\n\t// Already a md5 hash?\n\tif (hash.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n\t\thash = md5(hash)\n\t}\n\n\thash = hash.replace(/[^0-9a-f]/g, '')\n\n\tconst steps = 6\n\tconst finalPalette = GenColors(steps)\n\n\t// Convert a string to an integer evenly\n\tfunction hashToInt(hash, maximum) {\n\t\tlet finalInt = 0\n\t\tconst result = []\n\n\t\t// Splitting evenly the string\n\t\tfor (let i = 0; i < hash.length; i++) {\n\t\t\t// chars in md5 goes up to f, hex:16\n\t\t\tresult.push(parseInt(hash.charAt(i), 16) % 16)\n\t\t}\n\n\t\t// Adds up all results\n\t\tfor (const j in result) {\n\t\t\tfinalInt += result[j]\n\t\t}\n\n\t\t// chars in md5 goes up to f, hex:16\n\t\t// make sure we're always using int in our operation\n\t\treturn parseInt(parseInt(finalInt, 10) % maximum, 10)\n\t}\n\treturn finalPalette[hashToInt(hash, steps * 3)]\n}\n\nexport default usernameToColor\n","module.exports = require(\"@nextcloud/browser-storage\");","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"core-js/modules/es.array.flat.js\");","module.exports = require(\"core-js/modules/es.string.match.js\");","module.exports = require(\"core-js/modules/es.string.from-code-point.js\");","module.exports = require(\"core-js/modules/es.string.code-point-at.js\");","'use strict';\n\nexports.__esModule = true;\nexports.stateify = exports.TokenState = exports.CharacterState = undefined;\n\nvar _class = require('../utils/class');\n\nfunction createStateClass() {\n\treturn function (tClass) {\n\t\tthis.j = [];\n\t\tthis.T = tClass || null;\n\t};\n}\n\n/**\n\tA simple state machine that can emit token classes\n\n\tThe `j` property in this class refers to state jumps. It's a\n\tmultidimensional array where for each element:\n\n\t* index [0] is a symbol or class of symbols to transition to.\n\t* index [1] is a State instance which matches\n\n\tThe type of symbol will depend on the target implementation for this class.\n\tIn Linkify, we have a two-stage scanner. Each stage uses this state machine\n\tbut with a slighly different (polymorphic) implementation.\n\n\tThe `T` property refers to the token class.\n\n\tTODO: Can the `on` and `next` methods be combined?\n\n\t@class BaseState\n*/\nvar BaseState = createStateClass();\nBaseState.prototype = {\n\tdefaultTransition: false,\n\n\t/**\n \t@method constructor\n \t@param {Class} tClass Pass in the kind of token to emit if there are\n \t\tno jumps after this state and the state is accepting.\n */\n\n\t/**\n \tOn the given symbol(s), this machine should go to the given state\n \t\t@method on\n \t@param {Array|Mixed} symbol\n \t@param {BaseState} state Note that the type of this state should be the\n \t\tsame as the current instance (i.e., don't pass in a different\n \t\tsubclass)\n */\n\ton: function on(symbol, state) {\n\t\tif (symbol instanceof Array) {\n\t\t\tfor (var i = 0; i < symbol.length; i++) {\n\t\t\t\tthis.j.push([symbol[i], state]);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tthis.j.push([symbol, state]);\n\t\treturn this;\n\t},\n\n\n\t/**\n \tGiven the next item, returns next state for that item\n \t@method next\n \t@param {Mixed} item Should be an instance of the symbols handled by\n \t\tthis particular machine.\n \t@return {State} state Returns false if no jumps are available\n */\n\tnext: function next(item) {\n\t\tfor (var i = 0; i < this.j.length; i++) {\n\t\t\tvar jump = this.j[i];\n\t\t\tvar symbol = jump[0]; // Next item to check for\n\t\t\tvar state = jump[1]; // State to jump to if items match\n\n\t\t\t// compare item with symbol\n\t\t\tif (this.test(item, symbol)) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t}\n\n\t\t// Nowhere left to jump!\n\t\treturn this.defaultTransition;\n\t},\n\n\n\t/**\n \tDoes this state accept?\n \t`true` only of `this.T` exists\n \t\t@method accepts\n \t@return {Boolean}\n */\n\taccepts: function accepts() {\n\t\treturn !!this.T;\n\t},\n\n\n\t/**\n \tDetermine whether a given item \"symbolizes\" the symbol, where symbol is\n \ta class of items handled by this state machine.\n \t\tThis method should be overriden in extended classes.\n \t\t@method test\n \t@param {Mixed} item Does this item match the given symbol?\n \t@param {Mixed} symbol\n \t@return {Boolean}\n */\n\ttest: function test(item, symbol) {\n\t\treturn item === symbol;\n\t},\n\n\n\t/**\n \tEmit the token for this State (just return it in this case)\n \tIf this emits a token, this instance is an accepting state\n \t@method emit\n \t@return {Class} T\n */\n\temit: function emit() {\n\t\treturn this.T;\n\t}\n};\n\n/**\n\tState machine for string-based input\n\n\t@class CharacterState\n\t@extends BaseState\n*/\nvar CharacterState = (0, _class.inherits)(BaseState, createStateClass(), {\n\t/**\n \tDoes the given character match the given character or regular\n \texpression?\n \t\t@method test\n \t@param {String} char\n \t@param {String|RegExp} charOrRegExp\n \t@return {Boolean}\n */\n\ttest: function test(character, charOrRegExp) {\n\t\treturn character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);\n\t}\n});\n\n/**\n\tState machine for input in the form of TextTokens\n\n\t@class TokenState\n\t@extends BaseState\n*/\nvar TokenState = (0, _class.inherits)(BaseState, createStateClass(), {\n\n\t/**\n * Similar to `on`, but returns the state the results in the transition from\n * the given item\n * @method jump\n * @param {Mixed} item\n * @param {Token} [token]\n * @return state\n */\n\tjump: function jump(token) {\n\t\tvar tClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\t\tvar state = this.next(new token('')); // dummy temp token\n\t\tif (state === this.defaultTransition) {\n\t\t\t// Make a new state!\n\t\t\tstate = new this.constructor(tClass);\n\t\t\tthis.on(token, state);\n\t\t} else if (tClass) {\n\t\t\tstate.T = tClass;\n\t\t}\n\t\treturn state;\n\t},\n\n\n\t/**\n \tIs the given token an instance of the given token class?\n \t\t@method test\n \t@param {TextToken} token\n \t@param {Class} tokenClass\n \t@return {Boolean}\n */\n\ttest: function test(token, tokenClass) {\n\t\treturn token instanceof tokenClass;\n\t}\n});\n\n/**\n\tGiven a non-empty target string, generates states (if required) for each\n\tconsecutive substring of characters in str starting from the beginning of\n\tthe string. The final state will have a special value, as specified in\n\toptions. All other \"in between\" substrings will have a default end state.\n\n\tThis turns the state machine into a Trie-like data structure (rather than a\n\tintelligently-designed DFA).\n\n\tNote that I haven't really tried these with any strings other than\n\tDOMAIN.\n\n\t@param {String} str\n\t@param {CharacterState} start State to jump from the first character\n\t@param {Class} endToken Token class to emit when the given string has been\n\t\tmatched and no more jumps exist.\n\t@param {Class} defaultToken \"Filler token\", or which token type to emit when\n\t\twe don't have a full match\n\t@return {Array} list of newly-created states\n*/\nfunction stateify(str, start, endToken, defaultToken) {\n\tvar i = 0,\n\t len = str.length,\n\t state = start,\n\t newStates = [],\n\t nextState = void 0;\n\n\t// Find the next state without a jump to the next character\n\twhile (i < len && (nextState = state.next(str[i]))) {\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tif (i >= len) {\n\t\treturn [];\n\t} // no new tokens were added\n\n\twhile (i < len - 1) {\n\t\tnextState = new CharacterState(defaultToken);\n\t\tnewStates.push(nextState);\n\t\tstate.on(str[i], nextState);\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tnextState = new CharacterState(endToken);\n\tnewStates.push(nextState);\n\tstate.on(str[len - 1], nextState);\n\n\treturn newStates;\n}\n\nexports.CharacterState = CharacterState;\nexports.TokenState = TokenState;\nexports.stateify = stateify;","\"use strict\";\n\nexports.__esModule = true;\nfunction createTokenClass() {\n\treturn function (value) {\n\t\tif (value) {\n\t\t\tthis.v = value;\n\t\t}\n\t};\n}\n\nexports.createTokenClass = createTokenClass;","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","const HANDLERS_PROPERTY = '__v-click-outside'\nconst HAS_WINDOWS = typeof window !== 'undefined'\nconst HAS_NAVIGATOR = typeof navigator !== 'undefined'\nconst IS_TOUCH =\n HAS_WINDOWS &&\n ('ontouchstart' in window ||\n (HAS_NAVIGATOR && navigator.msMaxTouchPoints > 0))\nconst EVENTS = IS_TOUCH ? ['touchstart'] : ['click']\n\nfunction processDirectiveArguments(bindingValue) {\n const isFunction = typeof bindingValue === 'function'\n if (!isFunction && typeof bindingValue !== 'object') {\n throw new Error(\n 'v-click-outside: Binding value must be a function or an object',\n )\n }\n\n return {\n handler: isFunction ? bindingValue : bindingValue.handler,\n middleware: bindingValue.middleware || ((item) => item),\n events: bindingValue.events || EVENTS,\n isActive: !(bindingValue.isActive === false),\n detectIframe: !(bindingValue.detectIframe === false),\n }\n}\n\nfunction execHandler({ event, handler, middleware }) {\n if (middleware(event)) {\n handler(event)\n }\n}\n\nfunction onFauxIframeClick({ el, event, handler, middleware }) {\n // Note: on firefox clicking on iframe triggers blur, but only on\n // next event loop it becomes document.activeElement\n // https://stackoverflow.com/q/2381336#comment61192398_23231136\n setTimeout(() => {\n const { activeElement } = document\n if (\n activeElement &&\n activeElement.tagName === 'IFRAME' &&\n !el.contains(activeElement)\n ) {\n execHandler({ event, handler, middleware })\n }\n }, 0)\n}\n\nfunction onEvent({ el, event, handler, middleware }) {\n // Note: composedPath is not supported on IE and Edge, more information here:\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/composedPath\n // In the meanwhile, we are using el.contains for those browsers, not\n // the ideal solution, but using IE or EDGE is not ideal either.\n const path = event.path || (event.composedPath && event.composedPath())\n const isClickOutside = path\n ? path.indexOf(el) < 0\n : !el.contains(event.target)\n\n if (!isClickOutside) {\n return\n }\n\n execHandler({ event, handler, middleware })\n}\n\nfunction bind(el, { value }) {\n const {\n events,\n handler,\n middleware,\n isActive,\n detectIframe,\n } = processDirectiveArguments(value)\n if (!isActive) {\n return\n }\n\n el[HANDLERS_PROPERTY] = events.map((eventName) => ({\n event: eventName,\n srcTarget: document.documentElement,\n handler: (event) => onEvent({ el, event, handler, middleware }),\n }))\n\n if (detectIframe) {\n const detectIframeEvent = {\n event: 'blur',\n srcTarget: window,\n handler: (event) => onFauxIframeClick({ el, event, handler, middleware }),\n }\n\n el[HANDLERS_PROPERTY] = [...el[HANDLERS_PROPERTY], detectIframeEvent]\n }\n\n el[HANDLERS_PROPERTY].forEach(({ event, srcTarget, handler }) =>\n setTimeout(() => {\n // Note: More info about this implementation can be found here:\n // https://github.com/ndelvalle/v-click-outside/issues/137\n if (!el[HANDLERS_PROPERTY]) {\n return\n }\n srcTarget.addEventListener(event, handler, false)\n }, 0),\n )\n}\n\nfunction unbind(el) {\n const handlers = el[HANDLERS_PROPERTY] || []\n handlers.forEach(({ event, srcTarget, handler }) =>\n srcTarget.removeEventListener(event, handler, false),\n )\n delete el[HANDLERS_PROPERTY]\n}\n\nfunction update(el, { value, oldValue }) {\n if (JSON.stringify(value) === JSON.stringify(oldValue)) {\n return\n }\n unbind(el)\n bind(el, { value })\n}\n\nconst directive = {\n bind,\n update,\n unbind,\n}\n\nexport default HAS_WINDOWS ? directive : {}\n","import directive from './v-click-outside'\n\nconst plugin = {\n install(Vue) {\n Vue.directive('click-outside', directive)\n },\n directive,\n}\n\nexport default plugin\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '<!-') {\n state = STATE_COMMENT;\n }\n\n tag_buffer += char;\n break;\n\n case ' ':\n case '\\n':\n if (tag_buffer === '<') {\n state = STATE_PLAINTEXT;\n output += '< ';\n tag_buffer = '';\n\n break;\n }\n\n tag_buffer += char;\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n\n else if (state === STATE_COMMENT) {\n switch (char) {\n case '>':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","module.exports = require('./lib/linkify-string').default;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _linkify = require('./linkify');\n\nvar linkify = _interopRequireWildcard(_linkify);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tokenize = linkify.tokenize,\n options = linkify.options; /**\n \tConvert strings of text into linkable HTML text\n */\n\nvar Options = options.Options;\n\n\nfunction escapeText(text) {\n\treturn text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n\nfunction escapeAttr(href) {\n\treturn href.replace(/\"/g, '&quot;');\n}\n\nfunction attributesToString(attributes) {\n\tif (!attributes) {\n\t\treturn '';\n\t}\n\tvar result = [];\n\n\tfor (var attr in attributes) {\n\t\tvar val = attributes[attr] + '';\n\t\tresult.push(attr + '=\"' + escapeAttr(val) + '\"');\n\t}\n\treturn result.join(' ');\n}\n\nfunction linkifyStr(str) {\n\tvar opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\topts = new Options(opts);\n\n\tvar tokens = tokenize(str);\n\tvar result = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\n\t\tif (token.type === 'nl' && opts.nl2br) {\n\t\t\tresult.push('<br>\\n');\n\t\t\tcontinue;\n\t\t} else if (!token.isLink || !opts.check(token)) {\n\t\t\tresult.push(escapeText(token.toString()));\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar _opts$resolve = opts.resolve(token),\n\t\t formatted = _opts$resolve.formatted,\n\t\t formattedHref = _opts$resolve.formattedHref,\n\t\t tagName = _opts$resolve.tagName,\n\t\t className = _opts$resolve.className,\n\t\t target = _opts$resolve.target,\n\t\t attributes = _opts$resolve.attributes;\n\n\t\tvar link = '<' + tagName + ' href=\"' + escapeAttr(formattedHref) + '\"';\n\n\t\tif (className) {\n\t\t\tlink += ' class=\"' + escapeAttr(className) + '\"';\n\t\t}\n\n\t\tif (target) {\n\t\t\tlink += ' target=\"' + escapeAttr(target) + '\"';\n\t\t}\n\n\t\tif (attributes) {\n\t\t\tlink += ' ' + attributesToString(attributes);\n\t\t}\n\n\t\tlink += '>' + escapeText(formatted) + '</' + tagName + '>';\n\t\tresult.push(link);\n\t}\n\n\treturn result.join('');\n}\n\nif (!String.prototype.linkify) {\n\ttry {\n\t\tObject.defineProperty(String.prototype, 'linkify', {\n\t\t\tset: function set() {},\n\t\t\tget: function get() {\n\t\t\t\treturn function linkify(opts) {\n\t\t\t\t\treturn linkifyStr(this, opts);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t} catch (e) {\n\t\t// IE 8 doesn't like Object.defineProperty on non-DOM objects\n\t\tif (!String.prototype.linkify) {\n\t\t\tString.prototype.linkify = function (opts) {\n\t\t\t\treturn linkifyStr(this, opts);\n\t\t\t};\n\t\t}\n\t}\n}\n\nexports.default = linkifyStr;","'use strict';\n\nexports.__esModule = true;\nexports.tokenize = exports.test = exports.scanner = exports.parser = exports.options = exports.inherits = exports.find = undefined;\n\nvar _class = require('./linkify/utils/class');\n\nvar _options = require('./linkify/utils/options');\n\nvar options = _interopRequireWildcard(_options);\n\nvar _scanner = require('./linkify/core/scanner');\n\nvar scanner = _interopRequireWildcard(_scanner);\n\nvar _parser = require('./linkify/core/parser');\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nif (!Array.isArray) {\n\tArray.isArray = function (arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t};\n}\n\n/**\n\tConverts a string into tokens that represent linkable and non-linkable bits\n\t@method tokenize\n\t@param {String} str\n\t@return {Array} tokens\n*/\nvar tokenize = function tokenize(str) {\n\treturn parser.run(scanner.run(str));\n};\n\n/**\n\tReturns a list of linkable items in the given string.\n*/\nvar find = function find(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\tvar filtered = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\t\tif (token.isLink && (!type || token.type === type)) {\n\t\t\tfiltered.push(token.toObject());\n\t\t}\n\t}\n\n\treturn filtered;\n};\n\n/**\n\tIs the given string valid linkable text of some sort\n\tNote that this does not trim the text for you.\n\n\tOptionally pass in a second `type` param, which is the type of link to test\n\tfor.\n\n\tFor example,\n\n\t\ttest(str, 'email');\n\n\tWill return `true` if str is a valid email.\n*/\nvar test = function test(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\treturn tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);\n};\n\n// Scanner and parser provide states and tokens for the lexicographic stage\n// (will be used to add additional link types)\nexports.find = find;\nexports.inherits = _class.inherits;\nexports.options = options;\nexports.parser = parser;\nexports.scanner = scanner;\nexports.test = test;\nexports.tokenize = tokenize;","'use strict';\n\nexports.__esModule = true;\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 defaults = {\n\tdefaultProtocol: 'http',\n\tevents: null,\n\tformat: noop,\n\tformatHref: noop,\n\tnl2br: false,\n\ttagName: 'a',\n\ttarget: typeToTarget,\n\tvalidate: true,\n\tignoreTags: [],\n\tattributes: null,\n\tclassName: 'linkified' // Deprecated value - no default class will be provided in the future\n};\n\nexports.defaults = defaults;\nexports.Options = Options;\nexports.contains = contains;\n\n\nfunction Options(opts) {\n\topts = opts || {};\n\n\tthis.defaultProtocol = opts.hasOwnProperty('defaultProtocol') ? opts.defaultProtocol : defaults.defaultProtocol;\n\tthis.events = opts.hasOwnProperty('events') ? opts.events : defaults.events;\n\tthis.format = opts.hasOwnProperty('format') ? opts.format : defaults.format;\n\tthis.formatHref = opts.hasOwnProperty('formatHref') ? opts.formatHref : defaults.formatHref;\n\tthis.nl2br = opts.hasOwnProperty('nl2br') ? opts.nl2br : defaults.nl2br;\n\tthis.tagName = opts.hasOwnProperty('tagName') ? opts.tagName : defaults.tagName;\n\tthis.target = opts.hasOwnProperty('target') ? opts.target : defaults.target;\n\tthis.validate = opts.hasOwnProperty('validate') ? opts.validate : defaults.validate;\n\tthis.ignoreTags = [];\n\n\t// linkAttributes and linkClass is deprecated\n\tthis.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;\n\tthis.className = opts.hasOwnProperty('className') ? opts.className : opts.linkClass || defaults.className;\n\n\t// Make all tags names upper case\n\tvar ignoredTags = opts.hasOwnProperty('ignoreTags') ? opts.ignoreTags : defaults.ignoreTags;\n\tfor (var i = 0; i < ignoredTags.length; i++) {\n\t\tthis.ignoreTags.push(ignoredTags[i].toUpperCase());\n\t}\n}\n\nOptions.prototype = {\n\t/**\n * Given the token, return all options for how it should be displayed\n */\n\tresolve: function resolve(token) {\n\t\tvar href = token.toHref(this.defaultProtocol);\n\t\treturn {\n\t\t\tformatted: this.get('format', token.toString(), token),\n\t\t\tformattedHref: this.get('formatHref', href, token),\n\t\t\ttagName: this.get('tagName', href, token),\n\t\t\tclassName: this.get('className', href, token),\n\t\t\ttarget: this.get('target', href, token),\n\t\t\tevents: this.getObject('events', href, token),\n\t\t\tattributes: this.getObject('attributes', href, token)\n\t\t};\n\t},\n\n\n\t/**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n\tcheck: function check(token) {\n\t\treturn this.get('validate', token.toString(), token);\n\t},\n\n\n\t// Private methods\n\n\t/**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {String} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n\tget: function get(key, operator, token) {\n\t\tvar optionValue = void 0,\n\t\t option = this[key];\n\t\tif (!option) {\n\t\t\treturn option;\n\t\t}\n\n\t\tswitch (typeof option === 'undefined' ? 'undefined' : _typeof(option)) {\n\t\t\tcase 'function':\n\t\t\t\treturn option(operator, token.type);\n\t\t\tcase 'object':\n\t\t\t\toptionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];\n\t\t\t\treturn typeof optionValue === 'function' ? optionValue(operator, token.type) : optionValue;\n\t\t}\n\n\t\treturn option;\n\t},\n\tgetObject: function getObject(key, operator, token) {\n\t\tvar option = this[key];\n\t\treturn typeof option === 'function' ? option(operator, token.type) : option;\n\t}\n};\n\n/**\n * Quick indexOf replacement for checking the ignoreTags option\n */\nfunction contains(arr, value) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (arr[i] === value) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction noop(val) {\n\treturn val;\n}\n\nfunction typeToTarget(href, type) {\n\treturn type === 'url' ? '_blank' : null;\n}","'use strict';\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = require('./state');\n\nvar _text = require('./tokens/text');\n\nvar TOKENS = _interopRequireWildcard(_text);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tlds = 'aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw'.split('|'); // macro, see gulpfile.js\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar NUMBERS = '0123456789'.split('');\nvar ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');\nvar WHITESPACE = [' ', '\\f', '\\r', '\\t', '\\v', '\\xA0', '\\u1680', '\\u180E']; // excluding line breaks\n\nvar domainStates = []; // states that jump to DOMAIN on /[a-z0-9]/\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.CharacterState(tokenClass);\n};\n\n// Frequently used states\nvar S_START = makeState();\nvar S_NUM = makeState(_text.NUM);\nvar S_DOMAIN = makeState(_text.DOMAIN);\nvar S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\nvar S_WS = makeState(_text.WS);\n\n// States for special URL symbols\nS_START.on('@', makeState(_text.AT)).on('.', makeState(_text.DOT)).on('+', makeState(_text.PLUS)).on('#', makeState(_text.POUND)).on('?', makeState(_text.QUERY)).on('/', makeState(_text.SLASH)).on('_', makeState(_text.UNDERSCORE)).on(':', makeState(_text.COLON)).on('{', makeState(_text.OPENBRACE)).on('[', makeState(_text.OPENBRACKET)).on('<', makeState(_text.OPENANGLEBRACKET)).on('(', makeState(_text.OPENPAREN)).on('}', makeState(_text.CLOSEBRACE)).on(']', makeState(_text.CLOSEBRACKET)).on('>', makeState(_text.CLOSEANGLEBRACKET)).on(')', makeState(_text.CLOSEPAREN)).on('&', makeState(_text.AMPERSAND)).on([',', ';', '!', '\"', '\\''], makeState(_text.PUNCTUATION));\n\n// Whitespace jumps\n// Tokens of only non-newline whitespace are arbitrarily long\nS_START.on('\\n', makeState(_text.NL)).on(WHITESPACE, S_WS);\n\n// If any whitespace except newline, more whitespace!\nS_WS.on(WHITESPACE, S_WS);\n\n// Generates states for top-level domains\n// Note that this is most accurate when tlds are in alphabetical order\nfor (var i = 0; i < tlds.length; i++) {\n\tvar newStates = (0, _state.stateify)(tlds[i], S_START, _text.TLD, _text.DOMAIN);\n\tdomainStates.push.apply(domainStates, newStates);\n}\n\n// Collect the states generated by different protocls\nvar partialProtocolFileStates = (0, _state.stateify)('file', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolFtpStates = (0, _state.stateify)('ftp', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolHttpStates = (0, _state.stateify)('http', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolMailtoStates = (0, _state.stateify)('mailto', S_START, _text.DOMAIN, _text.DOMAIN);\n\n// Add the states to the array of DOMAINeric states\ndomainStates.push.apply(domainStates, partialProtocolFileStates);\ndomainStates.push.apply(domainStates, partialProtocolFtpStates);\ndomainStates.push.apply(domainStates, partialProtocolHttpStates);\ndomainStates.push.apply(domainStates, partialProtocolMailtoStates);\n\n// Protocol states\nvar S_PROTOCOL_FILE = partialProtocolFileStates.pop();\nvar S_PROTOCOL_FTP = partialProtocolFtpStates.pop();\nvar S_PROTOCOL_HTTP = partialProtocolHttpStates.pop();\nvar S_MAILTO = partialProtocolMailtoStates.pop();\nvar S_PROTOCOL_SECURE = makeState(_text.DOMAIN);\nvar S_FULL_PROTOCOL = makeState(_text.PROTOCOL); // Full protocol ends with COLON\nvar S_FULL_MAILTO = makeState(_text.MAILTO); // Mailto ends with COLON\n\n// Secure protocols (end with 's')\nS_PROTOCOL_FTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\nS_PROTOCOL_HTTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\ndomainStates.push(S_PROTOCOL_SECURE);\n\n// Become protocol tokens after a COLON\nS_PROTOCOL_FILE.on(':', S_FULL_PROTOCOL);\nS_PROTOCOL_SECURE.on(':', S_FULL_PROTOCOL);\nS_MAILTO.on(':', S_FULL_MAILTO);\n\n// Localhost\nvar partialLocalhostStates = (0, _state.stateify)('localhost', S_START, _text.LOCALHOST, _text.DOMAIN);\ndomainStates.push.apply(domainStates, partialLocalhostStates);\n\n// Everything else\n// DOMAINs make more DOMAINs\n// Number and character transitions\nS_START.on(NUMBERS, S_NUM);\nS_NUM.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN\n\nS_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n\n// All the generated states should have a jump to DOMAIN\nfor (var _i = 0; _i < domainStates.length; _i++) {\n\tdomainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n}\n\nS_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_DOMAIN).on(ALPHANUM, S_DOMAIN);\n\n// Set default transition\nS_START.defaultTransition = makeState(_text.SYM);\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {String} str Input string to scan\n\t@return {Array} Array of TOKEN instances\n*/\nvar run = function run(str) {\n\n\t// The state machine only looks at lowercase strings.\n\t// This selective `toLowerCase` is used because lowercasing the entire\n\t// string causes the length and character position to vary in some in some\n\t// non-English strings. This happens only on V8-based runtimes.\n\tvar lowerStr = str.replace(/[A-Z]/g, function (c) {\n\t\treturn c.toLowerCase();\n\t});\n\tvar len = str.length;\n\tvar tokens = []; // return value\n\n\tvar cursor = 0;\n\n\t// Tokenize the string\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar nextState = null;\n\t\tvar tokenLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && (nextState = state.next(lowerStr[cursor]))) {\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\ttokenLength++;\n\t\t\tcursor++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\t\t\tcontinue;\n\t\t} // Should never happen\n\n\t\t// Roll back to the latest accepting state\n\t\tcursor -= sinceAccepts;\n\t\ttokenLength -= sinceAccepts;\n\n\t\t// Get the class for the new token\n\t\tvar TOKEN = latestAccepting.emit(); // Current token class\n\n\t\t// No more jumps, just make a new token\n\t\ttokens.push(new TOKEN(str.substr(cursor - tokenLength, tokenLength)));\n\t}\n\n\treturn tokens;\n};\n\nvar start = S_START;\nexports.State = _state.CharacterState;\nexports.TOKENS = TOKENS;\nexports.run = run;\nexports.start = start;","'use strict';\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = require('./state');\n\nvar _multi = require('./tokens/multi');\n\nvar MULTI_TOKENS = _interopRequireWildcard(_multi);\n\nvar _text = require('./tokens/text');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main parser\n*/\n\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.TokenState(tokenClass);\n};\n\n// The universal starting state.\nvar S_START = makeState();\n\n// Intermediate states for URLs. Note that domains that begin with a protocol\n// are treated slighly differently from those that don't.\nvar S_PROTOCOL = makeState(); // e.g., 'http:'\nvar S_MAILTO = makeState(); // 'mailto:'\nvar S_PROTOCOL_SLASH = makeState(); // e.g., '/', 'http:/''\nvar S_PROTOCOL_SLASH_SLASH = makeState(); // e.g., '//', 'http://'\nvar S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\nvar S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\nvar S_TLD = makeState(_multi.URL); // (A) Simplest possible URL with no query string\nvar S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\nvar S_TLD_PORT = makeState(_multi.URL); // TLD followed by a port number\nvar S_URL = makeState(_multi.URL); // Long URL with optional port and maybe query string\nvar S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\nvar S_URL_OPENBRACE = makeState(); // URL followed by {\nvar S_URL_OPENBRACKET = makeState(); // URL followed by [\nvar S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\nvar S_URL_OPENPAREN = makeState(); // URL followed by (\nvar S_URL_OPENBRACE_Q = makeState(_multi.URL); // URL followed by { and some symbols that the URL can end it\nvar S_URL_OPENBRACKET_Q = makeState(_multi.URL); // URL followed by [ and some symbols that the URL can end it\nvar S_URL_OPENANGLEBRACKET_Q = makeState(_multi.URL); // URL followed by < and some symbols that the URL can end it\nvar S_URL_OPENPAREN_Q = makeState(_multi.URL); // URL followed by ( and some symbols that the URL can end it\nvar S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\nvar S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\nvar S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\nvar S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\nvar S_EMAIL = makeState(_multi.EMAIL); // (C) Possible email address (could have more tlds)\nvar S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\nvar S_EMAIL_PORT = makeState(_multi.EMAIL); // (C) Email address with a port\nvar S_MAILTO_EMAIL = makeState(_multi.MAILTOEMAIL); // Email that begins with the mailto prefix (D)\nvar S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\nvar S_LOCALPART = makeState(); // Local part of the email address\nvar S_LOCALPART_AT = makeState(); // Local part of the email address plus @\nvar S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\nvar S_NL = makeState(_multi.NL); // single new line\n\n// Make path from start to protocol (with '//')\nS_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);\n\nS_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);\n\n// The very first potential domain name\nS_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);\n\n// Force URL for protocol followed by anything sane\nS_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);\n\n// Account for dots and hyphens\n// hyphens are usually parts of domain names\nS_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Hyphen can jump back to a domain name\n\n// After the first domain and a dot, we can find either a URL or another domain\nS_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);\n\nS_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);\n\n// S_TLD accepts! But the URL could be longer, try to find a match greedily\n// The `run` function should be able to \"rollback\" to the accepting state\nS_TLD.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Become real URLs after `SLASH` or `COLON NUM SLASH`\n// Here PSS and non-PSS converge\nS_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);\nS_TLD_COLON.on(_text.NUM, S_TLD_PORT);\nS_TLD_PORT.on(_text.SLASH, S_URL);\nS_EMAIL.on(_text.COLON, S_EMAIL_COLON);\nS_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);\n\n// Types of characters the URL can definitely end in\nvar qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];\n\n// Types of tokens that can follow a URL and be part of the query string\n// but cannot be the very last characters\n// Characters that cannot appear in the URL at all should be excluded\nvar qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];\n\n// These states are responsible primarily for determining whether or not to\n// include the final round bracket.\n\n// URL, followed by an opening bracket\nS_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// URL with extra symbols at the end, followed by an opening bracket\nS_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// Closing bracket component. This character WILL be included in the URL\nS_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);\n\n// URL that beings with an opening bracket, followed by a symbols.\n// Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n// has a single opening bracket for some reason).\nS_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// URL that begins with an opening bracket, followed by some symbols\nS_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);\n\nS_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// Account for the query string\nS_URL.on(qsAccepting, S_URL);\nS_URL_NON_ACCEPTING.on(qsAccepting, S_URL);\n\nS_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);\n\n// Email address-specific state definitions\n// Note: We are not allowing '/' in email addresses since this would interfere\n// with real URLs\n\n// For addresses with the mailto prefix\n// 'mailto:' followed by anything sane is a valid email\nS_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);\n\n// Greedily get more potential valid email values\nS_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nS_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n\n// For addresses without the mailto prefix\n// Tokens allowed in the localpart of the email\nvar localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];\n\n// Some of the tokens in `localpartAccepting` are already accounted for here and\n// will not be overwritten (don't worry)\nS_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);\n\n// Okay we're on a localpart. Now what?\n// TODO: IP addresses and what if the email starts with numbers?\nS_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT) // close to an email address now\n.on(_text.DOT, S_LOCALPART_DOT);\nS_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);\n// States following `@` defined above\n\nvar run = function run(tokens) {\n\tvar len = tokens.length;\n\tvar cursor = 0;\n\tvar multis = [];\n\tvar textTokens = [];\n\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar secondState = null;\n\t\tvar nextState = null;\n\t\tvar multiLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && !(secondState = state.next(tokens[cursor]))) {\n\t\t\t// Starting tokens with nowhere to jump to.\n\t\t\t// Consider these to be just plain text\n\t\t\ttextTokens.push(tokens[cursor++]);\n\t\t}\n\n\t\twhile (cursor < len && (nextState = secondState || state.next(tokens[cursor]))) {\n\n\t\t\t// Get the next state\n\t\t\tsecondState = null;\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\tcursor++;\n\t\t\tmultiLength++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\n\t\t\t// No accepting state was found, part of a regular text token\n\t\t\t// Add all the tokens we looked at to the text tokens array\n\t\t\tfor (var i = cursor - multiLength; i < cursor; i++) {\n\t\t\t\ttextTokens.push(tokens[i]);\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Accepting state!\n\n\t\t\t// First close off the textTokens (if available)\n\t\t\tif (textTokens.length > 0) {\n\t\t\t\tmultis.push(new _multi.TEXT(textTokens));\n\t\t\t\ttextTokens = [];\n\t\t\t}\n\n\t\t\t// Roll back to the latest accepting state\n\t\t\tcursor -= sinceAccepts;\n\t\t\tmultiLength -= sinceAccepts;\n\n\t\t\t// Create a new multitoken\n\t\t\tvar MULTI = latestAccepting.emit();\n\t\t\tmultis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));\n\t\t}\n\t}\n\n\t// Finally close off the textTokens (if available)\n\tif (textTokens.length > 0) {\n\t\tmultis.push(new _multi.TEXT(textTokens));\n\t}\n\n\treturn multis;\n};\n\nexports.State = _state.TokenState;\nexports.TOKENS = MULTI_TOKENS;\nexports.run = run;\nexports.start = S_START;","'use strict';\n\nexports.__esModule = true;\nexports.URL = exports.TEXT = exports.NL = exports.EMAIL = exports.MAILTOEMAIL = exports.Base = undefined;\n\nvar _createTokenClass = require('./create-token-class');\n\nvar _class = require('../../utils/class');\n\nvar _text = require('./text');\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n// Is the given token a valid domain token?\n// Should nums be included here?\nfunction isDomainToken(token) {\n\treturn token instanceof _text.DOMAIN || token instanceof _text.TLD;\n}\n\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@abstract\n*/\nvar MultiToken = (0, _createTokenClass.createTokenClass)();\n\nMultiToken.prototype = {\n\t/**\n \tString representing the type for this token\n \t@property type\n \t@default 'TOKEN'\n */\n\ttype: 'token',\n\n\t/**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n\tisLink: false,\n\n\t/**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {String}\n */\n\ttoString: function toString() {\n\t\tvar result = [];\n\t\tfor (var i = 0; i < this.v.length; i++) {\n\t\t\tresult.push(this.v[i].toString());\n\t\t}\n\t\treturn result.join('');\n\t},\n\n\n\t/**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\treturn this.toString();\n\t},\n\n\n\t/**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {String} [protocol] `'http'` by default\n \t@return {Object}\n */\n\ttoObject: function toObject() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue: this.toString(),\n\t\t\thref: this.toHref(protocol)\n\t\t};\n\t}\n};\n\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MAILTO\n\t@extends MultiToken\n*/\nvar MAILTOEMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true\n});\n\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class EMAIL\n\t@extends MultiToken\n*/\nvar EMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true,\n\ttoHref: function toHref() {\n\t\treturn 'mailto:' + this.toString();\n\t}\n});\n\n/**\n\tRepresents some plain text\n\t@class TEXT\n\t@extends MultiToken\n*/\nvar TEXT = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'text' });\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class NL\n\t@extends MultiToken\n*/\nvar NL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'nl' });\n\n/**\n\tRepresents a list of tokens making up a valid URL\n\t@class URL\n\t@extends MultiToken\n*/\nvar URL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'url',\n\tisLink: true,\n\n\t/**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {String} protocol\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\tvar hasProtocol = false;\n\t\tvar hasSlashSlash = false;\n\t\tvar tokens = this.v;\n\t\tvar result = [];\n\t\tvar i = 0;\n\n\t\t// Make the first part of the domain lowercase\n\t\t// Lowercase protocol\n\t\twhile (tokens[i] instanceof _text.PROTOCOL) {\n\t\t\thasProtocol = true;\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Skip slash-slash\n\t\twhile (tokens[i] instanceof _text.SLASH) {\n\t\t\thasSlashSlash = true;\n\t\t\tresult.push(tokens[i].toString());\n\t\t\ti++;\n\t\t}\n\n\t\t// Lowercase all other characters in the domain\n\t\twhile (isDomainToken(tokens[i])) {\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Leave all other characters as they were written\n\t\tfor (; i < tokens.length; i++) {\n\t\t\tresult.push(tokens[i].toString());\n\t\t}\n\n\t\tresult = result.join('');\n\n\t\tif (!(hasProtocol || hasSlashSlash)) {\n\t\t\tresult = protocol + '://' + result;\n\t\t}\n\n\t\treturn result;\n\t},\n\thasProtocol: function hasProtocol() {\n\t\treturn this.v[0] instanceof _text.PROTOCOL;\n\t}\n});\n\nexports.Base = MultiToken;\nexports.MAILTOEMAIL = MAILTOEMAIL;\nexports.EMAIL = EMAIL;\nexports.NL = NL;\nexports.TEXT = TEXT;\nexports.URL = URL;","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\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-startswith -- safe\nvar $startsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\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, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, UNSUPPORTED_Y);\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n"],"sourceRoot":""} \ No newline at end of file