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

vendors~editor-collab~editor-guest.js.map « js - github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 72540dd35f9fa45c327dc96c65a914b04e9d2191 (plain)
1
{"version":3,"sources":["webpack:///../lib/index.ts","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/engine-is-node.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:///NextcloudVue.[name]/src/fonts/iconfont-vue-ed18ae7.eot","webpack:///webpack:/NextcloudVue.[name]/external \"v-tooltip\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.object.to-string.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.index-of.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.map.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/router\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.exec.js\"","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss?0d1f","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.replace.js\"","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.to-string.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.number.constructor.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.concat.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/event-bus\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.iterator.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.dom-collections.iterator.js\"","webpack:///NextcloudVue.[name]/src/utils/IsMobileState.js","webpack:///NextcloudVue.[name]/src/mixins/isMobile/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/auth\"","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/axios\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.url.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:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?a8b9","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?a0e4","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?0a3b","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.join.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.promise.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"regenerator-runtime/runtime.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 \"core-js/modules/es.string.starts-with.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"escape-html\"","webpack:///NextcloudVue.[name]/src/utils/GenColors.js","webpack:///NextcloudVue.[name]/src/components/Avatar/Avatar.vue?a1a3","webpack:///NextcloudVue.[name]/src/mixins/excludeClickOutsideClasses/index.js","webpack:///NextcloudVue.[name]/src/mixins/isFullscreen/index.js","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?7f21","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?36a5","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?9a57","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?63df","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?4d8f","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?fcd1","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?c9c3","webpack:///NextcloudVue.[name]/src/components/Avatar/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/capabilities\"","webpack:///webpack:/NextcloudVue.[name]/external \"md5\"","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.flat.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.unscopables.flat.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.constructor.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.includes.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.match.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.code-point-at.js\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.from-code-point.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/core-js/modules/es.array.join.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/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/regenerator-runtime/runtime.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.flat.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js"],"names":["elem","document","fallback","JSON","atob","DESCRIPTORS","require","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","create","getOwnPropertyNames","f","getOwnPropertyDescriptor","defineProperty","trim","NativeNumber","NumberPrototype","prototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","length","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","arguments","dummy","this","valueOf","call","keys","split","j","constructor","module","exports","process","factory","window","installedModules","__webpack_require__","moduleId","i","l","modules","m","c","d","name","getter","o","Object","enumerable","get","r","Symbol","toStringTag","t","mode","__esModule","ns","bind","n","object","property","hasOwnProperty","p","s","_slicedToArray","arr","Array","isArray","iterator","_arr","_n","_d","_e","_s","_i","next","done","push","err","minLen","_arrayLikeToArray","toString","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","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","url","default","hash","needQuotes","replace","__webpack_exports__","injectStylesIntoStyleTag_default","Tooltip","locals","VTooltip","defaultTemplate","SCOPE_VERSION","defaultHtml","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default","version","names","mappings","sourcesContent","IsMobileState","isMobile","watch","val","$emit","created","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","mounted","$on","onIsMobileChanged","$off","hasStatus","userStatus","status","message","icon","fetchUserStatus","userId","capabilities","getCapabilities","user_status","enabled","getCurrentUser","axios","generateOcsUrl","ocs","_this","_context","response","console","error","RichContenteditable_MentionBubblevue_type_script_lang_js_","props","type","required","label","primary","computed","avatarUrl","mentionText","getAvatarUrl","user","size","MentionBubblevue_type_style_index_0_id_724f9d58_lang_scss_scoped_true_","_vm","_h","$createElement","_c","_self","staticClass","class","mention-bubble--primary","attrs","contenteditable","backgroundImage","_v","role","title","USERID_REGEX","RegExp","USERID_REGEX_WITH_SPACE","userData","renderContent","escapeHtml","part","flat","startsWith","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_ed18ae7_eot__WEBPACK_IMPORTED_MODULE_3__","___CSS_LOADER_URL_REPLACEMENT_1___","_fonts_iconfont_vue_ed18ae7_woff__WEBPACK_IMPORTED_MODULE_4__","___CSS_LOADER_URL_REPLACEMENT_2___","_fonts_iconfont_vue_ed18ae7_ttf__WEBPACK_IMPORTED_MODULE_5__","___CSS_LOADER_URL_REPLACEMENT_3___","_fonts_iconfont_vue_ed18ae7_svg__WEBPACK_IMPORTED_MODULE_6__","excludeClickOutsideClasses","String","clickOutsideMiddleware","event","excludedClassList","hasNodeOrAnyParentClass","node","classArray","className","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_3ad7b73b_scoped_true_lang_css_","PopoverMenuItemvue_type_style_index_1_id_3ad7b73b_lang_scss_scoped_true_","PopoverMenu_PopoverMenuvue_type_script_lang_js_","components","PopoverMenuItem","download","rel","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_81c2afc0_lang_scss_scoped_true_","_l","PopoverMenu","getUserHasAvatar","setUserHasAvatar","flag","browserStorage","Avatar_Avatarvue_type_script_lang_js_","tooltip","ClickOutside","mixins","iconClass","showUserStatus","showUserStatusCompact","isGuest","displayName","allowPlaceholder","disableTooltip","disableMenu","tooltipMessage","isNoUser","statusColor","menuPosition","avatarUrlLoaded","avatarSrcSetLoaded","userDoesNotExist","isAvatarLoaded","isMenuLoaded","contactsMenuActions","contactsMenuOpenState","canDisplayUserStatus","showUserStatusIconOnAvatar","getUserIdentifier","isUserDefined","isDisplayNameDefined","isUrlDefined","hasMenu","shouldShowPlaceholder","avatarStyle","width","lineHeight","fontSize","initials","idx","html","actions","beforeDestroyed","handleUserStatusUpdated","toggleMenu","closeMenu","fetchContactsMenu","axios_default","_this2","loadAvatarUrl","srcset","avatarUrlGenerator","updateImageIfValid","userHasAvatar","img","_this3","Avatarvue_type_style_index_0_id_44d6742a_scoped_true_lang_scss_","_g","avatardiv--unknown","avatardiv--with-menu","alt","backgroundColor","xmlns","viewBox","fill","stroke","stroke-width","stroke-linecap","is-open","Avatar","usernameToColor","username","toLowerCase","match","md5","maximum","finalInt","charAt","define","anObject","aFunction","SPECIES","wellKnownSymbol","O","defaultConstructor","S","C","undefined","defer","channel","port","IS_IOS","IS_NODE","location","set","setImmediate","clear","clearImmediate","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","str","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","state","tag_buffer","depth","in_quote_char","output","char","normalize_tag","init_streaming_mode","$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","proto","forced","separator","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","then","INCORRECT_ITERATION","iterable","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","fail","domain","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","facade","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","that","unsafe","fetch","wrap","Promise","stat","capability","x","$promiseResolve","values","remaining","alreadyCalled","race","flush","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","promiseCapability","a","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","configurable","writable","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","isNaN","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","reverse","pop","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","fixRegExpWellKnownSymbolLogic","isRegExp","requireObjectCoercible","advanceStringIndex","toLength","callRegExpExec","regexpExec","arrayPush","min","SUPPORTS_Y","SPLIT","nativeSplit","maybeCallNative","internalSplit","limit","string","lim","lastIndex","lastLength","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","splitter","regexp","res","rx","unicodeMatching","q","A","z","loadState","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","substr","bytesToBase64","triplet","base64ToBytes","imod4","pow","readFloatLE","isSlowBuffer","_isBuffer","flattenIntoArray","toObject","toInteger","arraySpeciesCreate","depthArg","sourceLen","original","start","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","addToUnscopables","getFlags","stickyHelpers","MATCH","NativeRegExp","RegExpPrototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","$includes","includes","arrayMethodUsesToLength","ACCESSORS","1","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","codeAt","codePointAt","pos","toAbsoluteIndex","nativeFromCodePoint","fromCodePoint","elements","RangeError"],"mappings":"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","file":"vendors~editor-collab~editor-guest.js?v=49a6f1fb7d1596659d94","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';\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.github.io/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.github.io/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","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\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 = 71);\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\");","export default \"data:application/vnd.ms-fontobject;base64,rg8AAOQOAAABAAIAAAAAAAIABQMAAAAAAAABQJABAAAAAExQAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAA7/HH9QAAAAAAAAAAAAAAAAAAAAAAACgAAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AZQBkADEAOABhAGUANwAAAAAAABYAAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAAKAAAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlAGQAMQA4AGEAZQA3AAAAAAABAAAACgCAAAMAIE9TLzJ044/RAAAArAAAAGBjbWFwAA3ruAAAAQwAAAFCZ2x5ZsdHOUwAAAJQAAAH/GhlYWQqP4OgAAAKTAAAADZoaGVhJv0ThQAACoQAAAAkaG10eGe+//8AAAqoAAAANGxvY2ENvA9mAAAK3AAAAChtYXhwASAAVwAACwQAAAAgbmFtZRSDEtEAAAskAAACpnBvc3Q/VL7XAAANzAAAARYABBLKAZAABQAADGUNrAAAArwMZQ2sAAAJYAD1BQoAAAIABQMAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUGZFZABA6gHqEhOIAAABwhOIAAAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQAAAAAAPAADAAEAAAAcAAQAIAAAAAQABAABAADqEv//AADqAf//FgAAAQAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAOpg9DAAUACwAACQIRCQQRCQEOpvqCBX77ugRG+oL6ggV++7oERg9C+oL6ggE4BEYERgE4+oL6ggE4BEYERgABAAAAAA1uElAABQAACQERCQERBhsHU/d0CIwJxPit/sgIiwiM/scAAgAAAAAP3w9DAAUACwAACQIRCQQRCQEE4gV++oIERvu6BX4Ff/qBBEb7ugRGBX4Ffv7I+7r7uv7IBX4Ffv7I+7r7ugABAAAAAA6mElAABQAACQERCQERDW74rQiL93UJxAdTATn3dPd1ATgAAQAAAAAGNxOIAAUAABMHCQEXAZSUBXL6jpQFoxOIVfaR9pFVCcQAAAEAAAAAEYcPgwAFAAAJBQ/N9/P7+/5GBb8Jxw+D9/MEBf5H+kEJxgABAAAAABEXERcACwAACQsRF/3t+sD6wP3tBUD6wAITBUAFQAIT+sAEhP3tBUD6wAITBUAFQAIT+sAFQP3t+sAAAf//AAATkxLsADMAAAEiBw4BFxYXASEmBwYHBgcGFBcWFxYXFjchAQYHBhcWFx4BFxYXFjc2NwE2NzYnJicBLgEKYGVPSkYQEkgF1/HgTT46KScUFBQUJyk6Pk0OIPopNxoYAwMbGVY1Nzs+Oj81B+07FRUUFTz4Eyx0Euw5NKxZYEf6KgEbGC4sOTh4ODksLhgbAvopNT87Pjo3NlYZGgMDGBk4B+w8UVBPUjwH7C0yAAAAAgAAAAAOphJQABgARgAAASIHDgEHBhQXHgEXFjI3PgE3NjQnLgEnJgEiBwYHBhQXFhcWMyERISIHBgcGFBcWFxY3ITI3Njc2NCcmJyYjIRE0JyYnJiMJdm9mYpgpKyspmGJm3mZilyorKyqXYmb8NlZIRykrKylHSFYCcf2PVkhHKSsrKUdIVgdTVUhHKSsrKUdIVf2PKylHSVUSUCsql2Nl32VimCkrKymYYmXfZWOXKiv55SspR0irSEcpK/nmKylHSapJRykrASopR0mqSUcpKwdTVUhHKSsAAAMAAAAAERcRFwADAAcACwAAAREhEQERIREBESERAnEOpvFaDqbxWg6mERf9jwJx+eb9jwJx+eX9jwJxAAMAAAAAEp4L5wAYADEASgAAATIXHgEXFhQHDgEHBiInLgEnJjQ3PgE3NiEyFx4BFxYUBw4BBwYiJy4BJyY0Nz4BNzYhMhceARcWFAcOAQcGIicuAScmNDc+ATc2Aw1wZWKYKSsrKZhiZd9mYpcqKysql2JmByZvZmKXKisrKpdiZt5mYpcqKysql2JmByZvZmKXKisrKpdiZt9lYpgpKyspmGJlC+crKpdiZt5mYpcqKysql2Jm3mZilyorKyqXYmbeZmKXKisrKpdiZt5mYpcqKysql2Jm3mZilyorKyqXYmbeZmKXKisAAAAAAgAAAAAP3w/fAAMABwAAAREhESERIREDqgTiAnEE4g/f88sMNfPLDDUAAAABAAAAABEXERcAAgAACQICcQ6m8VoRF/it+K0AAQAAAAAOpgw1AAIAAAkCBOIE4gTiDDX7HgTgAAH/4AAAE2kTaQAxAAABBAUEBQQDAgMCERATEhMSBQQFBCEgJSQlJBMSExITBgAFBCEgJSQnJicmAwIREBMSAAhs/pj+sf66/u3+7sbKa26Ae+nlATkBPAFyAX4BlgFxAWEBVgEuASrr7JmcOLz+Kf75/vP+6v6+/s7+2f37uLtjZ1BOAScTaS6Xk+nn/tf+0/6r/p/+j/5q/oL+jv7E/sfl6HyAa2jFwgENAQ4BQwFLAWnM/tpOUGdju7j7/QEnATIBQgElARMBDQHLAAIAAAAAE4gTiAAkAEAAAAEgBQQFBAMCAwIQExITEgUEBQQgJSQlJBMSExIQAwIDAiUkJSQBITIXHgEXFhQHDgEHBiMhIicuAScmNDc+ATc2CcT+av6C/o7+xP7H5eh8gIB86OUBOQE8AXIBfgMsAX4BcgE8ATnl6HyAgHzo5f7H/sT+jv6C+sEHU1tXVIQkJiYkhFRXW/itXFdUhCQmJiSEVFcTiIB86OX+x/7E/o7+gvzU/oL+jv7E/sfl6HyAgHzo5QE5ATwBcgF+AywBfgFyATwBOeXofID4ESYlhFNXuFdThCUmJiWEU1e4V1OEJSYAAAACAAAAABOIE4gAJAA9AAABIAUEBQQDAgMCEBMSExIFBAUEICUkJSQTEhMSEAMCAwIlJCUkASAFBAATEhADAgAFBCAlJAADAhATEgAlJAnE/mr+gv6O/sT+x+XofICAfOjlATkBPAFyAX4DLAF+AXIBPAE55eh8gIB86OX+x/7E/o7+gv5qATcBFwEPAZtwdHRw/mX+8f7p/ZL+6f7x/mVwdHRwAZsBDwEXE4iAfOjl/sf+xP6O/oL81P6C/o7+xP7H5eh8gIB86OUBOQE8AXIBfgMsAX4BcgE8ATnl6HyA/Bh0cP5l/vH+6f2S/un+8f5lcHR0cAGbAQ8BFwJuARcBDwGbcHQAAAACAAAAABOIE4gAAwAoAAABIREhASAFBAUEAwIDAhATEhMSBQQFBCAlJCUkExITEhADAgMCJSQlJAXcB9D4MAPo/mr+gv6O/sT+x+XofICAfOjlATkBPAFyAX4DLAF+AXIBPAE55eh8gIB86OX+x/7E/o7+ggXcB9AF3IB86OX+x/7E/o7+gvzU/oL+jv7E/sfl6HyAgHzo5QE5ATwBcgF+AywBfgFyATwBOeXofIAAAAEAAAABAAD1x/HvXw889QALE4gAAAAA2/99yQAAAADbrqHK/+AAABOTE4gAAAAIAAIAAAAAAAAAAQAAE4gAAAAAE4j/4P/1E5MAAQAAAAAAAAAAAAAAAAAAAAcAAAAAE4gAABOIAAATiAAAE4gAAAY2AAATiAAAAAD//wAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAiADYAWABsAIAAlAC0AQ4BfAGaAhACJgI0AkICqAMiA6YD/gABAAAAEwBLAAMAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAAAEADGAAEAAAAAAAEAFAAAAAEAAAAAAAIABwAUAAEAAAAAAAMAFAAbAAEAAAAAAAQAFAAvAAEAAAAAAAUACwBDAAEAAAAAAAYAFABOAAEAAAAAAAoAKwBiAAEAAAAAAAsAEwCNAAMAAQQJAAEAKACgAAMAAQQJAAIADgDIAAMAAQQJAAMAKADWAAMAAQQJAAQAKAD+AAMAAQQJAAUAFgEmAAMAAQQJAAYAKAE8AAMAAQQJAAoAVgFkAAMAAQQJAAsAJgG6aWNvbmZvbnQtdnVlLWVkMThhZTdSZWd1bGFyaWNvbmZvbnQtdnVlLWVkMThhZTdpY29uZm9udC12dWUtZWQxOGFlN1ZlcnNpb24gMS4waWNvbmZvbnQtdnVlLWVkMThhZTdHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQBpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtAGUAZAAxADgAYQBlADcAUgBlAGcAdQBsAGEAcgBpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtAGUAZAAxADgAYQBlADcAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlAGQAMQA4AGEAZQA3AFYAZQByAHMAaQBvAG4AIAAxAC4AMABpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtAGUAZAAxADgAYQBlADcARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwATAAABAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMRYXJyb3ctbGVmdC1kb3VibGUKYXJyb3ctbGVmdBJhcnJvdy1yaWdodC1kb3VibGULYXJyb3ctcmlnaHQKYnJlYWRjcnVtYgljaGVja21hcmsFY2xvc2UHY29uZmlybQRpbmZvBG1lbnUEbW9yZQVwYXVzZQRwbGF5CnRyaWFuZ2xlLXMQdXNlci1zdGF0dXMtYXdheQ91c2VyLXN0YXR1cy1kbmQVdXNlci1zdGF0dXMtaW52aXNpYmxlEnVzZXItc3RhdHVzLW9ubGluZQAA\"","module.exports = require(\"v-tooltip\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.array.index-of.js\");","module.exports = require(\"core-js/modules/es.array.map.js\");","module.exports = require(\"@nextcloud/router\");","module.exports = require(\"core-js/modules/es.regexp.exec.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/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","module.exports = require(\"core-js/modules/es.string.replace.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, \".vue-tooltip[data-v-ed18ae7]{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-ed18ae7][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-ed18ae7][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-ed18ae7][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-ed18ae7][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-ed18ae7][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-ed18ae7][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-ed18ae7] .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-ed18ae7] .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:\\\"ed18ae7\\\"; @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.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","module.exports = require(\"core-js/modules/es.array.concat.js\");","module.exports = require(\"@nextcloud/event-bus\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","/**\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/auth\");","module.exports = require(\"@nextcloud/axios\");","module.exports = require(\"core-js/modules/web.url.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:\\\"ed18ae7\\\"; @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","// 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-3ad7b73b] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-3ad7b73b] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-3ad7b73b]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-3ad7b73b] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-3ad7b73b] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenuItem.vue\"],\"names\":[],\"mappings\":\";AA4HA;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>\\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<input :id=\\\"key\\\"\\n\\t\\t\\t\\t\\tv-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<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<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<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\\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: $clickable-area;\\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-3ad7b73b]{display:flex;flex:0 0 auto}li.hidden[data-v-3ad7b73b]{display:none}li>button[data-v-3ad7b73b],li>a[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]{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-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{padding:0 14px 0 44px}li>button[data-v-3ad7b73b]:not(:disabled):hover,li>button[data-v-3ad7b73b]:not(:disabled):focus,li>button:not(:disabled).active[data-v-3ad7b73b],li>a[data-v-3ad7b73b]:not(:disabled):hover,li>a[data-v-3ad7b73b]:not(:disabled):focus,li>a:not(:disabled).active[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]:not(:disabled):hover,li>.menuitem[data-v-3ad7b73b]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-3ad7b73b]{opacity:1 !important}li>button.action[data-v-3ad7b73b],li>a.action[data-v-3ad7b73b],li>.menuitem.action[data-v-3ad7b73b]{padding:inherit !important}li>button>span[data-v-3ad7b73b],li>a>span[data-v-3ad7b73b],li>.menuitem>span[data-v-3ad7b73b]{cursor:pointer;white-space:nowrap}li>button>p[data-v-3ad7b73b],li>a>p[data-v-3ad7b73b],li>.menuitem>p[data-v-3ad7b73b]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-3ad7b73b],li>a>select[data-v-3ad7b73b],li>.menuitem>select[data-v-3ad7b73b]{margin:0;margin-left:6px}li>button[data-v-3ad7b73b]:not(:empty),li>a[data-v-3ad7b73b]:not(:empty),li>.menuitem[data-v-3ad7b73b]:not(:empty){padding-right:14px !important}li>button>img[data-v-3ad7b73b],li>a>img[data-v-3ad7b73b],li>.menuitem>img[data-v-3ad7b73b]{width:44px;padding:14px}li>button>input.radio+label[data-v-3ad7b73b],li>button>input.checkbox+label[data-v-3ad7b73b],li>a>input.radio+label[data-v-3ad7b73b],li>a>input.checkbox+label[data-v-3ad7b73b],li>.menuitem>input.radio+label[data-v-3ad7b73b],li>.menuitem>input.checkbox+label[data-v-3ad7b73b]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-3ad7b73b]::before,li>a>input.checkbox+label[data-v-3ad7b73b]::before,li>.menuitem>input.checkbox+label[data-v-3ad7b73b]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-3ad7b73b]::before,li>a>input.radio+label[data-v-3ad7b73b]::before,li>.menuitem>input.radio+label[data-v-3ad7b73b]::before{margin:-2px 12px 0}li>button>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-3ad7b73b],li>a form[data-v-3ad7b73b],li>.menuitem form[data-v-3ad7b73b]{display:flex;flex:1 1 auto}li>button form[data-v-3ad7b73b]:not(:first-child),li>a form[data-v-3ad7b73b]:not(:first-child),li>.menuitem form[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-3ad7b73b],li>button>span[style*='display:none']+form[data-v-3ad7b73b],li>a>span.hidden+form[data-v-3ad7b73b],li>a>span[style*='display:none']+form[data-v-3ad7b73b],li>.menuitem>span.hidden+form[data-v-3ad7b73b],li>.menuitem>span[style*='display:none']+form[data-v-3ad7b73b]{margin-left:0}li>button input[data-v-3ad7b73b],li>a input[data-v-3ad7b73b],li>.menuitem input[data-v-3ad7b73b]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-3ad7b73b]:not(:first-child),li>a input[data-v-3ad7b73b]:not(:first-child),li>.menuitem input[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-3ad7b73b]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-3ad7b73b]{margin-bottom:12px}li>button[data-v-3ad7b73b]{padding:0}li>button span[data-v-3ad7b73b]{opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenuItem.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AA2MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC9LmB,CD+LnB,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,UC1LiB,CDgKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBClNa,CD8KhB,+RA2CG,wBC7NkB,CDkLrB,iqCAoDK,gBCtOgB,CDkLrB,iQA2DG,qBC7OkB,CDkLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAnFtB,oGAwFG,QAAS,CACT,eAAgB,CAzFnB,mHA8FG,6BAAsC,CA9FzC,2FAoGG,UCtRkB,CDuRlB,YC/Q6C,CD0KhD,mRA2GG,oBAAqB,CACrB,UAAW,CA5Gd,sKA+GG,kBAAmB,CA/GtB,6JAkHG,kBAAmB,CAlHtB,4QAqHG,WAAY,CArHf,8FA0HG,YAAa,CACb,aAAc,CA3HjB,oJA+HI,eAAgB,CA/HpB,oTAqIG,aAAc,CArIjB,iGAyIG,cC3TkB,CD4TlB,eAAY,CACZ,YAAa,CACb,aAAc,CA5IjB,uJA+II,eAAgB,CA/IpB,+gBA0JK,eAA8B,CA1JnC,ygBAiKK,kBAAiC,CAjKtC,2BAuKE,SAAU,CAvKZ,gCAyKG,SCxUa\",\"sourcesContent\":[\"$scope_version:\\\"ed18ae7\\\"; @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\\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\\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: $clickable-area;\\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-81c2afc0]{display:flex;flex-direction:column}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./PopoverMenu.vue\"],\"names\":[],\"mappings\":\"AA0DA,oBACC,YAAa,CACb,qBAAsB\",\"sourcesContent\":[\"$scope_version:\\\"ed18ae7\\\"; @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(\"core-js/modules/es.promise.js\");","module.exports = require(\"regenerator-runtime/runtime.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 Vue from 'vue'\nimport stripTags from 'striptags'\nimport escapeHtml from 'escape-html'\nimport MentionBubble from '../../components/RichContenteditable/MentionBubble.vue'\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\treturn part\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/gm, '<br>')\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>/g, '\\n')\n\t\t\ttext = text.replace(/&nbsp;/g, ' ')\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>/gim, '\\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]/g, '')\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(\"core-js/modules/es.string.starts-with.js\");","module.exports = require(\"escape-html\");","/**\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-ed18ae7.eot\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"../../fonts/iconfont-vue-ed18ae7.woff\";\nimport ___CSS_LOADER_URL_IMPORT_2___ from \"../../fonts/iconfont-vue-ed18ae7.ttf\";\nimport ___CSS_LOADER_URL_IMPORT_3___ from \"../../fonts/iconfont-vue-ed18ae7.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-ed18ae7\\\";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-44d6742a]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.arrow-left[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.arrow-right-double[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.arrow-right[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.breadcrumb[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.checkmark[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.close[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.confirm[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.info[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.menu[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.more[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.pause[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.play[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.triangle-s[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.user-status-away[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.user-status-dnd[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.user-status-invisible[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.icon.user-status-online[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";content:\\\"\\\"}.avatardiv[data-v-44d6742a]{position:relative;display:inline-block}.avatardiv--unknown[data-v-44d6742a]{position:relative;background-color:var(--color-text-maxcontrast)}.avatardiv[data-v-44d6742a]: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-44d6742a]:not(.avatardiv--unknown){background-color:#000 !important}.avatardiv--with-menu[data-v-44d6742a]{cursor:pointer}.avatardiv--with-menu .icon-more[data-v-44d6742a]{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:inherit;height:inherit;cursor:pointer;opacity:0;background:none;font-size:18px}.avatardiv--with-menu .icon-more[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv--with-menu .icon-more[data-v-44d6742a]::before{display:block}.avatardiv--with-menu:focus .icon-more[data-v-44d6742a],.avatardiv--with-menu:hover .icon-more[data-v-44d6742a]{opacity:1}.avatardiv--with-menu:focus img[data-v-44d6742a],.avatardiv--with-menu:hover img[data-v-44d6742a]{opacity:0.3}.avatardiv--with-menu .icon-more[data-v-44d6742a],.avatardiv--with-menu img[data-v-44d6742a]{transition:opacity var(--animation-quick)}.avatardiv>.unknown[data-v-44d6742a]{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-44d6742a]{width:100%;height:100%;object-fit:cover}.avatardiv .avatardiv__status[data-v-44d6742a]{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-44d6742a]{border-radius:50%;background-color:var(--color-success)}.avatardiv .avatardiv__status--negative[data-v-44d6742a]{background-color:var(--color-error)}.avatardiv .avatardiv__status--neutral[data-v-44d6742a]{border:none;background-color:transparent !important}.avatardiv .avatardiv__status--neutral svg[data-v-44d6742a]{position:absolute;top:-3px;left:-2px}.avatardiv .avatardiv__status--neutral svg path[data-v-44d6742a]{fill:#aaa}.avatardiv .avatardiv__user-status[data-v-44d6742a]{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-44d6742a]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-44d6742a]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-44d6742a]{color:#49b382}.avatardiv .avatardiv__user-status--online[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--dnd[data-v-44d6742a]{background-color:#ffffff;color:#ed484c}.avatardiv .avatardiv__user-status--dnd[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--away[data-v-44d6742a]{color:#f4a331}.avatardiv .avatardiv__user-status--away[data-v-44d6742a]:before{font-family:\\\"iconfont-vue-ed18ae7\\\";font-style:normal;font-weight:400;content:\\\"\\\"}.avatardiv .avatardiv__user-status--icon[data-v-44d6742a]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-44d6742a]{position:relative;display:inline-block}.avatardiv .popovermenu[data-v-44d6742a]{display:block;margin:0;font-size:var(--default-font-size)}.avatar-class-icon[data-v-44d6742a]{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,iBC4cE,CACT,oBACA,CAAA,qCAEA,iBAAU,CACT,8CACkB,CAAA,qDAGZ,gCAEN,CAAA,yCAKoB,CAAA,sEAPd,gCAKL,CAAA,uCACA,cAAA,CAAA,kDAID,iBAEU,CACT,KAAA,CAAA,MAAU,CAAA,YAEV,CAAA,kBAEA,CAAA,sBACA,CAAA,aAAiB,CAAA,cACV,CAAA,cACC,CAAA,SACF,CAAE,eACD,CAAE,cACG,CAAA,yDAXb,kCD9kBD,CAAA,iBAAsB,CAkFnB,eAAY,CAAA,WACZ,CAAA,0DC2fF,aAAU,CAAA,gHAFV,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,kCDrrBF,CAAA,iBAAA,CAAsB,eAkFP,CAAA,WACZ,CAAA,yDCsmBD,wBAEA,CAAA,aAAkB,CAAA,gEAFlB,kCDzrBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC2mBD,aAAA,CAAA,iEAAA,kCD9rBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC+mBD,WAAA,CAAA,4BAEA,CAAA,iDA3IO,iBA+IT,CAAA,oBACW,CAAQ,yCAhJpB,aAoJC,CAAA,QACC,CAAA,kCAEW,CAAA,oCAAA,iBACX,CAAA,+CAKiB,CAAA,WAAA\",\"sourcesContent\":[\"$__iconfont__data: map-merge(if(global_variable_exists('__iconfont__data'), $__iconfont__data, ()), (\\n\\t\\\"iconfont-vue-ed18ae7\\\": (\\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-ed18ae7\\\";\\n   src: url('../iconfont-vue-ed18ae7.eot'); /* IE9 Compat Modes */\\n   src: url('../iconfont-vue-ed18ae7.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\\n      url('../iconfont-vue-ed18ae7.woff') format('woff'), /* Pretty Modern Browsers */\\n      url('../iconfont-vue-ed18ae7.ttf')  format('truetype'), /* Safari, Android, iOS */\\n      url('../iconfont-vue-ed18ae7.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-ed18ae7\\\") {\\n      &.#{$icon-prefix}#{$icon}:before {\\n        font-family: \\\"iconfont-vue-ed18ae7\\\";\\n        content: iconfont-item(\\\"iconfont-vue-ed18ae7/#{$icon}\\\");\\n      }\\n    }\\n  }\\n}\\n\",\"$scope_version:\\\"ed18ae7\\\"; @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@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.icon-more {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: inherit;\\n\\t\\t\\theight: inherit;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\tbackground: none;\\n\\t\\t\\tfont-size: 18px;\\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\\t.popovermenu {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 0;\\n\\t\\tfont-size: var(--default-font-size);\\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',_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>\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<input :id=\"key\"\n\t\t\t\t\tv-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<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<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<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\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: $clickable-area;\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=3ad7b73b&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=3ad7b73b&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>\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',[(_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=81c2afc0&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('div',{staticClass:\"icon-more\"}):_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(),_vm._v(\" \"),(_vm.hasMenu)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.contactsMenuOpenState),expression:\"contactsMenuOpenState\"}],staticClass:\"popovermenu\",class:(\"menu-\" + _vm.menuPosition)},[_c('PopoverMenu',{attrs:{\"is-open\":_vm.contactsMenuOpenState,\"menu\":_vm.menu}})],1):_vm._e()])}\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<div v-if=\"hasMenu\" class=\"icon-more\" />\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\n\t\t<!-- Menu container -->\n\t\t<div v-if=\"hasMenu\"\n\t\t\tv-show=\"contactsMenuOpenState\"\n\t\t\tclass=\"popovermenu\"\n\t\t\t:class=\"`menu-${menuPosition}`\">\n\t\t\t<PopoverMenu :is-open=\"contactsMenuOpenState\" :menu=\"menu\" />\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'\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\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 * 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\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\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\ttext: 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\tthis.fetchUserStatus(this.user)\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\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.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.icon-more {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: inherit;\n\t\t\theight: inherit;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t\tbackground: none;\n\t\t\tfont-size: 18px;\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\t.popovermenu {\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tfont-size: var(--default-font-size);\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=44d6742a&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(\"@nextcloud/capabilities\");","module.exports = require(\"md5\");","/**\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.flat.js\");","module.exports = require(\"core-js/modules/es.array.unscopables.flat.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"core-js/modules/es.string.match.js\");","module.exports = require(\"core-js/modules/es.string.code-point-at.js\");","module.exports = require(\"core-js/modules/es.string.from-code-point.js\");","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.github.io/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\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\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","'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.github.io/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","'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\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.github.io/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.github.io/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\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.github.io/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.github.io/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.github.io/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.github.io/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_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  if (!IS_IOS && !IS_NODE && 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 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","/**\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 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 fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\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.github.io/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.github.io/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                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', 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 = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), 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}, !SUPPORTS_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 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://github.com/tc39/proposal-flatMap\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","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flat');\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.github.io/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.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\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.github.io/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.github.io/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","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\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"],"sourceRoot":""}