diff --git a/apps/settings/src/components/AuthToken.spec.ts b/apps/settings/src/components/AuthToken.spec.ts new file mode 100644 index 0000000000000..2bfe1b62897ef --- /dev/null +++ b/apps/settings/src/components/AuthToken.spec.ts @@ -0,0 +1,55 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { describe, expect, it } from 'vitest' +import { detect } from '../utils/userAgentDetect.ts' + +describe('Android Chrome detection', () => { + it('modern Android Chrome (no Build/ string, post-2021) should match androidChrome', () => { + const ua = 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Mobile Safari/537.36' + expect(detect(ua)).toEqual({ + id: 'androidChrome', + version: '132', + }) + }) + + it('legacy Android Chrome (with Build/ string, pre-2021) should match androidChrome', () => { + const ua = 'Mozilla/5.0 (Linux; Android 10; SM-G973F Build/QP1A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36' + expect(detect(ua)).toEqual({ + id: 'androidChrome', + version: '130', + }) + }) + + it('Android Chrome on tablet (no "Mobile" in UA) should match androidChrome', () => { + const ua = 'Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' + expect(detect(ua)).toEqual({ + id: 'androidChrome', + version: '131', + }) + }) +}) + +describe('Desktop Chrome regression tests', () => { + it('Desktop Chrome on Linux should still match chrome', () => { + const ua = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' + expect(detect(ua)).toEqual({ + id: 'chrome', + version: '132', + os: 'Linux', + }) + }) +}) + +describe('Desktop Firefox regression tests', () => { + it('Desktop Firefox on Linux should still match firefox', () => { + const ua = 'Mozilla/5.0 (X11; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0' + expect(detect(ua)).toEqual({ + id: 'firefox', + version: '124', + os: 'Linux', + }) + }) +}) diff --git a/apps/settings/src/components/AuthToken.vue b/apps/settings/src/components/AuthToken.vue index 17a5319d66cdf..034009e9a8c66 100644 --- a/apps/settings/src/components/AuthToken.vue +++ b/apps/settings/src/components/AuthToken.vue @@ -100,35 +100,8 @@ import NcDateTime from '@nextcloud/vue/components/NcDateTime' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcTextField from '@nextcloud/vue/components/NcTextField' import { TokenType, useAuthTokenStore } from '../store/authtoken.ts' +import { detect } from '../utils/userAgentDetect.ts' -// When using capture groups the following parts are extracted the first is used as the version number, the second as the OS -const userAgentMap = { - ie: /(?:MSIE|Trident|Trident\/7.0; rv)[ :](\d+)/, - // Microsoft Edge User Agent from https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx - edge: /^Mozilla\/5\.0 \([^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+ Edge\/[0-9.]+$/, - // Firefox User Agent from https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference - firefox: /^Mozilla\/5\.0 \([^)]*(Windows|OS X|Linux)[^)]+\) Gecko\/[0-9.]+ Firefox\/(\d+)(?:\.\d)?$/, - // Chrome User Agent from https://developer.chrome.com/multidevice/user-agent - chrome: /^Mozilla\/5\.0 \([^)]*(Windows|OS X|Linux)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/(\d+)[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+$/, - // Safari User Agent from http://www.useragentstring.com/pages/Safari/ - safari: /^Mozilla\/5\.0 \([^)]*(Windows|OS X)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\)(?: Version\/([0-9]+)[0-9.]+)? Safari\/[0-9.A-Z]+$/, - // Android Chrome user agent: https://developers.google.com/chrome/mobile/docs/user-agent - androidChrome: /Android.*(?:; (.*) Build\/).*Chrome\/(\d+)[0-9.]+/, - iphone: / *CPU +iPhone +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */, - ipad: /\(iPad; *CPU +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */, - iosClient: /^Mozilla\/5\.0 \(iOS\) (?:ownCloud|Nextcloud)-iOS.*$/, - androidClient: /^Mozilla\/5\.0 \(Android\) (?:ownCloud|Nextcloud)-android.*$/, - iosTalkClient: /^Mozilla\/5\.0 \(iOS\) Nextcloud-Talk.*$/, - androidTalkClient: /^Mozilla\/5\.0 \(Android\) Nextcloud-Talk.*$/, - // DAVx5/3.3.8-beta2-gplay (2021/01/02; dav4jvm; okhttp/4.9.0) Android/10 - davx5: /DAV(?:droid|x5)\/([^ ]+)/, - // Mozilla/5.0 (U; Linux; Maemo; Jolla; Sailfish; like Android 4.3) AppleWebKit/538.1 (KHTML, like Gecko) WebPirate/2.0 like Mobile Safari/538.1 (compatible) - webPirate: /(Sailfish).*WebPirate\/(\d+)/, - // Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0 - sailfishBrowser: /(Sailfish).*SailfishBrowser\/(\d+)/, - // Neon 1.0.0+1 - neon: /Neon \d+\.\d+\.\d+\+\d+/, -} const nameMap = { edge: 'Microsoft Edge', firefox: 'Firefox', @@ -203,18 +176,7 @@ export default defineComponent({ } } - for (const client in userAgentMap) { - const matches = this.token.name.match(userAgentMap[client]) - if (matches) { - return { - id: client, - os: matches[2] && matches[1], - version: matches[2] ?? matches[1], - } - } - } - - return null + return detect(this.token.name) }, /** diff --git a/apps/settings/src/utils/userAgentDetect.ts b/apps/settings/src/utils/userAgentDetect.ts new file mode 100644 index 0000000000000..749ddeed1bc3e --- /dev/null +++ b/apps/settings/src/utils/userAgentDetect.ts @@ -0,0 +1,33 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { userAgentMap } from './userAgentMap.ts' + +export interface DetectedUserAgent { + id: string + version?: string + os?: string +} + +/** + * Detect the client from a user agent string. + * + * @param ua Raw user agent string + * @return Detected client information or null if unknown + */ +export function detect(ua: string): DetectedUserAgent | null { + for (const id in userAgentMap) { + const matches = ua.match(userAgentMap[id]) + if (matches) { + return { + id, + version: matches[2] ?? matches[1], + os: matches[2] && matches[1], + } + } + } + + return null +} diff --git a/apps/settings/src/utils/userAgentMap.ts b/apps/settings/src/utils/userAgentMap.ts new file mode 100644 index 0000000000000..916e3bb788a04 --- /dev/null +++ b/apps/settings/src/utils/userAgentMap.ts @@ -0,0 +1,35 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +// When using capture groups the following parts are extracted +// the first is used as the version number, the second as the OS +// Exception: single-group regexes (ie, androidChrome) use the first group as the version. +export const userAgentMap = { + ie: /(?:MSIE|Trident|Trident\/7.0; rv)[ :](\d+)/, + // Microsoft Edge User Agent from https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx + edge: /^Mozilla\/5\.0 \([^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+ Edge\/[0-9.]+$/, + // Firefox User Agent from https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference + firefox: /^Mozilla\/5\.0 \((?![^)]*Android)[^)]*(Windows|OS X|Linux)[^)]+\) Gecko\/[0-9.]+ Firefox\/(\d+)(?:\.\d)?$/, + // Android Chrome user agent: https://developers.google.com/chrome/mobile/docs/user-agent + androidChrome: /^Mozilla\/5\.0 \(Linux; Android[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/(\d+)[0-9.]+ (?:Mobile )?Safari\/[0-9.]+$/, + // Chrome User Agent from https://developer.chrome.com/multidevice/user-agent + chrome: /^Mozilla\/5\.0 \((?![^)]*Android)[^)]*(Windows|OS X|Linux)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/(\d+)[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+$/, + // Safari User Agent from http://www.useragentstring.com/pages/Safari/ + safari: /^Mozilla\/5\.0 \([^)]*(Windows|OS X)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\)(?: Version\/([0-9]+)[0-9.]+)? Safari\/[0-9.A-Z]+$/, + iphone: / *CPU +iPhone +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */, + ipad: /\(iPad; *CPU +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */, + iosClient: /^Mozilla\/5\.0 \(iOS\) (?:ownCloud|Nextcloud)-iOS.*$/, + androidClient: /^Mozilla\/5\.0 \(Android\) (?:ownCloud|Nextcloud)-android.*$/, + iosTalkClient: /^Mozilla\/5\.0 \(iOS\) Nextcloud-Talk.*$/, + androidTalkClient: /^Mozilla\/5\.0 \(Android\) Nextcloud-Talk.*$/, + // DAVx5/3.3.8-beta2-gplay (2021/01/02; dav4jvm; okhttp/4.9.0) Android/10 + davx5: /DAV(?:droid|x5)\/([^ ]+)/, + // Mozilla/5.0 (U; Linux; Maemo; Jolla; Sailfish; like Android 4.3) AppleWebKit/538.1 (KHTML, like Gecko) WebPirate/2.0 like Mobile Safari/538.1 (compatible) + webPirate: /(Sailfish).*WebPirate\/(\d+)/, + // Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0 + sailfishBrowser: /(Sailfish).*SailfishBrowser\/(\d+)/, + // Neon 1.0.0+1 + neon: /Neon \d+\.\d+\.\d+\+\d+/, +} diff --git a/dist/settings-vue-settings-personal-security.js b/dist/settings-vue-settings-personal-security.js index 33c4bd52987d6..e8e80b9dd6db1 100644 --- a/dist/settings-vue-settings-personal-security.js +++ b/dist/settings-vue-settings-personal-security.js @@ -1,2 +1,2 @@ -(()=>{var e,n,o,i={71410(e,n,o){"use strict";var i=o(21777),r=o(10810);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}function l(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){for(var n=0;n=0)return 1;return 0}(),u=d&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},c))}};function f(e){return e&&"[object Function]"==={}.toString.call(e)}function h(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function v(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function m(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=h(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+o)?e:m(v(e))}function g(e){return e&&e.referenceNode?e.referenceNode:e}var y=d&&!(!window.MSInputMethodContext||!document.documentMode),b=d&&/MSIE 10/.test(navigator.userAgent);function _(e){return 11===e?y:10===e?b:y||b}function w(e){if(!e)return document.documentElement;for(var t=_(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var o=n&&n.nodeName;return o&&"BODY"!==o&&"HTML"!==o?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===h(n,"position")?w(n):n:e?e.ownerDocument.documentElement:document.documentElement}function A(e){return null!==e.parentNode?A(e.parentNode):e}function C(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,o=n?e:t,i=n?t:e,r=document.createRange();r.setStart(o,0),r.setEnd(i,0);var s,a,l=r.commonAncestorContainer;if(e!==l&&t!==l||o.contains(i))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&w(s.firstElementChild)!==s?w(l):l;var p=A(e);return p.host?C(p.host,t):C(e,A(t).host)}function k(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var o=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||o)[t]}return e[t]}function T(e,t){var n="x"===t?"Left":"Top",o="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+o+"Width"])}function O(e,t,n,o){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],_(10)?parseInt(n["offset"+e])+parseInt(o["margin"+("Height"===e?"Top":"Left")])+parseInt(o["margin"+("Height"===e?"Bottom":"Right")]):0)}function x(e){var t=e.body,n=e.documentElement,o=_(10)&&getComputedStyle(n);return{height:O("Height",t,n,o),width:O("Width",t,n,o)}}var E=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],o=_(10),i="HTML"===t.nodeName,r=P(e),s=P(t),a=m(e),l=h(t),p=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);n&&i&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var c=$({top:r.top-s.top-p,left:r.left-s.left-d,width:r.width,height:r.height});if(c.marginTop=0,c.marginLeft=0,!o&&i){var u=parseFloat(l.marginTop),f=parseFloat(l.marginLeft);c.top-=p-u,c.bottom-=p-u,c.left-=d-f,c.right-=d-f,c.marginTop=u,c.marginLeft=f}return(o&&!n?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(c=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=k(t,"top"),i=k(t,"left"),r=n?-1:1;return e.top+=o*r,e.bottom+=o*r,e.left+=i*r,e.right+=i*r,e}(c,t)),c}function D(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===h(e,"position"))return!0;var n=v(e);return!!n&&D(n)}function I(e){if(!e||!e.parentElement||_())return document.documentElement;for(var t=e.parentElement;t&&"none"===h(t,"transform");)t=t.parentElement;return t||document.documentElement}function j(e,t,n,o){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=i?I(e):C(e,g(t));if("viewport"===o)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,o=L(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=t?0:k(n),a=t?0:k(n,"left");return $({top:s-o.top+o.marginTop,left:a-o.left+o.marginLeft,width:i,height:r})}(s,i);else{var a=void 0;"scrollParent"===o?"BODY"===(a=m(v(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===o?e.ownerDocument.documentElement:o;var l=L(a,s,i);if("HTML"!==a.nodeName||D(s))r=l;else{var p=x(e.ownerDocument),d=p.height,c=p.width;r.top+=l.top-l.marginTop,r.bottom=d+l.top,r.left+=l.left-l.marginLeft,r.right=c+l.left}}var u="number"==typeof(n=n||0);return r.left+=u?n:n.left||0,r.top+=u?n:n.top||0,r.right-=u?n:n.right||0,r.bottom-=u?n:n.bottom||0,r}function B(e,t,n,o,i){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=j(n,o,r,i),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},l=Object.keys(a).map(function(e){return S({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),p=l.filter(function(e){var t=e.width,o=e.height;return t>=n.clientWidth&&o>=n.clientHeight}),d=p.length>0?p[0].key:l[0].key,c=e.split("-")[1];return d+(c?"-"+c:"")}function M(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return L(n,o?I(t):C(t,g(n)),o)}function R(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),o=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+o,height:e.offsetHeight+n}}function H(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function F(e,t,n){n=n.split("-")[0];var o=R(e),i={width:o.width,height:o.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",p=r?"width":"height";return i[s]=t[s]+t[l]/2-o[l]/2,i[a]=n===a?t[a]-o[p]:t[H(a)],i}function W(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var o=W(e,function(e){return e[t]===n});return e.indexOf(o)}(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&f(n)&&(t.offsets.popper=$(t.offsets.popper),t.offsets.reference=$(t.offsets.reference),t=n(t,e))}),t}function q(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=M(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=B(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=F(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function V(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function G(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),o=0;o1&&void 0!==arguments[1]&&arguments[1],n=ie.indexOf(e),o=ie.slice(n+1).concat(ie.slice(0,n));return t?o.reverse():o}var se={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],o=t.split("-")[1];if(o){var i=e.offsets,r=i.reference,s=i.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",p=a?"width":"height",d={start:N({},l,r[l]),end:N({},l,r[l]+r[p]-s[p])};e.offsets.popper=S({},s,d[o])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n,o=t.offset,i=e.placement,r=e.offsets,s=r.popper,a=r.reference,l=i.split("-")[0];return n=Z(+o)?[+o,0]:function(e,t,n,o){var i=[0,0],r=-1!==["right","left"].indexOf(o),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(W(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,p=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(p=p.map(function(e,o){var i=(1===o?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,o){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],s=i[2];return r?0===s.indexOf("%")?$("%p"===s?n:o)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,i,t,n)})})).forEach(function(e,t){e.forEach(function(n,o){Z(n)&&(i[t]+=n*("-"===e[o-1]?-1:1))})}),i}(o,s,a,l),"left"===l?(s.top+=n[0],s.left-=n[1]):"right"===l?(s.top+=n[0],s.left+=n[1]):"top"===l?(s.left+=n[0],s.top-=n[1]):"bottom"===l&&(s.left+=n[0],s.top+=n[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||w(e.instance.popper);e.instance.reference===n&&(n=w(n));var o=G("transform"),i=e.instance.popper.style,r=i.top,s=i.left,a=i[o];i.top="",i.left="",i[o]="";var l=j(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=r,i.left=s,i[o]=a,t.boundaries=l;var p=t.priority,d=e.offsets.popper,c={primary:function(e){var n=d[e];return d[e]l[e]&&!t.escapeWithReference&&(o=Math.min(d[n],l[e]-("right"===e?d.width:d.height))),N({},n,o)}};return p.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=S({},d,c[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,o=t.reference,i=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(i),a=s?"right":"bottom",l=s?"left":"top",p=s?"width":"height";return n[a]r(o[a])&&(e.offsets.popper[l]=r(o[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var o=t.element;if("string"==typeof o){if(!(o=e.instance.popper.querySelector(o)))return e}else if(!e.instance.popper.contains(o))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(i),p=l?"height":"width",d=l?"Top":"Left",c=d.toLowerCase(),u=l?"left":"top",f=l?"bottom":"right",v=R(o)[p];a[f]-vs[f]&&(e.offsets.popper[c]+=a[c]+v-s[f]),e.offsets.popper=$(e.offsets.popper);var m=a[c]+a[p]/2-v/2,g=h(e.instance.popper),y=parseFloat(g["margin"+d]),b=parseFloat(g["border"+d+"Width"]),_=m-e.offsets.popper[c]-y-b;return _=Math.max(Math.min(s[p]-v,_),0),e.arrowElement=o,e.offsets.arrow=(N(n={},c,Math.round(_)),N(n,u,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(V(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=j(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),o=e.placement.split("-")[0],i=H(o),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[o,i];break;case"clockwise":s=re(o);break;case"counterclockwise":s=re(o,!0);break;default:s=t.behavior}return s.forEach(function(a,l){if(o!==a||s.length===l+1)return e;o=e.placement.split("-")[0],i=H(o);var p=e.offsets.popper,d=e.offsets.reference,c=Math.floor,u="left"===o&&c(p.right)>c(d.left)||"right"===o&&c(p.left)c(d.top)||"bottom"===o&&c(p.top)c(n.right),v=c(p.top)c(n.bottom),g="left"===o&&f||"right"===o&&h||"top"===o&&v||"bottom"===o&&m,y=-1!==["top","bottom"].indexOf(o),b=!!t.flipVariations&&(y&&"start"===r&&f||y&&"end"===r&&h||!y&&"start"===r&&v||!y&&"end"===r&&m),_=!!t.flipVariationsByContent&&(y&&"start"===r&&h||y&&"end"===r&&f||!y&&"start"===r&&m||!y&&"end"===r&&v),w=b||_;(u||g||w)&&(e.flipped=!0,(u||g)&&(o=s[l+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=o+(r?"-"+r:""),e.offsets.popper=S({},e.offsets.popper,F(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],o=e.offsets,i=o.popper,r=o.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[s?"left":"top"]=r[n]-(a?i[s?"width":"height"]:0),e.placement=H(t),e.offsets.popper=$(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=W(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(o.update)},this.update=u(this.update.bind(this)),this.options=S({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(S({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){o.options.modifiers[t]=S({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return S({name:e},o.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&f(e.onLoad)&&e.onLoad(o.reference,o.popper,o.options,e,o.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return E(e,[{key:"update",value:function(){return q.call(this)}},{key:"destroy",value:function(){return U.call(this)}},{key:"enableEventListeners",value:function(){return X.call(this)}},{key:"disableEventListeners",value:function(){return J.call(this)}}]),e}();le.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,le.placements=oe,le.Defaults=ae;const pe=le;var de,ce=o(2404),ue=o.n(ce);function fe(){fe.init||(fe.init=!0,de=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var o=e.indexOf("Edge/");return o>0?parseInt(e.substring(o+5,e.indexOf(".",o)),10):-1}())}function he(e,t,n,o,i,r,s,a,l,p){"boolean"!=typeof s&&(l=a,a=s,s=!1);var d,c="function"==typeof n?n.options:n;if(e&&e.render&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0,i&&(c.functional=!0)),o&&(c._scopeId=o),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=d):t&&(d=s?function(e){t.call(this,p(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(c.functional){var u=c.render;c.render=function(e,t){return d.call(t),u(e,t)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,d):[d]}return n}var ve={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;fe(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",de&&this.$el.appendChild(t),t.data="about:blank",de||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!de&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},me=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};me._withStripped=!0;var ge=he({render:me,staticRenderFns:[]},void 0,ve,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),ye={version:"1.0.1",install:function(e){e.component("resize-observer",ge),e.component("ResizeObserver",ge)}},be=null;"undefined"!=typeof window?be=window.Vue:"undefined"!=typeof globalThis&&(be=globalThis.Vue),be&&be.use(ye);var _e=o(55364),we=o.n(_e),Ae=function(){};function Ce(e){return"string"==typeof e&&(e=e.split(" ")),e}function ke(e,t){var n,o=Ce(t);n=e.className instanceof Ae?Ce(e.className.baseVal):Ce(e.className),o.forEach(function(e){-1===n.indexOf(e)&&n.push(e)}),e instanceof SVGElement?e.setAttribute("class",n.join(" ")):e.className=n.join(" ")}function Te(e,t){var n,o=Ce(t);n=e.className instanceof Ae?Ce(e.className.baseVal):Ce(e.className),o.forEach(function(e){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",n.join(" ")):e.className=n.join(" ")}"undefined"!=typeof window&&(Ae=window.SVGAnimatedString);var Oe=!1;if("undefined"!=typeof window){Oe=!1;try{var xe=Object.defineProperty({},"passive",{get:function(){Oe=!0}});window.addEventListener("test",null,xe)}catch(e){}}function Ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function Ne(e){for(var t=1;t
',trigger:"hover focus",offset:0},$e=[],Pe=function(){function e(t,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,"_events",[]),l(this,"_setTooltipNodeEvent",function(e,t,n,i){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!o._tooltipNode.contains(r)&&(o._tooltipNode.addEventListener(e.type,function n(r){var s=r.relatedreference||r.toElement||r.relatedTarget;o._tooltipNode.removeEventListener(e.type,n),t.contains(s)||o._scheduleHide(t,i.delay,i,r)}),!0)}),n=Ne(Ne({},Se),n),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=n,this._isOpen=!1,this._init()}return t=e,n=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,n=e&&e.classes||ze.options.defaultClass;ue()(this._classes,n)||(this.setClasses(n),t=!0),e=Me(e);var o=!1,i=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(o=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(i=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(i){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else o&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var n=this,o=window.document.createElement("div");o.innerHTML=t.trim();var i=o.childNodes[0];return i.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),i.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(i.addEventListener("mouseenter",function(t){return n._scheduleHide(e,n.options.delay,n.options,t)}),i.addEventListener("click",function(t){return n._scheduleHide(e,n.options.delay,n.options,t)})),i}},{key:"_setContent",value:function(e,t){var n=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){n.popperInstance&&n.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var n=this;return new Promise(function(o,i){var r=t.html,s=n._tooltipNode;if(s){var a=s.querySelector(n.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var l=e();return void(l&&"function"==typeof l.then?(n.asyncContent=!0,t.loadingClass&&ke(s,t.loadingClass),t.loadingContent&&n._applyContent(t.loadingContent,t),l.then(function(e){return t.loadingClass&&Te(s,t.loadingClass),n._applyContent(e,t)}).then(o).catch(i)):n._applyContent(l,t).then(o).catch(i))}r?a.innerHTML=e:a.innerText=e}o()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var n=!0;this._tooltipNode&&(ke(this._tooltipNode,this._classes),n=!1);var o=this._ensureShown(e,t);return n&&this._tooltipNode&&ke(this._tooltipNode,this._classes),ke(e,["v-tooltip-open"]),o}}},{key:"_ensureShown",value:function(e,t){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,$e.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var o=e.getAttribute("title")||t.title;if(!o)return this;var i=this._create(e,t.template);this._tooltipNode=i,e.setAttribute("aria-describedby",i.id);var r=this._findContainer(t.container,e);this._append(i,r);var s=Ne(Ne({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Ne(Ne({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new pe(e,i,s),this._setContent(o,t),requestAnimationFrame(function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame(function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")})):n.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=$e.indexOf(this);-1!==e&&$e.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Te(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var n=t.func,o=t.event;e.reference.removeEventListener(o,n)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,n){var o=this,i=[],r=[];t.forEach(function(e){switch(e){case"hover":i.push("mouseenter"),r.push("mouseleave"),o.options.hideOnTargetClick&&r.push("click");break;case"focus":i.push("focus"),r.push("blur"),o.options.hideOnTargetClick&&r.push("click");break;case"click":i.push("click"),r.push("click")}}),i.forEach(function(t){var i=function(t){!0!==o._isOpen&&(t.usedByTooltip=!0,o._scheduleShow(e,n.delay,n,t))};o._events.push({event:t,func:i}),e.addEventListener(t,i)}),r.forEach(function(t){var i=function(t){!0!==t.usedByTooltip&&o._scheduleHide(e,n.delay,n,t)};o._events.push({event:t,func:i}),e.addEventListener(t,i)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,n){var o=this,i=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return o._show(e,n)},i)}},{key:"_scheduleHide",value:function(e,t,n,o){var i=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&i._tooltipNode.ownerDocument.body.contains(i._tooltipNode)){if("mouseleave"===o.type&&i._setTooltipNodeEvent(o,e,t,n))return;i._hide(e,n)}},r)}}],n&&p(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,n}();function Le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function De(e){for(var t=1;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Me(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:De({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var n=s(t.offset),o=t.offset;("number"===n||"string"===n&&-1===o.indexOf(","))&&(o="0, ".concat(o)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:o}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function Re(e,t){for(var n=e.placement,o=0;o2&&void 0!==arguments[2]?arguments[2]:{},o=He(t),i=void 0!==t.classes?t.classes:ze.options.defaultClass,r=De({title:o},Me(De(De({},"object"===s(t)?t:{}),{},{placement:Re(t,n)}))),a=e._tooltip=new Pe(e,r);a.setClasses(i),a._vueEl=e;var l=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=l,ke(e,l),a}(e,n,i),void 0!==n.show&&n.show!==e._tooltipOldShow&&(e._tooltipOldShow=n.show,n.show?o.show():o.hide())):Fe(e)}var ze={options:Be,bind:We,update:We,unbind:function(e){Fe(e)}};function qe(e){e.addEventListener("click",Ge),e.addEventListener("touchstart",Ue,!!Oe&&{passive:!0})}function Ve(e){e.removeEventListener("click",Ge),e.removeEventListener("touchstart",Ue),e.removeEventListener("touchend",Ye),e.removeEventListener("touchcancel",Ke)}function Ge(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ue(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",Ye),t.addEventListener("touchcancel",Ke)}}function Ye(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var n=e.changedTouches[0],o=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-o.screenY)<20&&Math.abs(n.screenX-o.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Ke(e){e.currentTarget.$_vclosepopover_touch=!1}var Qe={bind:function(e,t){var n=t.value,o=t.modifiers;e.$_closePopoverModifiers=o,(void 0===n||n)&&qe(e)},update:function(e,t){var n=t.value,o=t.oldValue,i=t.modifiers;e.$_closePopoverModifiers=i,n!==o&&(void 0===n||n?qe(e):Ve(e))},unbind:function(e){Ve(e)}};function Xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function Je(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=t.event;t.skipDelay;var o=t.force;!(void 0!==o&&o)&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var o=this.$_findContainer(this.container,t);if(!o)return void console.warn("No container for popover",this);o.appendChild(n),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var i=Je(Je({},this.popperOptions),{},{placement:this.placement});if(i.modifiers=Je(Je({},i.modifiers),{},{arrow:Je(Je({},i.modifiers&&i.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();i.modifiers.offset=Je(Je({},i.modifiers&&i.modifiers.offset),{},{offset:r})}this.boundariesElement&&(i.modifiers.preventOverflow=Je(Je({},i.modifiers&&i.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pe(t,n,i),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,l=0;l1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var o=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},o)}},$_setTooltipNodeEvent:function(e){var t=this,n=this.$refs.trigger,o=this.$refs.popover,i=e.relatedreference||e.toElement||e.relatedTarget;return!!o.contains(i)&&(o.addEventListener(e.type,function i(r){var s=r.relatedreference||r.toElement||r.relatedTarget;o.removeEventListener(e.type,i),n.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var n=t.func,o=t.event;e.removeEventListener(o,n)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function it(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(n){var o=tt[n];if(o.$refs.popover){var i=o.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&i||o.autoHide&&!i)&&o.$_handleGlobalClose(e,t)})}},o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var o={};we()(o,Be,n),pt.options=o,ze.options=o,t.directive("tooltip",ze),t.directive("close-popover",Qe),t.component("VPopover",lt)}},get enabled(){return Ie.enabled},set enabled(e){Ie.enabled=e}},dt=null;"undefined"!=typeof window?dt=window.Vue:"undefined"!=typeof globalThis&&(dt=globalThis.Vue),dt&&dt.use(pt);const ct=pt;var ut=o(85471),ft=o(81222),ht=o(53334),vt=o(9165),mt=o(57505),gt=o(78928),yt=o(24764),bt=o(74095),_t=o(4604),wt=o(6695),At=o(82182),Ct=o(19051),kt=o(85168),Tt=o(68149),Ot=o(63814);const xt=(0,o(35947).YK)().setApp("settings").detectUser().build(),Et=(0,Ot.Jv)("/settings/personal/authtokens");var Nt;(0,Tt.IF)(Ct.Ay),function(e){e[e.TEMPORARY_TOKEN=0]="TEMPORARY_TOKEN",e[e.PERMANENT_TOKEN=1]="PERMANENT_TOKEN",e[e.WIPING_TOKEN=2]="WIPING_TOKEN",e[e.ONETIME_TOKEN=3]="ONETIME_TOKEN"}(Nt||(Nt={}));const St=(0,r.nY)("auth-token",{state:()=>({tokens:(0,ft.C)("settings","app_tokens",[])}),actions:{async updateToken(e){const{data:t}=await Ct.Ay.put(`${Et}/${e.id}`,e);return t},async addToken(e){xt.debug("Creating a new app token");try{const{data:t}=await Ct.Ay.post(Et,{name:e,oneTime:!0},{confirmPassword:Tt.mH.Strict});return this.tokens.push(t.deviceToken),xt.debug("App token created"),t}catch{return null}},async deleteToken(e){xt.debug("Deleting app token",{token:e}),this.tokens=this.tokens.filter(({id:t})=>t!==e.id);try{return await Ct.Ay.delete(`${Et}/${e.id}`),xt.debug("App token deleted"),!0}catch(t){xt.error("Could not delete app token",{error:t}),(0,kt.Qg)((0,ht.Tl)("settings","Could not delete the app token")),this.tokens.push(e)}return!1},async wipeToken(e){xt.debug("Wiping app token",{token:e});try{return await(0,Tt.C5)(),await new Promise(e=>{window.OC.dialogs.confirm((0,ht.Tl)("settings","Do you really want to wipe your data from this device?"),(0,ht.Tl)("settings","Confirm wipe"),e,!0)})?(await Ct.Ay.post(`${Et}/wipe/${e.id}`),xt.debug("App token marked for wipe",{token:e}),e.type=Nt.WIPING_TOKEN,e.canRename=!1,!0):void xt.debug("Wipe aborted by user")}catch(e){xt.error("Could not wipe app token",{error:e}),(0,kt.Qg)((0,ht.Tl)("settings","Error while wiping the device with the token"))}return!1},async renameToken(e,t){xt.debug(`renaming app token ${e.id} from ${e.name} to '${t}'`);const n=e.name;e.name=t;try{return await this.updateToken(e),xt.debug("App token name updated"),!0}catch(t){xt.error("Could not update app token name",{error:t}),(0,kt.Qg)((0,ht.Tl)("settings","Error while updating device token name")),e.name=n}return!1},async setTokenScope(e,t,n){xt.debug("Updating app token scope",{token:e,scope:t,value:n});const o=e.scope[t];e.scope[t]=n;try{return await this.updateToken(e),xt.debug("app token scope updated"),!0}catch(n){xt.error("could not update app token scope",{error:n}),(0,kt.Qg)((0,ht.Tl)("settings","Error while updating device token scope")),e.scope[t]=o}return!1}}}),$t={ie:/(?:MSIE|Trident|Trident\/7.0; rv)[ :](\d+)/,edge:/^Mozilla\/5\.0 \([^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+ Edge\/[0-9.]+$/,firefox:/^Mozilla\/5\.0 \([^)]*(Windows|OS X|Linux)[^)]+\) Gecko\/[0-9.]+ Firefox\/(\d+)(?:\.\d)?$/,chrome:/^Mozilla\/5\.0 \([^)]*(Windows|OS X|Linux)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/(\d+)[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+$/,safari:/^Mozilla\/5\.0 \([^)]*(Windows|OS X)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\)(?: Version\/([0-9]+)[0-9.]+)? Safari\/[0-9.A-Z]+$/,androidChrome:/Android.*(?:; (.*) Build\/).*Chrome\/(\d+)[0-9.]+/,iphone:/ *CPU +iPhone +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */,ipad:/\(iPad; *CPU +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */,iosClient:/^Mozilla\/5\.0 \(iOS\) (?:ownCloud|Nextcloud)-iOS.*$/,androidClient:/^Mozilla\/5\.0 \(Android\) (?:ownCloud|Nextcloud)-android.*$/,iosTalkClient:/^Mozilla\/5\.0 \(iOS\) Nextcloud-Talk.*$/,androidTalkClient:/^Mozilla\/5\.0 \(Android\) Nextcloud-Talk.*$/,davx5:/DAV(?:droid|x5)\/([^ ]+)/,webPirate:/(Sailfish).*WebPirate\/(\d+)/,sailfishBrowser:/(Sailfish).*SailfishBrowser\/(\d+)/,neon:/Neon \d+\.\d+\.\d+\+\d+/},Pt={edge:"Microsoft Edge",firefox:"Firefox",chrome:"Google Chrome",safari:"Safari",androidChrome:(0,ht.Tl)("settings","Google Chrome for Android"),iphone:"iPhone",ipad:"iPad",iosClient:(0,ht.Tl)("settings","{productName} iOS app",{productName:window.oc_defaults.productName}),androidClient:(0,ht.Tl)("settings","{productName} Android app",{productName:window.oc_defaults.productName}),iosTalkClient:(0,ht.Tl)("settings","{productName} Talk for iOS",{productName:window.oc_defaults.productName}),androidTalkClient:(0,ht.Tl)("settings","{productName} Talk for Android",{productName:window.oc_defaults.productName}),syncClient:(0,ht.Tl)("settings","Sync client"),davx5:"DAVx5",webPirate:"WebPirate",sailfishBrowser:"SailfishBrowser",neon:"Neon"},Lt=(0,ut.pM)({name:"AuthToken",components:{NcActions:yt.A,NcActionButton:mt.A,NcActionCheckbox:gt.N,NcButton:bt.A,NcDateTime:_t.A,NcIconSvgWrapper:wt.A,NcTextField:At.A},props:{token:{type:Object,required:!0}},setup:()=>({authTokenStore:St()}),data:()=>({actionOpen:!1,renaming:!1,newName:"",oldName:"",mdiCheck:vt.Tfj}),computed:{canChangeScope(){return this.token.type===Nt.PERMANENT_TOKEN},client(){const e=this.token.name.match(/Mozilla\/5\.0 \((\w+)\) (?:mirall|csyncoC)\/(\d+\.\d+\.\d+)/);if(e)return{id:"syncClient",os:e[1],version:e[2]};for(const e in $t){const t=this.token.name.match($t[e]);if(t)return{id:e,os:t[2]&&t[1],version:t[2]??t[1]}}return null},tokenLastActivity(){return 1e3*this.token.lastActivity},tokenIcon(){if(this.token.type===Nt.PERMANENT_TOKEN)return vt.Mx_;switch(this.client?.id){case"edge":return vt.MXC;case"firefox":return vt.Ckb;case"chrome":return vt.KR_;case"safari":return vt.lWO;case"androidChrome":case"androidClient":case"androidTalkClient":return vt.mbi;case"iphone":case"iosClient":case"iosTalkClient":return vt.qFD;case"ipad":return vt.Fzw;case"davx5":return vt.vrq;case"syncClient":return vt.F5c;default:return vt.zY6}},tokenLabel(){if(this.token.current)return(0,ht.Tl)("settings","This session");if(null===this.client)return this.token.name;const e=Pt[this.client.id];return this.client.os?(0,ht.Tl)("settings","{client} - {version} ({system})",{client:e,system:this.client.os,version:this.client.version}):this.client.version?(0,ht.Tl)("settings","{client} - {version}",{client:e,version:this.client.version}):e},wiping(){return this.token.type===Nt.WIPING_TOKEN}},methods:{t:ht.Tl,updateFileSystemScope(e){this.authTokenStore.setTokenScope(this.token,"filesystem",e)},startRename(){this.actionOpen=!1,this.oldName=this.token.name,this.newName=this.token.name,this.renaming=!0,this.$nextTick(()=>{this.$refs.input.select()})},cancelRename(){this.renaming=!1},revoke(){this.actionOpen=!1,this.authTokenStore.deleteToken(this.token)},rename(){this.renaming=!1,this.authTokenStore.renameToken(this.token,this.newName)},wipe(){this.actionOpen=!1,this.authTokenStore.wipeToken(this.token)}}}),Dt=Lt;var It=o(85072),jt=o.n(It),Bt=o(97825),Mt=o.n(Bt),Rt=o(77659),Ht=o.n(Rt),Ft=o(55056),Wt=o.n(Ft),zt=o(10540),qt=o.n(zt),Vt=o(41113),Gt=o.n(Vt),Ut=o(90051),Yt={};Yt.styleTagTransform=Gt(),Yt.setAttributes=Wt(),Yt.insert=Ht().bind(null,"head"),Yt.domAPI=Mt(),Yt.insertStyleElement=qt(),jt()(Ut.A,Yt),Ut.A&&Ut.A.locals&&Ut.A.locals;var Kt=o(14486),Qt=(0,Kt.A)(Dt,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"auth-token",class:[{"auth-token--wiping":e.wiping}],attrs:{"data-id":e.token.id}},[t("td",{staticClass:"auth-token__name"},[t("NcIconSvgWrapper",{attrs:{path:e.tokenIcon}}),e._v(" "),t("div",{staticClass:"auth-token__name-wrapper"},[e.token.canRename&&e.renaming?t("form",{staticClass:"auth-token__name-form",on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.rename.apply(null,arguments)}}},[t("NcTextField",{ref:"input",attrs:{label:e.t("settings","Device name"),"show-trailing-button":!0,"trailing-button-label":e.t("settings","Cancel renaming")},on:{"trailing-button-click":e.cancelRename,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelRename.apply(null,arguments)}},model:{value:e.newName,callback:function(t){e.newName=t},expression:"newName"}}),e._v(" "),t("NcButton",{attrs:{"aria-label":e.t("settings","Save new name"),variant:"tertiary",type:"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.mdiCheck}})]},proxy:!0}],null,!1,1018299955)})],1):t("span",[e._v(e._s(e.tokenLabel))]),e._v(" "),e.wiping?t("span",{staticClass:"wiping-warning"},[e._v("("+e._s(e.t("settings","Marked for remote wipe"))+")")]):e._e()])],1),e._v(" "),t("td",[t("NcDateTime",{staticClass:"auth-token__last-activity",attrs:{"ignore-seconds":!0,timestamp:e.tokenLastActivity}})],1),e._v(" "),t("td",{staticClass:"auth-token__actions"},[e.token.current?e._e():t("NcActions",{attrs:{title:e.t("settings","Device settings"),"aria-label":e.t("settings","Device settings"),open:e.actionOpen},on:{"update:open":function(t){e.actionOpen=t}}},[e.canChangeScope?t("NcActionCheckbox",{attrs:{"model-value":e.token.scope.filesystem},on:{"update:modelValue":e.updateFileSystemScope}},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Allow filesystem access"))+"\n\t\t\t")]):e._e(),e._v(" "),e.token.canRename?t("NcActionButton",{attrs:{icon:"icon-rename"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.startRename.apply(null,arguments)}}},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Rename"))+"\n\t\t\t")]):e._e(),e._v(" "),e.token.canDelete?[2!==e.token.type?[t("NcActionButton",{attrs:{icon:"icon-delete"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.revoke.apply(null,arguments)}}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("settings","Revoke"))+"\n\t\t\t\t\t")]),e._v(" "),t("NcActionButton",{attrs:{icon:"icon-delete"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wipe.apply(null,arguments)}}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("settings","Wipe device"))+"\n\t\t\t\t\t")])]:2===e.token.type?t("NcActionButton",{attrs:{icon:"icon-delete",name:e.t("settings","Revoke")},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.revoke.apply(null,arguments)}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Revoking this token might prevent the wiping of your device if it has not started the wipe yet."))+"\n\t\t\t\t")]):e._e()]:e._e()],2)],1)])},[],!1,null,"2a4232a2",null);const Xt=Qt.exports,Jt=(0,ut.pM)({name:"AuthTokenList",components:{AuthToken:Xt},setup:()=>({authTokenStore:St()}),computed:{sortedTokens(){return[...this.authTokenStore.tokens].filter(e=>e.type!==Nt.ONETIME_TOKEN).sort((e,t)=>t.lastActivity-e.lastActivity)}},methods:{t:ht.Tl}});var Zt=o(59340),en={};en.styleTagTransform=Gt(),en.setAttributes=Wt(),en.insert=Ht().bind(null,"head"),en.domAPI=Mt(),en.insertStyleElement=qt(),jt()(Zt.A,en),Zt.A&&Zt.A.locals&&Zt.A.locals;const tn=(0,Kt.A)(Jt,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("table",{staticClass:"token-list",attrs:{id:"app-tokens-table"}},[t("thead",[t("tr",[t("th",{staticClass:"token-list__header-device"},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Device"))+"\n\t\t\t")]),e._v(" "),t("th",{staticClass:"toke-list__header-activity"},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Last activity"))+"\n\t\t\t")]),e._v(" "),t("th",[t("span",{staticClass:"hidden-visually"},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Actions"))+"\n\t\t\t\t")])])])]),e._v(" "),t("tbody",{staticClass:"token-list__body"},e._l(e.sortedTokens,function(e){return t("AuthToken",{key:e.id,attrs:{token:e}})}),1)])},[],!1,null,"5fe11895",null).exports;var nn=o(17816),on=o.n(nn),rn=o(94219);const sn=(0,ut.pM)({name:"AuthTokenSetupDialog",components:{NcButton:bt.A,NcDialog:rn.A,NcIconSvgWrapper:wt.A,NcTextField:At.A,QR:on()},props:{token:{type:Object,required:!1,default:null}},data:()=>({isNameCopied:!1,isPasswordCopied:!1,showQRCode:!1}),computed:{open:{get(){return null!==this.token},set(e){e||this.$emit("close")}},copyPasswordIcon(){return this.isPasswordCopied?vt.Tfj:vt.$BT},copyNameIcon(){return this.isNameCopied?vt.Tfj:vt.$BT},appPassword(){return this.token?.token??""},loginName(){return this.token?.loginName??""},qrUrl(){const e=window.location.protocol+"//"+window.location.host+(0,Ot.aU)();return`nc://login/user:${this.loginName}&password:${this.appPassword}&server:${e}`},copyPasswordLabel(){return this.isPasswordCopied?(0,ht.Tl)("settings","App password copied!"):(0,ht.Tl)("settings","Copy app password")},copyLoginNameLabel(){return this.isNameCopied?(0,ht.Tl)("settings","Login name copied!"):(0,ht.Tl)("settings","Copy login name")}},watch:{token(){this.showQRCode=!1},open(){this.open&&this.$nextTick(()=>{this.$refs.appPassword.select()})}},methods:{t:ht.Tl,async copyPassword(){try{await navigator.clipboard.writeText(this.appPassword),this.isPasswordCopied=!0}catch(e){this.isPasswordCopied=!1,xt.error(e),(0,kt.Qg)((0,ht.Tl)("settings","Could not copy app password. Please copy it manually."))}finally{setTimeout(()=>{this.isPasswordCopied=!1},4e3)}},async copyLoginName(){try{await navigator.clipboard.writeText(this.loginName),this.isNameCopied=!0}catch(e){this.isNameCopied=!1,xt.error(e),(0,kt.Qg)((0,ht.Tl)("settings","Could not copy login name. Please copy it manually."))}finally{setTimeout(()=>{this.isNameCopied=!1},4e3)}}}});var an=o(56982),ln={};ln.styleTagTransform=Gt(),ln.setAttributes=Wt(),ln.insert=Ht().bind(null,"head"),ln.domAPI=Mt(),ln.insertStyleElement=qt(),jt()(an.A,ln),an.A&&an.A.locals&&an.A.locals;const pn=(0,Kt.A)(sn,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{attrs:{open:e.open,name:e.t("settings","New app password"),"content-classes":"token-dialog"},on:{"update:open":function(t){e.open=t}}},[t("p",[e._v("\n\t\t"+e._s(e.t("settings","Use the credentials below to configure your app or device. For security reasons this password will only be shown once."))+"\n\t")]),e._v(" "),t("div",{staticClass:"token-dialog__name"},[t("NcTextField",{attrs:{label:e.t("settings","Login"),"model-value":e.loginName,readonly:""}}),e._v(" "),t("NcButton",{attrs:{variant:"tertiary",title:e.copyLoginNameLabel,"aria-label":e.copyLoginNameLabel},on:{click:e.copyLoginName},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.copyNameIcon}})]},proxy:!0}])})],1),e._v(" "),t("div",{staticClass:"token-dialog__password"},[t("NcTextField",{ref:"appPassword",attrs:{label:e.t("settings","Password"),"model-value":e.appPassword,readonly:""}}),e._v(" "),t("NcButton",{attrs:{variant:"tertiary",title:e.copyPasswordLabel,"aria-label":e.copyPasswordLabel},on:{click:e.copyPassword},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.copyPasswordIcon}})]},proxy:!0}])})],1),e._v(" "),t("div",{staticClass:"token-dialog__qrcode"},[e.showQRCode?t("QR",{attrs:{value:e.qrUrl}}):t("NcButton",{on:{click:function(t){e.showQRCode=!0}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Show QR code for mobile apps"))+"\n\t\t")])],1)])},[],!1,null,"1a608fc0",null).exports,dn=(0,ut.pM)({name:"AuthTokenSetup",components:{NcButton:bt.A,NcTextField:At.A,AuthTokenSetupDialog:pn},setup:()=>({authTokenStore:St()}),data:()=>({deviceName:"",loading:!1,newToken:null}),methods:{t:ht.Tl,reset(){this.loading=!1,this.deviceName="",this.newToken=null},async submit(){try{this.loading=!0,this.newToken=await this.authTokenStore.addToken(this.deviceName)}catch(e){xt.error(e),(0,kt.Qg)((0,ht.Tl)("settings","Error while creating device token")),this.reset()}finally{this.loading=!1}}}});var cn=o(96419),un={};un.styleTagTransform=Gt(),un.setAttributes=Wt(),un.insert=Ht().bind(null,"head"),un.domAPI=Mt(),un.insertStyleElement=qt(),jt()(cn.A,un),cn.A&&cn.A.locals&&cn.A.locals;var fn=(0,Kt.A)(dn,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"row spacing",attrs:{id:"generate-app-token-section"},on:{submit:function(t){return t.preventDefault(),e.submit.apply(null,arguments)}}},[t("NcTextField",{staticClass:"app-name-text-field",attrs:{type:"text",maxlength:120,disabled:e.loading,label:e.t("settings","App name"),placeholder:e.t("settings","App name")},model:{value:e.deviceName,callback:function(t){e.deviceName=t},expression:"deviceName"}}),e._v(" "),t("NcButton",{attrs:{variant:"primary",disabled:e.loading||0===e.deviceName.length,type:"submit"}},[e._v("\n\t\t"+e._s(e.t("settings","Create new app password"))+"\n\t")]),e._v(" "),t("AuthTokenSetupDialog",{attrs:{token:e.newToken},on:{close:function(t){e.newToken=null}}})],1)},[],!1,null,"e1d5b2e0",null);const hn=fn.exports,vn=(0,ut.pM)({name:"AuthTokenSection",components:{AuthTokenList:tn,AuthTokenSetup:hn},data:()=>({canCreateToken:(0,ft.C)("settings","can_create_app_token")}),methods:{t:ht.Tl}}),mn=(0,Kt.A)(vn,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"section",attrs:{id:"security"}},[t("h2",[e._v(e._s(e.t("settings","Devices & sessions",{},void 0,{sanitize:!1})))]),e._v(" "),t("p",{staticClass:"settings-hint hidden-when-empty"},[e._v("\n\t\t"+e._s(e.t("settings","Web, desktop and mobile clients currently logged in to your account."))+"\n\t")]),e._v(" "),t("AuthTokenList"),e._v(" "),e.canCreateToken?t("AuthTokenSetup"):e._e()],1)},[],!1,null,null,null).exports;o.nc=(0,i.aV)();const gn=(0,r.Ey)();ut.Ay.use(r.R2),ut.Ay.use(ct,{defaultHtml:!1}),ut.Ay.prototype.t=t,new(ut.Ay.extend(mn))({pinia:gn}).$mount("#security-authtokens")},90051(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,".auth-token[data-v-2a4232a2]{border-top:2px solid var(--color-border);max-width:200px;white-space:normal;vertical-align:middle;position:relative}.auth-token--wiping[data-v-2a4232a2]{background-color:var(--color-background-dark)}.auth-token__name[data-v-2a4232a2]{padding-block:10px;display:flex;align-items:center;gap:6px;min-width:355px}.auth-token__name-wrapper[data-v-2a4232a2]{display:flex;flex-direction:column}.auth-token__name-form[data-v-2a4232a2]{align-items:end;display:flex;gap:4px}.auth-token__actions[data-v-2a4232a2]{padding:0 10px}.auth-token__last-activity[data-v-2a4232a2]{padding-inline-start:10px}.auth-token .wiping-warning[data-v-2a4232a2]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthToken.vue"],names:[],mappings:"AACA,6BACC,wCAAA,CACA,eAAA,CACA,kBAAA,CACA,qBAAA,CACA,iBAAA,CAEA,qCACC,6CAAA,CAGD,mCACC,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CAGD,2CACC,YAAA,CACA,qBAAA,CAGD,wCACC,eAAA,CACA,YAAA,CACA,OAAA,CAGD,sCACC,cAAA,CAGD,4CACC,yBAAA,CAGD,6CACC,mCAAA",sourcesContent:["\n.auth-token {\n\tborder-top: 2px solid var(--color-border);\n\tmax-width: 200px;\n\twhite-space: normal;\n\tvertical-align: middle;\n\tposition: relative;\n\n\t&--wiping {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__name {\n\t\tpadding-block: 10px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t\tmin-width: 355px; // ensure no jumping when renaming\n\t}\n\n\t&__name-wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t&__name-form {\n\t\talign-items: end;\n\t\tdisplay: flex;\n\t\tgap: 4px;\n\t}\n\n\t&__actions {\n\t\tpadding: 0 10px;\n\t}\n\n\t&__last-activity {\n\t\tpadding-inline-start: 10px;\n\t}\n\n\t.wiping-warning {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=s},59340(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,".token-list[data-v-5fe11895]{width:100%;min-height:50px;padding-top:5px;max-width:fit-content}.token-list th[data-v-5fe11895]{padding-block:10px;padding-inline-start:10px}.token-list .token-list__header-device[data-v-5fe11895]{padding-inline-start:50px}.token-list__header-activity[data-v-5fe11895]{text-align:end}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthTokenList.vue"],names:[],mappings:"AACA,6BACC,UAAA,CACA,eAAA,CACA,eAAA,CACA,qBAAA,CAEA,gCACC,kBAAA,CACA,yBAAA,CAGD,wDACC,yBAAA,CAED,8CACC,cAAA",sourcesContent:["\n.token-list {\n\twidth: 100%;\n\tmin-height: 50px;\n\tpadding-top: 5px;\n\tmax-width: fit-content;\n\n\tth {\n\t\tpadding-block: 10px;\n\t\tpadding-inline-start: 10px;\n\t}\n\n\t#{&}__header-device {\n\t\tpadding-inline-start: 50px; // 44px icon + 6px padding\n\t}\n\t&__header-activity {\n\t\ttext-align: end;\n\t}\n}\n"],sourceRoot:""}]);const a=s},96419(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,".app-name-text-field[data-v-e1d5b2e0]{height:44px !important;padding-inline-start:12px;margin-inline-end:12px;width:200px}.row[data-v-e1d5b2e0]{display:flex;align-items:center}.spacing[data-v-e1d5b2e0]{padding-top:16px}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthTokenSetup.vue"],names:[],mappings:"AACA,sCACC,sBAAA,CACA,yBAAA,CACA,sBAAA,CACA,WAAA,CAGD,sBACC,YAAA,CACA,kBAAA,CAGD,0BACC,gBAAA",sourcesContent:["\n.app-name-text-field {\n\theight: 44px !important;\n\tpadding-inline-start: 12px;\n\tmargin-inline-end: 12px;\n\twidth: 200px;\n}\n\n.row {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.spacing {\n\tpadding-top: 16px;\n}\n"],sourceRoot:""}]);const a=s},56982(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,"[data-v-1a608fc0] .token-dialog{display:flex;flex-direction:column;gap:12px;padding-inline:22px;padding-block-end:20px}[data-v-1a608fc0] .token-dialog>*{box-sizing:border-box}.token-dialog__name[data-v-1a608fc0],.token-dialog__password[data-v-1a608fc0]{align-items:end;display:flex;gap:10px}.token-dialog__name[data-v-1a608fc0] input,.token-dialog__password[data-v-1a608fc0] input{font-family:monospace}.token-dialog__qrcode[data-v-1a608fc0]{display:flex;justify-content:center}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthTokenSetupDialog.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,qBAAA,CACA,QAAA,CAEA,mBAAA,CACA,sBAAA,CAEA,kCACC,qBAAA,CAKD,8EACC,eAAA,CACA,YAAA,CACA,QAAA,CAEA,0FACC,qBAAA,CAIF,uCACC,YAAA,CACA,sBAAA",sourcesContent:["\n:deep(.token-dialog) {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\n\tpadding-inline: 22px;\n\tpadding-block-end: 20px;\n\n\t> * {\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.token-dialog {\n\t&__name, &__password {\n\t\talign-items: end;\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\n\t\t:deep(input) {\n\t\t\tfont-family: monospace;\n\t\t}\n\t}\n\n\t&__qrcode {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t}\n}\n"],sourceRoot:""}]);const a=s},87805(e,t,n){var o=n(43360),i=n(75288);e.exports=function(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&o(e,t,n)}},85250(e,t,n){var o=n(37217),i=n(87805),r=n(86649),s=n(42824),a=n(23805),l=n(37241),p=n(14974);e.exports=function e(t,n,d,c,u){t!==n&&r(n,function(r,l){if(u||(u=new o),a(r))s(t,n,l,d,e,c,u);else{var f=c?c(p(t,l),r,l+"",t,n,u):void 0;void 0===f&&(f=r),i(t,l,f)}},l)}},42824(e,t,n){var o=n(87805),i=n(93290),r=n(71961),s=n(23007),a=n(35529),l=n(72428),p=n(56449),d=n(83693),c=n(3656),u=n(1882),f=n(23805),h=n(11331),v=n(37167),m=n(14974),g=n(69884);e.exports=function(e,t,n,y,b,_,w){var A=m(e,n),C=m(t,n),k=w.get(C);if(k)o(e,n,k);else{var T=_?_(A,C,n+"",e,t,w):void 0,O=void 0===T;if(O){var x=p(C),E=!x&&c(C),N=!x&&!E&&v(C);T=C,x||E||N?p(A)?T=A:d(A)?T=s(A):E?(O=!1,T=i(C,!0)):N?(O=!1,T=r(C,!0)):T=[]:h(C)||l(C)?(T=A,l(A)?T=g(A):f(A)&&!u(A)||(T=a(C))):O=!1}O&&(w.set(C,T),b(T,C,y,_,w),w.delete(C)),o(e,n,T)}}},20999(e,t,n){var o=n(69302),i=n(36800);e.exports=function(e){return o(function(t,n){var o=-1,r=n.length,s=r>1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&i(n[0],n[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++o{if(!n){var r=1/0;for(d=0;d=i)&&Object.keys(s.O).every(e=>s.O[e](n[l]))?n.splice(l--,1):(a=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[n,o,i]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,n)=>(s.f[n](e,t),t),[])),s.u=e=>e+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",5448:"71cfe268d6f1213c4735",6015:"ebcb6885c1fc8c461988",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4"}[e],s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},o="nextcloud-ui-legacy:",s.l=(e,t,i,r)=>{if(n[e])n[e].push(t);else{var a,l;if(void 0!==i)for(var p=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var i=n[e];if(delete n[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(e=>e(o)),t)return t(o)},f=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),l&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2131,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=n[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2131:0};s.f.j=(t,n)=>{var o=s.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var i=new Promise((n,i)=>o=e[t]=[n,i]);n.push(o[2]=i);var r=s.p+s.u(t),a=new Error;s.l(r,n=>{if(s.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var i=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",a.name="ChunkLoadError",a.type=i,a.request=r,o[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,n)=>{var o,i,[r,a,l]=n,p=0;if(r.some(t=>0!==e[t])){for(o in a)s.o(a,o)&&(s.m[o]=a[o]);if(l)var d=l(s)}for(t&&t(n);ps(71410));a=s.O(a)})(); -//# sourceMappingURL=settings-vue-settings-personal-security.js.map?v=e7576be1af828365fbbe \ No newline at end of file +(()=>{var e,n,o,i={67490(e,n,o){"use strict";var i=o(21777),r=o(10810);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}function l(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){for(var n=0;n=0)return 1;return 0}(),u=d&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},c))}};function f(e){return e&&"[object Function]"==={}.toString.call(e)}function h(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function v(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function m(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=h(e),n=t.overflow,o=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+o)?e:m(v(e))}function g(e){return e&&e.referenceNode?e.referenceNode:e}var y=d&&!(!window.MSInputMethodContext||!document.documentMode),b=d&&/MSIE 10/.test(navigator.userAgent);function _(e){return 11===e?y:10===e?b:y||b}function w(e){if(!e)return document.documentElement;for(var t=_(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var o=n&&n.nodeName;return o&&"BODY"!==o&&"HTML"!==o?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===h(n,"position")?w(n):n:e?e.ownerDocument.documentElement:document.documentElement}function A(e){return null!==e.parentNode?A(e.parentNode):e}function C(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,o=n?e:t,i=n?t:e,r=document.createRange();r.setStart(o,0),r.setEnd(i,0);var s,a,l=r.commonAncestorContainer;if(e!==l&&t!==l||o.contains(i))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&w(s.firstElementChild)!==s?w(l):l;var p=A(e);return p.host?C(p.host,t):C(e,A(t).host)}function k(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var o=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||o)[t]}return e[t]}function T(e,t){var n="x"===t?"Left":"Top",o="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+o+"Width"])}function O(e,t,n,o){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],_(10)?parseInt(n["offset"+e])+parseInt(o["margin"+("Height"===e?"Top":"Left")])+parseInt(o["margin"+("Height"===e?"Bottom":"Right")]):0)}function x(e){var t=e.body,n=e.documentElement,o=_(10)&&getComputedStyle(n);return{height:O("Height",t,n,o),width:O("Width",t,n,o)}}var E=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],o=_(10),i="HTML"===t.nodeName,r=P(e),s=P(t),a=m(e),l=h(t),p=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);n&&i&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var c=$({top:r.top-s.top-p,left:r.left-s.left-d,width:r.width,height:r.height});if(c.marginTop=0,c.marginLeft=0,!o&&i){var u=parseFloat(l.marginTop),f=parseFloat(l.marginLeft);c.top-=p-u,c.bottom-=p-u,c.left-=d-f,c.right-=d-f,c.marginTop=u,c.marginLeft=f}return(o&&!n?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(c=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=k(t,"top"),i=k(t,"left"),r=n?-1:1;return e.top+=o*r,e.bottom+=o*r,e.left+=i*r,e.right+=i*r,e}(c,t)),c}function D(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===h(e,"position"))return!0;var n=v(e);return!!n&&D(n)}function I(e){if(!e||!e.parentElement||_())return document.documentElement;for(var t=e.parentElement;t&&"none"===h(t,"transform");)t=t.parentElement;return t||document.documentElement}function j(e,t,n,o){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=i?I(e):C(e,g(t));if("viewport"===o)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,o=L(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=t?0:k(n),a=t?0:k(n,"left");return $({top:s-o.top+o.marginTop,left:a-o.left+o.marginLeft,width:i,height:r})}(s,i);else{var a=void 0;"scrollParent"===o?"BODY"===(a=m(v(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===o?e.ownerDocument.documentElement:o;var l=L(a,s,i);if("HTML"!==a.nodeName||D(s))r=l;else{var p=x(e.ownerDocument),d=p.height,c=p.width;r.top+=l.top-l.marginTop,r.bottom=d+l.top,r.left+=l.left-l.marginLeft,r.right=c+l.left}}var u="number"==typeof(n=n||0);return r.left+=u?n:n.left||0,r.top+=u?n:n.top||0,r.right-=u?n:n.right||0,r.bottom-=u?n:n.bottom||0,r}function B(e,t,n,o,i){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=j(n,o,r,i),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},l=Object.keys(a).map(function(e){return S({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),p=l.filter(function(e){var t=e.width,o=e.height;return t>=n.clientWidth&&o>=n.clientHeight}),d=p.length>0?p[0].key:l[0].key,c=e.split("-")[1];return d+(c?"-"+c:"")}function M(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return L(n,o?I(t):C(t,g(n)),o)}function R(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),o=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+o,height:e.offsetHeight+n}}function H(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function F(e,t,n){n=n.split("-")[0];var o=R(e),i={width:o.width,height:o.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",p=r?"width":"height";return i[s]=t[s]+t[l]/2-o[l]/2,i[a]=n===a?t[a]-o[p]:t[H(a)],i}function W(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var o=W(e,function(e){return e[t]===n});return e.indexOf(o)}(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&f(n)&&(t.offsets.popper=$(t.offsets.popper),t.offsets.reference=$(t.offsets.reference),t=n(t,e))}),t}function q(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=M(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=B(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=F(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function V(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function G(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),o=0;o1&&void 0!==arguments[1]&&arguments[1],n=ie.indexOf(e),o=ie.slice(n+1).concat(ie.slice(0,n));return t?o.reverse():o}var se={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],o=t.split("-")[1];if(o){var i=e.offsets,r=i.reference,s=i.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",p=a?"width":"height",d={start:N({},l,r[l]),end:N({},l,r[l]+r[p]-s[p])};e.offsets.popper=S({},s,d[o])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n,o=t.offset,i=e.placement,r=e.offsets,s=r.popper,a=r.reference,l=i.split("-")[0];return n=Z(+o)?[+o,0]:function(e,t,n,o){var i=[0,0],r=-1!==["right","left"].indexOf(o),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(W(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,p=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(p=p.map(function(e,o){var i=(1===o?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,o){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],s=i[2];return r?0===s.indexOf("%")?$("%p"===s?n:o)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,i,t,n)})})).forEach(function(e,t){e.forEach(function(n,o){Z(n)&&(i[t]+=n*("-"===e[o-1]?-1:1))})}),i}(o,s,a,l),"left"===l?(s.top+=n[0],s.left-=n[1]):"right"===l?(s.top+=n[0],s.left+=n[1]):"top"===l?(s.left+=n[0],s.top-=n[1]):"bottom"===l&&(s.left+=n[0],s.top+=n[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||w(e.instance.popper);e.instance.reference===n&&(n=w(n));var o=G("transform"),i=e.instance.popper.style,r=i.top,s=i.left,a=i[o];i.top="",i.left="",i[o]="";var l=j(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=r,i.left=s,i[o]=a,t.boundaries=l;var p=t.priority,d=e.offsets.popper,c={primary:function(e){var n=d[e];return d[e]l[e]&&!t.escapeWithReference&&(o=Math.min(d[n],l[e]-("right"===e?d.width:d.height))),N({},n,o)}};return p.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=S({},d,c[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,o=t.reference,i=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(i),a=s?"right":"bottom",l=s?"left":"top",p=s?"width":"height";return n[a]r(o[a])&&(e.offsets.popper[l]=r(o[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var o=t.element;if("string"==typeof o){if(!(o=e.instance.popper.querySelector(o)))return e}else if(!e.instance.popper.contains(o))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(i),p=l?"height":"width",d=l?"Top":"Left",c=d.toLowerCase(),u=l?"left":"top",f=l?"bottom":"right",v=R(o)[p];a[f]-vs[f]&&(e.offsets.popper[c]+=a[c]+v-s[f]),e.offsets.popper=$(e.offsets.popper);var m=a[c]+a[p]/2-v/2,g=h(e.instance.popper),y=parseFloat(g["margin"+d]),b=parseFloat(g["border"+d+"Width"]),_=m-e.offsets.popper[c]-y-b;return _=Math.max(Math.min(s[p]-v,_),0),e.arrowElement=o,e.offsets.arrow=(N(n={},c,Math.round(_)),N(n,u,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(V(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=j(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),o=e.placement.split("-")[0],i=H(o),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[o,i];break;case"clockwise":s=re(o);break;case"counterclockwise":s=re(o,!0);break;default:s=t.behavior}return s.forEach(function(a,l){if(o!==a||s.length===l+1)return e;o=e.placement.split("-")[0],i=H(o);var p=e.offsets.popper,d=e.offsets.reference,c=Math.floor,u="left"===o&&c(p.right)>c(d.left)||"right"===o&&c(p.left)c(d.top)||"bottom"===o&&c(p.top)c(n.right),v=c(p.top)c(n.bottom),g="left"===o&&f||"right"===o&&h||"top"===o&&v||"bottom"===o&&m,y=-1!==["top","bottom"].indexOf(o),b=!!t.flipVariations&&(y&&"start"===r&&f||y&&"end"===r&&h||!y&&"start"===r&&v||!y&&"end"===r&&m),_=!!t.flipVariationsByContent&&(y&&"start"===r&&h||y&&"end"===r&&f||!y&&"start"===r&&m||!y&&"end"===r&&v),w=b||_;(u||g||w)&&(e.flipped=!0,(u||g)&&(o=s[l+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=o+(r?"-"+r:""),e.offsets.popper=S({},e.offsets.popper,F(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],o=e.offsets,i=o.popper,r=o.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[s?"left":"top"]=r[n]-(a?i[s?"width":"height"]:0),e.placement=H(t),e.offsets.popper=$(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=W(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(o.update)},this.update=u(this.update.bind(this)),this.options=S({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(S({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){o.options.modifiers[t]=S({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return S({name:e},o.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&f(e.onLoad)&&e.onLoad(o.reference,o.popper,o.options,e,o.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return E(e,[{key:"update",value:function(){return q.call(this)}},{key:"destroy",value:function(){return U.call(this)}},{key:"enableEventListeners",value:function(){return X.call(this)}},{key:"disableEventListeners",value:function(){return J.call(this)}}]),e}();le.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,le.placements=oe,le.Defaults=ae;const pe=le;var de,ce=o(2404),ue=o.n(ce);function fe(){fe.init||(fe.init=!0,de=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var o=e.indexOf("Edge/");return o>0?parseInt(e.substring(o+5,e.indexOf(".",o)),10):-1}())}function he(e,t,n,o,i,r,s,a,l,p){"boolean"!=typeof s&&(l=a,a=s,s=!1);var d,c="function"==typeof n?n.options:n;if(e&&e.render&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0,i&&(c.functional=!0)),o&&(c._scopeId=o),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=d):t&&(d=s?function(e){t.call(this,p(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(c.functional){var u=c.render;c.render=function(e,t){return d.call(t),u(e,t)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,d):[d]}return n}var ve={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;fe(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",de&&this.$el.appendChild(t),t.data="about:blank",de||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!de&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},me=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};me._withStripped=!0;var ge=he({render:me,staticRenderFns:[]},void 0,ve,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),ye={version:"1.0.1",install:function(e){e.component("resize-observer",ge),e.component("ResizeObserver",ge)}},be=null;"undefined"!=typeof window?be=window.Vue:"undefined"!=typeof globalThis&&(be=globalThis.Vue),be&&be.use(ye);var _e=o(55364),we=o.n(_e),Ae=function(){};function Ce(e){return"string"==typeof e&&(e=e.split(" ")),e}function ke(e,t){var n,o=Ce(t);n=e.className instanceof Ae?Ce(e.className.baseVal):Ce(e.className),o.forEach(function(e){-1===n.indexOf(e)&&n.push(e)}),e instanceof SVGElement?e.setAttribute("class",n.join(" ")):e.className=n.join(" ")}function Te(e,t){var n,o=Ce(t);n=e.className instanceof Ae?Ce(e.className.baseVal):Ce(e.className),o.forEach(function(e){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",n.join(" ")):e.className=n.join(" ")}"undefined"!=typeof window&&(Ae=window.SVGAnimatedString);var Oe=!1;if("undefined"!=typeof window){Oe=!1;try{var xe=Object.defineProperty({},"passive",{get:function(){Oe=!0}});window.addEventListener("test",null,xe)}catch(e){}}function Ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function Ne(e){for(var t=1;t
',trigger:"hover focus",offset:0},$e=[],Pe=function(){function e(t,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,"_events",[]),l(this,"_setTooltipNodeEvent",function(e,t,n,i){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!o._tooltipNode.contains(r)&&(o._tooltipNode.addEventListener(e.type,function n(r){var s=r.relatedreference||r.toElement||r.relatedTarget;o._tooltipNode.removeEventListener(e.type,n),t.contains(s)||o._scheduleHide(t,i.delay,i,r)}),!0)}),n=Ne(Ne({},Se),n),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=n,this._isOpen=!1,this._init()}return t=e,n=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,n=e&&e.classes||ze.options.defaultClass;ue()(this._classes,n)||(this.setClasses(n),t=!0),e=Me(e);var o=!1,i=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(o=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(i=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(i){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else o&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var n=this,o=window.document.createElement("div");o.innerHTML=t.trim();var i=o.childNodes[0];return i.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),i.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(i.addEventListener("mouseenter",function(t){return n._scheduleHide(e,n.options.delay,n.options,t)}),i.addEventListener("click",function(t){return n._scheduleHide(e,n.options.delay,n.options,t)})),i}},{key:"_setContent",value:function(e,t){var n=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){n.popperInstance&&n.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var n=this;return new Promise(function(o,i){var r=t.html,s=n._tooltipNode;if(s){var a=s.querySelector(n.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var l=e();return void(l&&"function"==typeof l.then?(n.asyncContent=!0,t.loadingClass&&ke(s,t.loadingClass),t.loadingContent&&n._applyContent(t.loadingContent,t),l.then(function(e){return t.loadingClass&&Te(s,t.loadingClass),n._applyContent(e,t)}).then(o).catch(i)):n._applyContent(l,t).then(o).catch(i))}r?a.innerHTML=e:a.innerText=e}o()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var n=!0;this._tooltipNode&&(ke(this._tooltipNode,this._classes),n=!1);var o=this._ensureShown(e,t);return n&&this._tooltipNode&&ke(this._tooltipNode,this._classes),ke(e,["v-tooltip-open"]),o}}},{key:"_ensureShown",value:function(e,t){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,$e.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var o=e.getAttribute("title")||t.title;if(!o)return this;var i=this._create(e,t.template);this._tooltipNode=i,e.setAttribute("aria-describedby",i.id);var r=this._findContainer(t.container,e);this._append(i,r);var s=Ne(Ne({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Ne(Ne({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new pe(e,i,s),this._setContent(o,t),requestAnimationFrame(function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame(function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")})):n.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=$e.indexOf(this);-1!==e&&$e.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Te(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var n=t.func,o=t.event;e.reference.removeEventListener(o,n)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,n){var o=this,i=[],r=[];t.forEach(function(e){switch(e){case"hover":i.push("mouseenter"),r.push("mouseleave"),o.options.hideOnTargetClick&&r.push("click");break;case"focus":i.push("focus"),r.push("blur"),o.options.hideOnTargetClick&&r.push("click");break;case"click":i.push("click"),r.push("click")}}),i.forEach(function(t){var i=function(t){!0!==o._isOpen&&(t.usedByTooltip=!0,o._scheduleShow(e,n.delay,n,t))};o._events.push({event:t,func:i}),e.addEventListener(t,i)}),r.forEach(function(t){var i=function(t){!0!==t.usedByTooltip&&o._scheduleHide(e,n.delay,n,t)};o._events.push({event:t,func:i}),e.addEventListener(t,i)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,n){var o=this,i=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return o._show(e,n)},i)}},{key:"_scheduleHide",value:function(e,t,n,o){var i=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&i._tooltipNode.ownerDocument.body.contains(i._tooltipNode)){if("mouseleave"===o.type&&i._setTooltipNodeEvent(o,e,t,n))return;i._hide(e,n)}},r)}}],n&&p(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,n}();function Le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function De(e){for(var t=1;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Me(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:De({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var n=s(t.offset),o=t.offset;("number"===n||"string"===n&&-1===o.indexOf(","))&&(o="0, ".concat(o)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:o}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function Re(e,t){for(var n=e.placement,o=0;o2&&void 0!==arguments[2]?arguments[2]:{},o=He(t),i=void 0!==t.classes?t.classes:ze.options.defaultClass,r=De({title:o},Me(De(De({},"object"===s(t)?t:{}),{},{placement:Re(t,n)}))),a=e._tooltip=new Pe(e,r);a.setClasses(i),a._vueEl=e;var l=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=l,ke(e,l),a}(e,n,i),void 0!==n.show&&n.show!==e._tooltipOldShow&&(e._tooltipOldShow=n.show,n.show?o.show():o.hide())):Fe(e)}var ze={options:Be,bind:We,update:We,unbind:function(e){Fe(e)}};function qe(e){e.addEventListener("click",Ge),e.addEventListener("touchstart",Ue,!!Oe&&{passive:!0})}function Ve(e){e.removeEventListener("click",Ge),e.removeEventListener("touchstart",Ue),e.removeEventListener("touchend",Ke),e.removeEventListener("touchcancel",Ye)}function Ge(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ue(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",Ke),t.addEventListener("touchcancel",Ye)}}function Ke(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var n=e.changedTouches[0],o=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-o.screenY)<20&&Math.abs(n.screenX-o.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Ye(e){e.currentTarget.$_vclosepopover_touch=!1}var Qe={bind:function(e,t){var n=t.value,o=t.modifiers;e.$_closePopoverModifiers=o,(void 0===n||n)&&qe(e)},update:function(e,t){var n=t.value,o=t.oldValue,i=t.modifiers;e.$_closePopoverModifiers=i,n!==o&&(void 0===n||n?qe(e):Ve(e))},unbind:function(e){Ve(e)}};function Xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function Je(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=t.event;t.skipDelay;var o=t.force;!(void 0!==o&&o)&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var o=this.$_findContainer(this.container,t);if(!o)return void console.warn("No container for popover",this);o.appendChild(n),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var i=Je(Je({},this.popperOptions),{},{placement:this.placement});if(i.modifiers=Je(Je({},i.modifiers),{},{arrow:Je(Je({},i.modifiers&&i.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();i.modifiers.offset=Je(Je({},i.modifiers&&i.modifiers.offset),{},{offset:r})}this.boundariesElement&&(i.modifiers.preventOverflow=Je(Je({},i.modifiers&&i.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pe(t,n,i),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,l=0;l1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var o=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},o)}},$_setTooltipNodeEvent:function(e){var t=this,n=this.$refs.trigger,o=this.$refs.popover,i=e.relatedreference||e.toElement||e.relatedTarget;return!!o.contains(i)&&(o.addEventListener(e.type,function i(r){var s=r.relatedreference||r.toElement||r.relatedTarget;o.removeEventListener(e.type,i),n.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var n=t.func,o=t.event;e.removeEventListener(o,n)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function it(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(n){var o=tt[n];if(o.$refs.popover){var i=o.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&i||o.autoHide&&!i)&&o.$_handleGlobalClose(e,t)})}},o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var o={};we()(o,Be,n),pt.options=o,ze.options=o,t.directive("tooltip",ze),t.directive("close-popover",Qe),t.component("VPopover",lt)}},get enabled(){return Ie.enabled},set enabled(e){Ie.enabled=e}},dt=null;"undefined"!=typeof window?dt=window.Vue:"undefined"!=typeof globalThis&&(dt=globalThis.Vue),dt&&dt.use(pt);const ct=pt;var ut=o(85471),ft=o(81222),ht=o(53334),vt=o(9165),mt=o(57505),gt=o(78928),yt=o(24764),bt=o(74095),_t=o(4604),wt=o(6695),At=o(82182),Ct=o(19051),kt=o(85168),Tt=o(68149),Ot=o(63814);const xt=(0,o(35947).YK)().setApp("settings").detectUser().build(),Et=(0,Ot.Jv)("/settings/personal/authtokens");var Nt;(0,Tt.IF)(Ct.Ay),function(e){e[e.TEMPORARY_TOKEN=0]="TEMPORARY_TOKEN",e[e.PERMANENT_TOKEN=1]="PERMANENT_TOKEN",e[e.WIPING_TOKEN=2]="WIPING_TOKEN",e[e.ONETIME_TOKEN=3]="ONETIME_TOKEN"}(Nt||(Nt={}));const St=(0,r.nY)("auth-token",{state:()=>({tokens:(0,ft.C)("settings","app_tokens",[])}),actions:{async updateToken(e){const{data:t}=await Ct.Ay.put(`${Et}/${e.id}`,e);return t},async addToken(e){xt.debug("Creating a new app token");try{const{data:t}=await Ct.Ay.post(Et,{name:e,oneTime:!0},{confirmPassword:Tt.mH.Strict});return this.tokens.push(t.deviceToken),xt.debug("App token created"),t}catch{return null}},async deleteToken(e){xt.debug("Deleting app token",{token:e}),this.tokens=this.tokens.filter(({id:t})=>t!==e.id);try{return await Ct.Ay.delete(`${Et}/${e.id}`),xt.debug("App token deleted"),!0}catch(t){xt.error("Could not delete app token",{error:t}),(0,kt.Qg)((0,ht.Tl)("settings","Could not delete the app token")),this.tokens.push(e)}return!1},async wipeToken(e){xt.debug("Wiping app token",{token:e});try{return await(0,Tt.C5)(),await new Promise(e=>{window.OC.dialogs.confirm((0,ht.Tl)("settings","Do you really want to wipe your data from this device?"),(0,ht.Tl)("settings","Confirm wipe"),e,!0)})?(await Ct.Ay.post(`${Et}/wipe/${e.id}`),xt.debug("App token marked for wipe",{token:e}),e.type=Nt.WIPING_TOKEN,e.canRename=!1,!0):void xt.debug("Wipe aborted by user")}catch(e){xt.error("Could not wipe app token",{error:e}),(0,kt.Qg)((0,ht.Tl)("settings","Error while wiping the device with the token"))}return!1},async renameToken(e,t){xt.debug(`renaming app token ${e.id} from ${e.name} to '${t}'`);const n=e.name;e.name=t;try{return await this.updateToken(e),xt.debug("App token name updated"),!0}catch(t){xt.error("Could not update app token name",{error:t}),(0,kt.Qg)((0,ht.Tl)("settings","Error while updating device token name")),e.name=n}return!1},async setTokenScope(e,t,n){xt.debug("Updating app token scope",{token:e,scope:t,value:n});const o=e.scope[t];e.scope[t]=n;try{return await this.updateToken(e),xt.debug("app token scope updated"),!0}catch(n){xt.error("could not update app token scope",{error:n}),(0,kt.Qg)((0,ht.Tl)("settings","Error while updating device token scope")),e.scope[t]=o}return!1}}}),$t={ie:/(?:MSIE|Trident|Trident\/7.0; rv)[ :](\d+)/,edge:/^Mozilla\/5\.0 \([^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+ Edge\/[0-9.]+$/,firefox:/^Mozilla\/5\.0 \((?![^)]*Android)[^)]*(Windows|OS X|Linux)[^)]+\) Gecko\/[0-9.]+ Firefox\/(\d+)(?:\.\d)?$/,androidChrome:/^Mozilla\/5\.0 \(Linux; Android[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/(\d+)[0-9.]+ (?:Mobile )?Safari\/[0-9.]+$/,chrome:/^Mozilla\/5\.0 \((?![^)]*Android)[^)]*(Windows|OS X|Linux)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Chrome\/(\d+)[0-9.]+ (?:Mobile Safari|Safari)\/[0-9.]+$/,safari:/^Mozilla\/5\.0 \([^)]*(Windows|OS X)[^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\)(?: Version\/([0-9]+)[0-9.]+)? Safari\/[0-9.A-Z]+$/,iphone:/ *CPU +iPhone +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */,ipad:/\(iPad; *CPU +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */,iosClient:/^Mozilla\/5\.0 \(iOS\) (?:ownCloud|Nextcloud)-iOS.*$/,androidClient:/^Mozilla\/5\.0 \(Android\) (?:ownCloud|Nextcloud)-android.*$/,iosTalkClient:/^Mozilla\/5\.0 \(iOS\) Nextcloud-Talk.*$/,androidTalkClient:/^Mozilla\/5\.0 \(Android\) Nextcloud-Talk.*$/,davx5:/DAV(?:droid|x5)\/([^ ]+)/,webPirate:/(Sailfish).*WebPirate\/(\d+)/,sailfishBrowser:/(Sailfish).*SailfishBrowser\/(\d+)/,neon:/Neon \d+\.\d+\.\d+\+\d+/},Pt={edge:"Microsoft Edge",firefox:"Firefox",chrome:"Google Chrome",safari:"Safari",androidChrome:(0,ht.Tl)("settings","Google Chrome for Android"),iphone:"iPhone",ipad:"iPad",iosClient:(0,ht.Tl)("settings","{productName} iOS app",{productName:window.oc_defaults.productName}),androidClient:(0,ht.Tl)("settings","{productName} Android app",{productName:window.oc_defaults.productName}),iosTalkClient:(0,ht.Tl)("settings","{productName} Talk for iOS",{productName:window.oc_defaults.productName}),androidTalkClient:(0,ht.Tl)("settings","{productName} Talk for Android",{productName:window.oc_defaults.productName}),syncClient:(0,ht.Tl)("settings","Sync client"),davx5:"DAVx5",webPirate:"WebPirate",sailfishBrowser:"SailfishBrowser",neon:"Neon"},Lt=(0,ut.pM)({name:"AuthToken",components:{NcActions:yt.A,NcActionButton:mt.A,NcActionCheckbox:gt.N,NcButton:bt.A,NcDateTime:_t.A,NcIconSvgWrapper:wt.A,NcTextField:At.A},props:{token:{type:Object,required:!0}},setup:()=>({authTokenStore:St()}),data:()=>({actionOpen:!1,renaming:!1,newName:"",oldName:"",mdiCheck:vt.Tfj}),computed:{canChangeScope(){return this.token.type===Nt.PERMANENT_TOKEN},client(){const e=this.token.name.match(/Mozilla\/5\.0 \((\w+)\) (?:mirall|csyncoC)\/(\d+\.\d+\.\d+)/);return e?{id:"syncClient",os:e[1],version:e[2]}:function(e){for(const t in $t){const n=e.match($t[t]);if(n)return{id:t,version:n[2]??n[1],os:n[2]&&n[1]}}return null}(this.token.name)},tokenLastActivity(){return 1e3*this.token.lastActivity},tokenIcon(){if(this.token.type===Nt.PERMANENT_TOKEN)return vt.Mx_;switch(this.client?.id){case"edge":return vt.MXC;case"firefox":return vt.Ckb;case"chrome":return vt.KR_;case"safari":return vt.lWO;case"androidChrome":case"androidClient":case"androidTalkClient":return vt.mbi;case"iphone":case"iosClient":case"iosTalkClient":return vt.qFD;case"ipad":return vt.Fzw;case"davx5":return vt.vrq;case"syncClient":return vt.F5c;default:return vt.zY6}},tokenLabel(){if(this.token.current)return(0,ht.Tl)("settings","This session");if(null===this.client)return this.token.name;const e=Pt[this.client.id];return this.client.os?(0,ht.Tl)("settings","{client} - {version} ({system})",{client:e,system:this.client.os,version:this.client.version}):this.client.version?(0,ht.Tl)("settings","{client} - {version}",{client:e,version:this.client.version}):e},wiping(){return this.token.type===Nt.WIPING_TOKEN}},methods:{t:ht.Tl,updateFileSystemScope(e){this.authTokenStore.setTokenScope(this.token,"filesystem",e)},startRename(){this.actionOpen=!1,this.oldName=this.token.name,this.newName=this.token.name,this.renaming=!0,this.$nextTick(()=>{this.$refs.input.select()})},cancelRename(){this.renaming=!1},revoke(){this.actionOpen=!1,this.authTokenStore.deleteToken(this.token)},rename(){this.renaming=!1,this.authTokenStore.renameToken(this.token,this.newName)},wipe(){this.actionOpen=!1,this.authTokenStore.wipeToken(this.token)}}}),Dt=Lt;var It=o(85072),jt=o.n(It),Bt=o(97825),Mt=o.n(Bt),Rt=o(77659),Ht=o.n(Rt),Ft=o(55056),Wt=o.n(Ft),zt=o(10540),qt=o.n(zt),Vt=o(41113),Gt=o.n(Vt),Ut=o(51983),Kt={};Kt.styleTagTransform=Gt(),Kt.setAttributes=Wt(),Kt.insert=Ht().bind(null,"head"),Kt.domAPI=Mt(),Kt.insertStyleElement=qt(),jt()(Ut.A,Kt),Ut.A&&Ut.A.locals&&Ut.A.locals;var Yt=o(14486),Qt=(0,Yt.A)(Dt,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"auth-token",class:[{"auth-token--wiping":e.wiping}],attrs:{"data-id":e.token.id}},[t("td",{staticClass:"auth-token__name"},[t("NcIconSvgWrapper",{attrs:{path:e.tokenIcon}}),e._v(" "),t("div",{staticClass:"auth-token__name-wrapper"},[e.token.canRename&&e.renaming?t("form",{staticClass:"auth-token__name-form",on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.rename.apply(null,arguments)}}},[t("NcTextField",{ref:"input",attrs:{label:e.t("settings","Device name"),"show-trailing-button":!0,"trailing-button-label":e.t("settings","Cancel renaming")},on:{"trailing-button-click":e.cancelRename,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.cancelRename.apply(null,arguments)}},model:{value:e.newName,callback:function(t){e.newName=t},expression:"newName"}}),e._v(" "),t("NcButton",{attrs:{"aria-label":e.t("settings","Save new name"),variant:"tertiary",type:"submit"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.mdiCheck}})]},proxy:!0}],null,!1,1018299955)})],1):t("span",[e._v(e._s(e.tokenLabel))]),e._v(" "),e.wiping?t("span",{staticClass:"wiping-warning"},[e._v("("+e._s(e.t("settings","Marked for remote wipe"))+")")]):e._e()])],1),e._v(" "),t("td",[t("NcDateTime",{staticClass:"auth-token__last-activity",attrs:{"ignore-seconds":!0,timestamp:e.tokenLastActivity}})],1),e._v(" "),t("td",{staticClass:"auth-token__actions"},[e.token.current?e._e():t("NcActions",{attrs:{title:e.t("settings","Device settings"),"aria-label":e.t("settings","Device settings"),open:e.actionOpen},on:{"update:open":function(t){e.actionOpen=t}}},[e.canChangeScope?t("NcActionCheckbox",{attrs:{"model-value":e.token.scope.filesystem},on:{"update:modelValue":e.updateFileSystemScope}},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Allow filesystem access"))+"\n\t\t\t")]):e._e(),e._v(" "),e.token.canRename?t("NcActionButton",{attrs:{icon:"icon-rename"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.startRename.apply(null,arguments)}}},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Rename"))+"\n\t\t\t")]):e._e(),e._v(" "),e.token.canDelete?[2!==e.token.type?[t("NcActionButton",{attrs:{icon:"icon-delete"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.revoke.apply(null,arguments)}}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("settings","Revoke"))+"\n\t\t\t\t\t")]),e._v(" "),t("NcActionButton",{attrs:{icon:"icon-delete"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wipe.apply(null,arguments)}}},[e._v("\n\t\t\t\t\t\t"+e._s(e.t("settings","Wipe device"))+"\n\t\t\t\t\t")])]:2===e.token.type?t("NcActionButton",{attrs:{icon:"icon-delete",name:e.t("settings","Revoke")},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.revoke.apply(null,arguments)}}},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Revoking this token might prevent the wiping of your device if it has not started the wipe yet."))+"\n\t\t\t\t")]):e._e()]:e._e()],2)],1)])},[],!1,null,"295c46c3",null);const Xt=Qt.exports,Jt=(0,ut.pM)({name:"AuthTokenList",components:{AuthToken:Xt},setup:()=>({authTokenStore:St()}),computed:{sortedTokens(){return[...this.authTokenStore.tokens].filter(e=>e.type!==Nt.ONETIME_TOKEN).sort((e,t)=>t.lastActivity-e.lastActivity)}},methods:{t:ht.Tl}});var Zt=o(59340),en={};en.styleTagTransform=Gt(),en.setAttributes=Wt(),en.insert=Ht().bind(null,"head"),en.domAPI=Mt(),en.insertStyleElement=qt(),jt()(Zt.A,en),Zt.A&&Zt.A.locals&&Zt.A.locals;const tn=(0,Yt.A)(Jt,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("table",{staticClass:"token-list",attrs:{id:"app-tokens-table"}},[t("thead",[t("tr",[t("th",{staticClass:"token-list__header-device"},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Device"))+"\n\t\t\t")]),e._v(" "),t("th",{staticClass:"toke-list__header-activity"},[e._v("\n\t\t\t\t"+e._s(e.t("settings","Last activity"))+"\n\t\t\t")]),e._v(" "),t("th",[t("span",{staticClass:"hidden-visually"},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Actions"))+"\n\t\t\t\t")])])])]),e._v(" "),t("tbody",{staticClass:"token-list__body"},e._l(e.sortedTokens,function(e){return t("AuthToken",{key:e.id,attrs:{token:e}})}),1)])},[],!1,null,"5fe11895",null).exports;var nn=o(17816),on=o.n(nn),rn=o(94219);const sn=(0,ut.pM)({name:"AuthTokenSetupDialog",components:{NcButton:bt.A,NcDialog:rn.A,NcIconSvgWrapper:wt.A,NcTextField:At.A,QR:on()},props:{token:{type:Object,required:!1,default:null}},data:()=>({isNameCopied:!1,isPasswordCopied:!1,showQRCode:!1}),computed:{open:{get(){return null!==this.token},set(e){e||this.$emit("close")}},copyPasswordIcon(){return this.isPasswordCopied?vt.Tfj:vt.$BT},copyNameIcon(){return this.isNameCopied?vt.Tfj:vt.$BT},appPassword(){return this.token?.token??""},loginName(){return this.token?.loginName??""},qrUrl(){const e=window.location.protocol+"//"+window.location.host+(0,Ot.aU)();return`nc://login/user:${this.loginName}&password:${this.appPassword}&server:${e}`},copyPasswordLabel(){return this.isPasswordCopied?(0,ht.Tl)("settings","App password copied!"):(0,ht.Tl)("settings","Copy app password")},copyLoginNameLabel(){return this.isNameCopied?(0,ht.Tl)("settings","Login name copied!"):(0,ht.Tl)("settings","Copy login name")}},watch:{token(){this.showQRCode=!1},open(){this.open&&this.$nextTick(()=>{this.$refs.appPassword.select()})}},methods:{t:ht.Tl,async copyPassword(){try{await navigator.clipboard.writeText(this.appPassword),this.isPasswordCopied=!0}catch(e){this.isPasswordCopied=!1,xt.error(e),(0,kt.Qg)((0,ht.Tl)("settings","Could not copy app password. Please copy it manually."))}finally{setTimeout(()=>{this.isPasswordCopied=!1},4e3)}},async copyLoginName(){try{await navigator.clipboard.writeText(this.loginName),this.isNameCopied=!0}catch(e){this.isNameCopied=!1,xt.error(e),(0,kt.Qg)((0,ht.Tl)("settings","Could not copy login name. Please copy it manually."))}finally{setTimeout(()=>{this.isNameCopied=!1},4e3)}}}});var an=o(56982),ln={};ln.styleTagTransform=Gt(),ln.setAttributes=Wt(),ln.insert=Ht().bind(null,"head"),ln.domAPI=Mt(),ln.insertStyleElement=qt(),jt()(an.A,ln),an.A&&an.A.locals&&an.A.locals;const pn=(0,Yt.A)(sn,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{attrs:{open:e.open,name:e.t("settings","New app password"),"content-classes":"token-dialog"},on:{"update:open":function(t){e.open=t}}},[t("p",[e._v("\n\t\t"+e._s(e.t("settings","Use the credentials below to configure your app or device. For security reasons this password will only be shown once."))+"\n\t")]),e._v(" "),t("div",{staticClass:"token-dialog__name"},[t("NcTextField",{attrs:{label:e.t("settings","Login"),"model-value":e.loginName,readonly:""}}),e._v(" "),t("NcButton",{attrs:{variant:"tertiary",title:e.copyLoginNameLabel,"aria-label":e.copyLoginNameLabel},on:{click:e.copyLoginName},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.copyNameIcon}})]},proxy:!0}])})],1),e._v(" "),t("div",{staticClass:"token-dialog__password"},[t("NcTextField",{ref:"appPassword",attrs:{label:e.t("settings","Password"),"model-value":e.appPassword,readonly:""}}),e._v(" "),t("NcButton",{attrs:{variant:"tertiary",title:e.copyPasswordLabel,"aria-label":e.copyPasswordLabel},on:{click:e.copyPassword},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{path:e.copyPasswordIcon}})]},proxy:!0}])})],1),e._v(" "),t("div",{staticClass:"token-dialog__qrcode"},[e.showQRCode?t("QR",{attrs:{value:e.qrUrl}}):t("NcButton",{on:{click:function(t){e.showQRCode=!0}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Show QR code for mobile apps"))+"\n\t\t")])],1)])},[],!1,null,"1a608fc0",null).exports,dn=(0,ut.pM)({name:"AuthTokenSetup",components:{NcButton:bt.A,NcTextField:At.A,AuthTokenSetupDialog:pn},setup:()=>({authTokenStore:St()}),data:()=>({deviceName:"",loading:!1,newToken:null}),methods:{t:ht.Tl,reset(){this.loading=!1,this.deviceName="",this.newToken=null},async submit(){try{this.loading=!0,this.newToken=await this.authTokenStore.addToken(this.deviceName)}catch(e){xt.error(e),(0,kt.Qg)((0,ht.Tl)("settings","Error while creating device token")),this.reset()}finally{this.loading=!1}}}});var cn=o(96419),un={};un.styleTagTransform=Gt(),un.setAttributes=Wt(),un.insert=Ht().bind(null,"head"),un.domAPI=Mt(),un.insertStyleElement=qt(),jt()(cn.A,un),cn.A&&cn.A.locals&&cn.A.locals;var fn=(0,Yt.A)(dn,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("form",{staticClass:"row spacing",attrs:{id:"generate-app-token-section"},on:{submit:function(t){return t.preventDefault(),e.submit.apply(null,arguments)}}},[t("NcTextField",{staticClass:"app-name-text-field",attrs:{type:"text",maxlength:120,disabled:e.loading,label:e.t("settings","App name"),placeholder:e.t("settings","App name")},model:{value:e.deviceName,callback:function(t){e.deviceName=t},expression:"deviceName"}}),e._v(" "),t("NcButton",{attrs:{variant:"primary",disabled:e.loading||0===e.deviceName.length,type:"submit"}},[e._v("\n\t\t"+e._s(e.t("settings","Create new app password"))+"\n\t")]),e._v(" "),t("AuthTokenSetupDialog",{attrs:{token:e.newToken},on:{close:function(t){e.newToken=null}}})],1)},[],!1,null,"e1d5b2e0",null);const hn=fn.exports,vn=(0,ut.pM)({name:"AuthTokenSection",components:{AuthTokenList:tn,AuthTokenSetup:hn},data:()=>({canCreateToken:(0,ft.C)("settings","can_create_app_token")}),methods:{t:ht.Tl}}),mn=(0,Yt.A)(vn,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"section",attrs:{id:"security"}},[t("h2",[e._v(e._s(e.t("settings","Devices & sessions",{},void 0,{sanitize:!1})))]),e._v(" "),t("p",{staticClass:"settings-hint hidden-when-empty"},[e._v("\n\t\t"+e._s(e.t("settings","Web, desktop and mobile clients currently logged in to your account."))+"\n\t")]),e._v(" "),t("AuthTokenList"),e._v(" "),e.canCreateToken?t("AuthTokenSetup"):e._e()],1)},[],!1,null,null,null).exports;o.nc=(0,i.aV)();const gn=(0,r.Ey)();ut.Ay.use(r.R2),ut.Ay.use(ct,{defaultHtml:!1}),ut.Ay.prototype.t=t,new(ut.Ay.extend(mn))({pinia:gn}).$mount("#security-authtokens")},51983(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,".auth-token[data-v-295c46c3]{border-top:2px solid var(--color-border);max-width:200px;white-space:normal;vertical-align:middle;position:relative}.auth-token--wiping[data-v-295c46c3]{background-color:var(--color-background-dark)}.auth-token__name[data-v-295c46c3]{padding-block:10px;display:flex;align-items:center;gap:6px;min-width:355px}.auth-token__name-wrapper[data-v-295c46c3]{display:flex;flex-direction:column}.auth-token__name-form[data-v-295c46c3]{align-items:end;display:flex;gap:4px}.auth-token__actions[data-v-295c46c3]{padding:0 10px}.auth-token__last-activity[data-v-295c46c3]{padding-inline-start:10px}.auth-token .wiping-warning[data-v-295c46c3]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthToken.vue"],names:[],mappings:"AACA,6BACC,wCAAA,CACA,eAAA,CACA,kBAAA,CACA,qBAAA,CACA,iBAAA,CAEA,qCACC,6CAAA,CAGD,mCACC,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CAGD,2CACC,YAAA,CACA,qBAAA,CAGD,wCACC,eAAA,CACA,YAAA,CACA,OAAA,CAGD,sCACC,cAAA,CAGD,4CACC,yBAAA,CAGD,6CACC,mCAAA",sourcesContent:["\n.auth-token {\n\tborder-top: 2px solid var(--color-border);\n\tmax-width: 200px;\n\twhite-space: normal;\n\tvertical-align: middle;\n\tposition: relative;\n\n\t&--wiping {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__name {\n\t\tpadding-block: 10px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t\tmin-width: 355px; // ensure no jumping when renaming\n\t}\n\n\t&__name-wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t&__name-form {\n\t\talign-items: end;\n\t\tdisplay: flex;\n\t\tgap: 4px;\n\t}\n\n\t&__actions {\n\t\tpadding: 0 10px;\n\t}\n\n\t&__last-activity {\n\t\tpadding-inline-start: 10px;\n\t}\n\n\t.wiping-warning {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const a=s},59340(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,".token-list[data-v-5fe11895]{width:100%;min-height:50px;padding-top:5px;max-width:fit-content}.token-list th[data-v-5fe11895]{padding-block:10px;padding-inline-start:10px}.token-list .token-list__header-device[data-v-5fe11895]{padding-inline-start:50px}.token-list__header-activity[data-v-5fe11895]{text-align:end}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthTokenList.vue"],names:[],mappings:"AACA,6BACC,UAAA,CACA,eAAA,CACA,eAAA,CACA,qBAAA,CAEA,gCACC,kBAAA,CACA,yBAAA,CAGD,wDACC,yBAAA,CAED,8CACC,cAAA",sourcesContent:["\n.token-list {\n\twidth: 100%;\n\tmin-height: 50px;\n\tpadding-top: 5px;\n\tmax-width: fit-content;\n\n\tth {\n\t\tpadding-block: 10px;\n\t\tpadding-inline-start: 10px;\n\t}\n\n\t#{&}__header-device {\n\t\tpadding-inline-start: 50px; // 44px icon + 6px padding\n\t}\n\t&__header-activity {\n\t\ttext-align: end;\n\t}\n}\n"],sourceRoot:""}]);const a=s},96419(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,".app-name-text-field[data-v-e1d5b2e0]{height:44px !important;padding-inline-start:12px;margin-inline-end:12px;width:200px}.row[data-v-e1d5b2e0]{display:flex;align-items:center}.spacing[data-v-e1d5b2e0]{padding-top:16px}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthTokenSetup.vue"],names:[],mappings:"AACA,sCACC,sBAAA,CACA,yBAAA,CACA,sBAAA,CACA,WAAA,CAGD,sBACC,YAAA,CACA,kBAAA,CAGD,0BACC,gBAAA",sourcesContent:["\n.app-name-text-field {\n\theight: 44px !important;\n\tpadding-inline-start: 12px;\n\tmargin-inline-end: 12px;\n\twidth: 200px;\n}\n\n.row {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.spacing {\n\tpadding-top: 16px;\n}\n"],sourceRoot:""}]);const a=s},56982(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(71354),i=n.n(o),r=n(76314),s=n.n(r)()(i());s.push([e.id,"[data-v-1a608fc0] .token-dialog{display:flex;flex-direction:column;gap:12px;padding-inline:22px;padding-block-end:20px}[data-v-1a608fc0] .token-dialog>*{box-sizing:border-box}.token-dialog__name[data-v-1a608fc0],.token-dialog__password[data-v-1a608fc0]{align-items:end;display:flex;gap:10px}.token-dialog__name[data-v-1a608fc0] input,.token-dialog__password[data-v-1a608fc0] input{font-family:monospace}.token-dialog__qrcode[data-v-1a608fc0]{display:flex;justify-content:center}","",{version:3,sources:["webpack://./apps/settings/src/components/AuthTokenSetupDialog.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,qBAAA,CACA,QAAA,CAEA,mBAAA,CACA,sBAAA,CAEA,kCACC,qBAAA,CAKD,8EACC,eAAA,CACA,YAAA,CACA,QAAA,CAEA,0FACC,qBAAA,CAIF,uCACC,YAAA,CACA,sBAAA",sourcesContent:["\n:deep(.token-dialog) {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\n\tpadding-inline: 22px;\n\tpadding-block-end: 20px;\n\n\t> * {\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.token-dialog {\n\t&__name, &__password {\n\t\talign-items: end;\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\n\t\t:deep(input) {\n\t\t\tfont-family: monospace;\n\t\t}\n\t}\n\n\t&__qrcode {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t}\n}\n"],sourceRoot:""}]);const a=s},87805(e,t,n){var o=n(43360),i=n(75288);e.exports=function(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&o(e,t,n)}},85250(e,t,n){var o=n(37217),i=n(87805),r=n(86649),s=n(42824),a=n(23805),l=n(37241),p=n(14974);e.exports=function e(t,n,d,c,u){t!==n&&r(n,function(r,l){if(u||(u=new o),a(r))s(t,n,l,d,e,c,u);else{var f=c?c(p(t,l),r,l+"",t,n,u):void 0;void 0===f&&(f=r),i(t,l,f)}},l)}},42824(e,t,n){var o=n(87805),i=n(93290),r=n(71961),s=n(23007),a=n(35529),l=n(72428),p=n(56449),d=n(83693),c=n(3656),u=n(1882),f=n(23805),h=n(11331),v=n(37167),m=n(14974),g=n(69884);e.exports=function(e,t,n,y,b,_,w){var A=m(e,n),C=m(t,n),k=w.get(C);if(k)o(e,n,k);else{var T=_?_(A,C,n+"",e,t,w):void 0,O=void 0===T;if(O){var x=p(C),E=!x&&c(C),N=!x&&!E&&v(C);T=C,x||E||N?p(A)?T=A:d(A)?T=s(A):E?(O=!1,T=i(C,!0)):N?(O=!1,T=r(C,!0)):T=[]:h(C)||l(C)?(T=A,l(A)?T=g(A):f(A)&&!u(A)||(T=a(C))):O=!1}O&&(w.set(C,T),b(T,C,y,_,w),w.delete(C)),o(e,n,T)}}},20999(e,t,n){var o=n(69302),i=n(36800);e.exports=function(e){return o(function(t,n){var o=-1,r=n.length,s=r>1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&i(n[0],n[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++o{if(!n){var r=1/0;for(d=0;d=i)&&Object.keys(s.O).every(e=>s.O[e](n[l]))?n.splice(l--,1):(a=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[n,o,i]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,n)=>(s.f[n](e,t),t),[])),s.u=e=>e+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",5448:"71cfe268d6f1213c4735",6015:"ebcb6885c1fc8c461988",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4"}[e],s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},o="nextcloud-ui-legacy:",s.l=(e,t,i,r)=>{if(n[e])n[e].push(t);else{var a,l;if(void 0!==i)for(var p=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var i=n[e];if(delete n[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(e=>e(o)),t)return t(o)},f=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),l&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2131,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=n[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2131:0};s.f.j=(t,n)=>{var o=s.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var i=new Promise((n,i)=>o=e[t]=[n,i]);n.push(o[2]=i);var r=s.p+s.u(t),a=new Error;s.l(r,n=>{if(s.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var i=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",a.name="ChunkLoadError",a.type=i,a.request=r,o[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,n)=>{var o,i,[r,a,l]=n,p=0;if(r.some(t=>0!==e[t])){for(o in a)s.o(a,o)&&(s.m[o]=a[o]);if(l)var d=l(s)}for(t&&t(n);ps(67490));a=s.O(a)})(); +//# sourceMappingURL=settings-vue-settings-personal-security.js.map?v=795f27a58c19434e02b0 \ No newline at end of file diff --git a/dist/settings-vue-settings-personal-security.js.map b/dist/settings-vue-settings-personal-security.js.map index af7ef0ca58956..ccc99fdf91ba2 100644 --- a/dist/settings-vue-settings-personal-security.js.map +++ b/dist/settings-vue-settings-personal-security.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-vue-settings-personal-security.js?v=e7576be1af828365fbbe","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/apps/settings/src/store/authtoken.ts","webpack:///nextcloud/apps/settings/src/components/AuthToken.vue","webpack:///nextcloud/apps/settings/src/components/AuthToken.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AuthToken.vue?1ee4","webpack://nextcloud/./apps/settings/src/components/AuthToken.vue?1338","webpack:///nextcloud/apps/settings/src/components/AuthTokenList.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AuthTokenList.vue","webpack://nextcloud/./apps/settings/src/components/AuthTokenList.vue?299e","webpack://nextcloud/./apps/settings/src/components/AuthTokenList.vue?90cb","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetup.vue","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetupDialog.vue","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetupDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetupDialog.vue?93e0","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetupDialog.vue?8aec","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetup.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetup.vue?d82d","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetup.vue?8a43","webpack:///nextcloud/apps/settings/src/components/AuthTokenSection.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AuthTokenSection.vue","webpack://nextcloud/./apps/settings/src/components/AuthTokenSection.vue?e9d0","webpack:///nextcloud/apps/settings/src/main-personal-security.js","webpack:///nextcloud/apps/settings/src/components/AuthToken.vue?vue&type=style&index=0&id=2a4232a2&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\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 ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","import axios from '@nextcloud/axios';\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showError } from '@nextcloud/dialogs';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors, confirmPassword, PwdConfirmationMode } from '@nextcloud/password-confirmation';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport logger from '../logger.ts';\nconst BASE_URL = generateUrl('/settings/personal/authtokens');\naddPasswordConfirmationInterceptors(axios);\n/**\n *\n */\nfunction confirm() {\n return new Promise((resolve) => {\n window.OC.dialogs.confirm(t('settings', 'Do you really want to wipe your data from this device?'), t('settings', 'Confirm wipe'), resolve, true);\n });\n}\nexport var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"TEMPORARY_TOKEN\"] = 0] = \"TEMPORARY_TOKEN\";\n TokenType[TokenType[\"PERMANENT_TOKEN\"] = 1] = \"PERMANENT_TOKEN\";\n TokenType[TokenType[\"WIPING_TOKEN\"] = 2] = \"WIPING_TOKEN\";\n TokenType[TokenType[\"ONETIME_TOKEN\"] = 3] = \"ONETIME_TOKEN\";\n})(TokenType || (TokenType = {}));\nexport const useAuthTokenStore = defineStore('auth-token', {\n state() {\n return {\n tokens: loadState('settings', 'app_tokens', []),\n };\n },\n actions: {\n /**\n * Update a token on server\n *\n * @param token Token to update\n */\n async updateToken(token) {\n const { data } = await axios.put(`${BASE_URL}/${token.id}`, token);\n return data;\n },\n /**\n * Add a new token\n *\n * @param name The token name\n */\n async addToken(name) {\n logger.debug('Creating a new app token');\n try {\n const { data } = await axios.post(BASE_URL, { name, oneTime: true }, { confirmPassword: PwdConfirmationMode.Strict });\n this.tokens.push(data.deviceToken);\n logger.debug('App token created');\n return data;\n }\n catch {\n return null;\n }\n },\n /**\n * Delete a given app token\n *\n * @param token Token to delete\n */\n async deleteToken(token) {\n logger.debug('Deleting app token', { token });\n this.tokens = this.tokens.filter(({ id }) => id !== token.id);\n try {\n await axios.delete(`${BASE_URL}/${token.id}`);\n logger.debug('App token deleted');\n return true;\n }\n catch (error) {\n logger.error('Could not delete app token', { error });\n showError(t('settings', 'Could not delete the app token'));\n // Restore\n this.tokens.push(token);\n }\n return false;\n },\n /**\n * Wipe a token and the connected device\n *\n * @param token Token to wipe\n */\n async wipeToken(token) {\n logger.debug('Wiping app token', { token });\n try {\n await confirmPassword();\n if (!(await confirm())) {\n logger.debug('Wipe aborted by user');\n return;\n }\n await axios.post(`${BASE_URL}/wipe/${token.id}`);\n logger.debug('App token marked for wipe', { token });\n token.type = TokenType.WIPING_TOKEN;\n token.canRename = false; // wipe tokens can not be renamed\n return true;\n }\n catch (error) {\n logger.error('Could not wipe app token', { error });\n showError(t('settings', 'Error while wiping the device with the token'));\n }\n return false;\n },\n /**\n * Rename an existing token\n *\n * @param token The token to rename\n * @param newName The new name to set\n */\n async renameToken(token, newName) {\n logger.debug(`renaming app token ${token.id} from ${token.name} to '${newName}'`);\n const oldName = token.name;\n token.name = newName;\n try {\n await this.updateToken(token);\n logger.debug('App token name updated');\n return true;\n }\n catch (error) {\n logger.error('Could not update app token name', { error });\n showError(t('settings', 'Error while updating device token name'));\n // Restore\n token.name = oldName;\n }\n return false;\n },\n /**\n * Set scope of the token\n *\n * @param token Token to set scope\n * @param scope scope to set\n * @param value value to set\n */\n async setTokenScope(token, scope, value) {\n logger.debug('Updating app token scope', { token, scope, value });\n const oldVal = token.scope[scope];\n token.scope[scope] = value;\n try {\n await this.updateToken(token);\n logger.debug('app token scope updated');\n return true;\n }\n catch (error) {\n logger.error('could not update app token scope', { error });\n showError(t('settings', 'Error while updating device token scope'));\n // Restore\n token.scope[scope] = oldVal;\n }\n return false;\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"auth-token\",class:[{ 'auth-token--wiping': _vm.wiping }],attrs:{\"data-id\":_vm.token.id}},[_c('td',{staticClass:\"auth-token__name\"},[_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.tokenIcon}}),_vm._v(\" \"),_c('div',{staticClass:\"auth-token__name-wrapper\"},[(_vm.token.canRename && _vm.renaming)?_c('form',{staticClass:\"auth-token__name-form\",on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.rename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"input\",attrs:{\"label\":_vm.t('settings', 'Device name'),\"show-trailing-button\":true,\"trailing-button-label\":_vm.t('settings', 'Cancel renaming')},on:{\"trailing-button-click\":_vm.cancelRename,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.cancelRename.apply(null, arguments)}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Save new name'),\"variant\":\"tertiary\",\"type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiCheck}})]},proxy:true}],null,false,1018299955)})],1):_c('span',[_vm._v(_vm._s(_vm.tokenLabel))]),_vm._v(\" \"),(_vm.wiping)?_c('span',{staticClass:\"wiping-warning\"},[_vm._v(\"(\"+_vm._s(_vm.t('settings', 'Marked for remote wipe'))+\")\")]):_vm._e()])],1),_vm._v(\" \"),_c('td',[_c('NcDateTime',{staticClass:\"auth-token__last-activity\",attrs:{\"ignore-seconds\":true,\"timestamp\":_vm.tokenLastActivity}})],1),_vm._v(\" \"),_c('td',{staticClass:\"auth-token__actions\"},[(!_vm.token.current)?_c('NcActions',{attrs:{\"title\":_vm.t('settings', 'Device settings'),\"aria-label\":_vm.t('settings', 'Device settings'),\"open\":_vm.actionOpen},on:{\"update:open\":function($event){_vm.actionOpen=$event}}},[(_vm.canChangeScope)?_c('NcActionCheckbox',{attrs:{\"model-value\":_vm.token.scope.filesystem},on:{\"update:modelValue\":_vm.updateFileSystemScope}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Allow filesystem access'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.token.canRename)?_c('NcActionButton',{attrs:{\"icon\":\"icon-rename\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.startRename.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Rename'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.token.canDelete)?[(_vm.token.type !== 2)?[_c('NcActionButton',{attrs:{\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.revoke.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Revoke'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.wipe.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Wipe device'))+\"\\n\\t\\t\\t\\t\\t\")])]:(_vm.token.type === 2)?_c('NcActionButton',{attrs:{\"icon\":\"icon-delete\",\"name\":_vm.t('settings', 'Revoke')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.revoke.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Revoking this token might prevent the wiping of your device if it has not started the wipe yet.'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=style&index=0&id=2a4232a2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=style&index=0&id=2a4232a2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthToken.vue?vue&type=template&id=2a4232a2&scoped=true\"\nimport script from \"./AuthToken.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthToken.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthToken.vue?vue&type=style&index=0&id=2a4232a2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a4232a2\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"token-list\",attrs:{\"id\":\"app-tokens-table\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"token-list__header-device\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Device'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('th',{staticClass:\"toke-list__header-activity\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Last activity'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Actions'))+\"\\n\\t\\t\\t\\t\")])])])]),_vm._v(\" \"),_c('tbody',{staticClass:\"token-list__body\"},_vm._l((_vm.sortedTokens),function(token){return _c('AuthToken',{key:token.id,attrs:{\"token\":token}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthTokenList.vue?vue&type=template&id=5fe11895&scoped=true\"\nimport script from \"./AuthTokenList.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fe11895\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"row spacing\",attrs:{\"id\":\"generate-app-token-section\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('NcTextField',{staticClass:\"app-name-text-field\",attrs:{\"type\":\"text\",\"maxlength\":120,\"disabled\":_vm.loading,\"label\":_vm.t('settings', 'App name'),\"placeholder\":_vm.t('settings', 'App name')},model:{value:(_vm.deviceName),callback:function ($$v) {_vm.deviceName=$$v},expression:\"deviceName\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"disabled\":_vm.loading || _vm.deviceName.length === 0,\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Create new app password'))+\"\\n\\t\")]),_vm._v(\" \"),_c('AuthTokenSetupDialog',{attrs:{\"token\":_vm.newToken},on:{\"close\":function($event){_vm.newToken = null}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{attrs:{\"open\":_vm.open,\"name\":_vm.t('settings', 'New app password'),\"content-classes\":\"token-dialog\"},on:{\"update:open\":function($event){_vm.open=$event}}},[_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Use the credentials below to configure your app or device. For security reasons this password will only be shown once.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"token-dialog__name\"},[_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Login'),\"model-value\":_vm.loginName,\"readonly\":\"\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"title\":_vm.copyLoginNameLabel,\"aria-label\":_vm.copyLoginNameLabel},on:{\"click\":_vm.copyLoginName},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.copyNameIcon}})]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"token-dialog__password\"},[_c('NcTextField',{ref:\"appPassword\",attrs:{\"label\":_vm.t('settings', 'Password'),\"model-value\":_vm.appPassword,\"readonly\":\"\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"title\":_vm.copyPasswordLabel,\"aria-label\":_vm.copyPasswordLabel},on:{\"click\":_vm.copyPassword},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.copyPasswordIcon}})]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"token-dialog__qrcode\"},[(!_vm.showQRCode)?_c('NcButton',{on:{\"click\":function($event){_vm.showQRCode = true}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show QR code for mobile apps'))+\"\\n\\t\\t\")]):_c('QR',{attrs:{\"value\":_vm.qrUrl}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthTokenSetupDialog.vue?vue&type=template&id=1a608fc0&scoped=true\"\nimport script from \"./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a608fc0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthTokenSetup.vue?vue&type=template&id=e1d5b2e0&scoped=true\"\nimport script from \"./AuthTokenSetup.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenSetup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e1d5b2e0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSection.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"section\",attrs:{\"id\":\"security\"}},[_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'Devices & sessions', {}, undefined, { sanitize: false })))]),_vm._v(\" \"),_c('p',{staticClass:\"settings-hint hidden-when-empty\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Web, desktop and mobile clients currently logged in to your account.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('AuthTokenList'),_vm._v(\" \"),(_vm.canCreateToken)?_c('AuthTokenSetup'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AuthTokenSection.vue?vue&type=template&id=a5708d5e\"\nimport script from \"./AuthTokenSection.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenSection.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nimport VTooltipPlugin from 'v-tooltip'\nimport Vue from 'vue'\nimport AuthTokenSection from './components/AuthTokenSection.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nconst pinia = createPinia()\n\nVue.use(PiniaVuePlugin)\nVue.use(VTooltipPlugin, { defaultHtml: false })\nVue.prototype.t = t\n\nconst View = Vue.extend(AuthTokenSection)\nnew View({ pinia }).$mount('#security-authtokens')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `.auth-token[data-v-2a4232a2]{border-top:2px solid var(--color-border);max-width:200px;white-space:normal;vertical-align:middle;position:relative}.auth-token--wiping[data-v-2a4232a2]{background-color:var(--color-background-dark)}.auth-token__name[data-v-2a4232a2]{padding-block:10px;display:flex;align-items:center;gap:6px;min-width:355px}.auth-token__name-wrapper[data-v-2a4232a2]{display:flex;flex-direction:column}.auth-token__name-form[data-v-2a4232a2]{align-items:end;display:flex;gap:4px}.auth-token__actions[data-v-2a4232a2]{padding:0 10px}.auth-token__last-activity[data-v-2a4232a2]{padding-inline-start:10px}.auth-token .wiping-warning[data-v-2a4232a2]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthToken.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,wCAAA,CACA,eAAA,CACA,kBAAA,CACA,qBAAA,CACA,iBAAA,CAEA,qCACC,6CAAA,CAGD,mCACC,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CAGD,2CACC,YAAA,CACA,qBAAA,CAGD,wCACC,eAAA,CACA,YAAA,CACA,OAAA,CAGD,sCACC,cAAA,CAGD,4CACC,yBAAA,CAGD,6CACC,mCAAA\",\"sourcesContent\":[\"\\n.auth-token {\\n\\tborder-top: 2px solid var(--color-border);\\n\\tmax-width: 200px;\\n\\twhite-space: normal;\\n\\tvertical-align: middle;\\n\\tposition: relative;\\n\\n\\t&--wiping {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__name {\\n\\t\\tpadding-block: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: 6px;\\n\\t\\tmin-width: 355px; // ensure no jumping when renaming\\n\\t}\\n\\n\\t&__name-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__name-form {\\n\\t\\talign-items: end;\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 4px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tpadding: 0 10px;\\n\\t}\\n\\n\\t&__last-activity {\\n\\t\\tpadding-inline-start: 10px;\\n\\t}\\n\\n\\t.wiping-warning {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `.token-list[data-v-5fe11895]{width:100%;min-height:50px;padding-top:5px;max-width:fit-content}.token-list th[data-v-5fe11895]{padding-block:10px;padding-inline-start:10px}.token-list .token-list__header-device[data-v-5fe11895]{padding-inline-start:50px}.token-list__header-activity[data-v-5fe11895]{text-align:end}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthTokenList.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,UAAA,CACA,eAAA,CACA,eAAA,CACA,qBAAA,CAEA,gCACC,kBAAA,CACA,yBAAA,CAGD,wDACC,yBAAA,CAED,8CACC,cAAA\",\"sourcesContent\":[\"\\n.token-list {\\n\\twidth: 100%;\\n\\tmin-height: 50px;\\n\\tpadding-top: 5px;\\n\\tmax-width: fit-content;\\n\\n\\tth {\\n\\t\\tpadding-block: 10px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t}\\n\\n\\t#{&}__header-device {\\n\\t\\tpadding-inline-start: 50px; // 44px icon + 6px padding\\n\\t}\\n\\t&__header-activity {\\n\\t\\ttext-align: end;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `.app-name-text-field[data-v-e1d5b2e0]{height:44px !important;padding-inline-start:12px;margin-inline-end:12px;width:200px}.row[data-v-e1d5b2e0]{display:flex;align-items:center}.spacing[data-v-e1d5b2e0]{padding-top:16px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthTokenSetup.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,sBAAA,CACA,yBAAA,CACA,sBAAA,CACA,WAAA,CAGD,sBACC,YAAA,CACA,kBAAA,CAGD,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.app-name-text-field {\\n\\theight: 44px !important;\\n\\tpadding-inline-start: 12px;\\n\\tmargin-inline-end: 12px;\\n\\twidth: 200px;\\n}\\n\\n.row {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.spacing {\\n\\tpadding-top: 16px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `[data-v-1a608fc0] .token-dialog{display:flex;flex-direction:column;gap:12px;padding-inline:22px;padding-block-end:20px}[data-v-1a608fc0] .token-dialog>*{box-sizing:border-box}.token-dialog__name[data-v-1a608fc0],.token-dialog__password[data-v-1a608fc0]{align-items:end;display:flex;gap:10px}.token-dialog__name[data-v-1a608fc0] input,.token-dialog__password[data-v-1a608fc0] input{font-family:monospace}.token-dialog__qrcode[data-v-1a608fc0]{display:flex;justify-content:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthTokenSetupDialog.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,qBAAA,CACA,QAAA,CAEA,mBAAA,CACA,sBAAA,CAEA,kCACC,qBAAA,CAKD,8EACC,eAAA,CACA,YAAA,CACA,QAAA,CAEA,0FACC,qBAAA,CAIF,uCACC,YAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n:deep(.token-dialog) {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 12px;\\n\\n\\tpadding-inline: 22px;\\n\\tpadding-block-end: 20px;\\n\\n\\t> * {\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\\n.token-dialog {\\n\\t&__name, &__password {\\n\\t\\talign-items: end;\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 10px;\\n\\n\\t\\t:deep(input) {\\n\\t\\t\\tfont-family: monospace;\\n\\t\\t}\\n\\t}\\n\\n\\t&__qrcode {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"5448\":\"71cfe268d6f1213c4735\",\"6015\":\"ebcb6885c1fc8c461988\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2131;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2131: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(71410)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","e","toPrimitive","call","r","TypeError","String","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_defineProperties","length","key","isBrowser","window","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","console","warn","enabled","update","this","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","removeEventListeners","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","offset","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","requestAnimationFrame","bind","jquery","Utils","PopperUtils","initCompat","init","ua","msie","substring","rv","edge","getInternetExplorerVersion","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","emitOnMount","type","Boolean","default","ignoreWidth","ignoreHeight","mounted","$nextTick","_w","$el","_h","emitSize","object","createElement","_resizeObject","onload","addResizeHandlers","appendChild","beforeDestroy","removeResizeHandlers","methods","compareAndNotify","$emit","contentDocument","__vue_render__","$createElement","_self","_c","staticClass","attrs","tabindex","_withStripped","__vue_component__","install","Vue","component","GlobalVue","use","SVGAnimatedString","convertToArray","addClasses","classes","classList","newClasses","className","baseVal","newClass","SVGElement","join","removeClasses","splice","supportsPassive","opts","get","ownKeys$2","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread$2","getOwnPropertyDescriptors","DEFAULT_OPTIONS","container","delay","title","trigger","openTooltips","Tooltip","_reference","_options","_classCallCheck","evt","relatedreference","toElement","relatedTarget","_tooltipNode","evt2","relatedreference2","_scheduleHide","show","_isOpen","_init","_show","_hide","_dispose","_classes","content","_setContent","classesUpdated","directive","defaultClass","isEqual","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","events","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","getAttribute","_this2","tooltipGenerator","innerHTML","tooltipNode","childNodes","id","ariaId","random","substr","autoHide","_this3","asyncContent","_applyContent","_this4","reject","allowHtml","rootNode","titleNode","innerSelector","firstChild","loadingClass","loadingContent","asyncResult","catch","innerText","clearTimeout","_disposeTimer","updateClasses","_ensureShown","_this5","display","_create","_findContainer","_append","popperOptions","arrowSelector","_this6","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this7","_events","func","_this8","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this9","computedDelay","_scheduleTimer","_this10","_setTooltipNodeEvent","ownKeys$1","_objectSpread$1","_onDocumentTouch","capture","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","pos","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","oldValue","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","unbind","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","ownKeys","_objectSpread","getDefault","isIOS","MSStream","openPopovers","Element","components","ResizeObserver","open","disabled","Number","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","computed","cssClass","popoverId","watch","val","oldVal","popoverNode","$refs","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","handler","deep","created","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","skipDelay","_ref2$force","force","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","hidden","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","cb","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","_vm","class","ref","staticStyle","_t","_v","visibility","on","keyup","$event","_k","keyCode","notify","_e","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","styleInject","plugin","installed","finalOptions","merge","global","getLoggerBuilder","setApp","detectUser","build","BASE_URL","generateUrl","TokenType","addPasswordConfirmationInterceptors","axios","useAuthTokenStore","defineStore","tokens","loadState","actions","updateToken","token","put","addToken","logger","debug","post","oneTime","confirmPassword","PwdConfirmationMode","Strict","deviceToken","deleteToken","delete","error","showError","wipeToken","OC","dialogs","confirm","WIPING_TOKEN","canRename","renameToken","newName","oldName","setTokenScope","scope","userAgentMap","ie","firefox","chrome","safari","androidChrome","iphone","ipad","iosClient","androidClient","iosTalkClient","androidTalkClient","davx5","webPirate","sailfishBrowser","neon","nameMap","productName","oc_defaults","syncClient","defineComponent","NcActions","NcActionButton","NcActionCheckbox","NcButton","NcDateTime","NcIconSvgWrapper","NcTextField","required","setup","authTokenStore","actionOpen","renaming","mdiCheck","canChangeScope","PERMANENT_TOKEN","client","matches","os","tokenLastActivity","lastActivity","tokenIcon","mdiKeyOutline","mdiMicrosoftEdge","mdiFirefox","mdiGoogleChrome","mdiAppleSafari","mdiAndroid","mdiAppleIos","mdiTablet","mdiCellphone","mdiMonitor","mdiWeb","tokenLabel","current","system","wiping","updateFileSystemScope","startRename","input","select","cancelRename","revoke","rename","wipe","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","preventDefault","stopPropagation","model","$$v","expression","scopedSlots","_u","proxy","_s","filesystem","canDelete","AuthToken","sortedTokens","ONETIME_TOKEN","t1","t2","_l","NcDialog","QR","isNameCopied","isPasswordCopied","showQRCode","set","copyPasswordIcon","mdiContentCopy","copyNameIcon","appPassword","loginName","qrUrl","server","location","protocol","getRootUrl","copyPasswordLabel","copyLoginNameLabel","copyPassword","clipboard","writeText","copyLoginName","AuthTokenSetupDialog","deviceName","loading","newToken","reset","submit","AuthTokenList","AuthTokenSetup","canCreateToken","sanitize","__webpack_nonce__","getCSPNonce","pinia","createPinia","PiniaVuePlugin","VTooltipPlugin","extend","AuthTokenSection","$mount","___CSS_LOADER_EXPORT___","module","baseAssignValue","eq","exports","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject","keysIn","safeGet","baseMerge","srcIndex","customizer","stack","srcValue","newValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray","isArrayLikeObject","isBuffer","isPlainObject","isTypedArray","toPlainObject","mergeFunc","objValue","stacked","isCommon","isArr","isBuff","isTyped","baseRest","isIterateeCall","assigner","sources","guard","isArrayLike","isObjectLike","baseIsEqual","other","createAssigner","copyObject","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","d","definition","f","chunkId","promises","u","l","url","done","needAttach","scripts","s","charset","nc","src","onScriptComplete","prev","onerror","timeout","doneFns","toStringTag","nmd","paths","scriptUrl","globalThis","importScripts","currentScript","tagName","Error","p","baseURI","self","href","installedChunks","installedChunkData","promise","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-vue-settings-personal-security.js?v=795f27a58c19434e02b0","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/apps/settings/src/store/authtoken.ts","webpack:///nextcloud/apps/settings/src/utils/userAgentMap.ts","webpack:///nextcloud/apps/settings/src/components/AuthToken.vue","webpack:///nextcloud/apps/settings/src/utils/userAgentDetect.ts","webpack:///nextcloud/apps/settings/src/components/AuthToken.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AuthToken.vue?4d4c","webpack://nextcloud/./apps/settings/src/components/AuthToken.vue?1338","webpack:///nextcloud/apps/settings/src/components/AuthTokenList.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AuthTokenList.vue","webpack://nextcloud/./apps/settings/src/components/AuthTokenList.vue?299e","webpack://nextcloud/./apps/settings/src/components/AuthTokenList.vue?90cb","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetup.vue","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetupDialog.vue","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetupDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetupDialog.vue?93e0","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetupDialog.vue?8aec","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetup.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetup.vue?d82d","webpack://nextcloud/./apps/settings/src/components/AuthTokenSetup.vue?8a43","webpack:///nextcloud/apps/settings/src/components/AuthTokenSection.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AuthTokenSection.vue","webpack://nextcloud/./apps/settings/src/components/AuthTokenSection.vue?e9d0","webpack:///nextcloud/apps/settings/src/main-personal-security.js","webpack:///nextcloud/apps/settings/src/components/AuthToken.vue?vue&type=style&index=0&id=295c46c3&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\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 ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","import axios from '@nextcloud/axios';\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showError } from '@nextcloud/dialogs';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors, confirmPassword, PwdConfirmationMode } from '@nextcloud/password-confirmation';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport logger from '../logger.ts';\nconst BASE_URL = generateUrl('/settings/personal/authtokens');\naddPasswordConfirmationInterceptors(axios);\n/**\n *\n */\nfunction confirm() {\n return new Promise((resolve) => {\n window.OC.dialogs.confirm(t('settings', 'Do you really want to wipe your data from this device?'), t('settings', 'Confirm wipe'), resolve, true);\n });\n}\nexport var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"TEMPORARY_TOKEN\"] = 0] = \"TEMPORARY_TOKEN\";\n TokenType[TokenType[\"PERMANENT_TOKEN\"] = 1] = \"PERMANENT_TOKEN\";\n TokenType[TokenType[\"WIPING_TOKEN\"] = 2] = \"WIPING_TOKEN\";\n TokenType[TokenType[\"ONETIME_TOKEN\"] = 3] = \"ONETIME_TOKEN\";\n})(TokenType || (TokenType = {}));\nexport const useAuthTokenStore = defineStore('auth-token', {\n state() {\n return {\n tokens: loadState('settings', 'app_tokens', []),\n };\n },\n actions: {\n /**\n * Update a token on server\n *\n * @param token Token to update\n */\n async updateToken(token) {\n const { data } = await axios.put(`${BASE_URL}/${token.id}`, token);\n return data;\n },\n /**\n * Add a new token\n *\n * @param name The token name\n */\n async addToken(name) {\n logger.debug('Creating a new app token');\n try {\n const { data } = await axios.post(BASE_URL, { name, oneTime: true }, { confirmPassword: PwdConfirmationMode.Strict });\n this.tokens.push(data.deviceToken);\n logger.debug('App token created');\n return data;\n }\n catch {\n return null;\n }\n },\n /**\n * Delete a given app token\n *\n * @param token Token to delete\n */\n async deleteToken(token) {\n logger.debug('Deleting app token', { token });\n this.tokens = this.tokens.filter(({ id }) => id !== token.id);\n try {\n await axios.delete(`${BASE_URL}/${token.id}`);\n logger.debug('App token deleted');\n return true;\n }\n catch (error) {\n logger.error('Could not delete app token', { error });\n showError(t('settings', 'Could not delete the app token'));\n // Restore\n this.tokens.push(token);\n }\n return false;\n },\n /**\n * Wipe a token and the connected device\n *\n * @param token Token to wipe\n */\n async wipeToken(token) {\n logger.debug('Wiping app token', { token });\n try {\n await confirmPassword();\n if (!(await confirm())) {\n logger.debug('Wipe aborted by user');\n return;\n }\n await axios.post(`${BASE_URL}/wipe/${token.id}`);\n logger.debug('App token marked for wipe', { token });\n token.type = TokenType.WIPING_TOKEN;\n token.canRename = false; // wipe tokens can not be renamed\n return true;\n }\n catch (error) {\n logger.error('Could not wipe app token', { error });\n showError(t('settings', 'Error while wiping the device with the token'));\n }\n return false;\n },\n /**\n * Rename an existing token\n *\n * @param token The token to rename\n * @param newName The new name to set\n */\n async renameToken(token, newName) {\n logger.debug(`renaming app token ${token.id} from ${token.name} to '${newName}'`);\n const oldName = token.name;\n token.name = newName;\n try {\n await this.updateToken(token);\n logger.debug('App token name updated');\n return true;\n }\n catch (error) {\n logger.error('Could not update app token name', { error });\n showError(t('settings', 'Error while updating device token name'));\n // Restore\n token.name = oldName;\n }\n return false;\n },\n /**\n * Set scope of the token\n *\n * @param token Token to set scope\n * @param scope scope to set\n * @param value value to set\n */\n async setTokenScope(token, scope, value) {\n logger.debug('Updating app token scope', { token, scope, value });\n const oldVal = token.scope[scope];\n token.scope[scope] = value;\n try {\n await this.updateToken(token);\n logger.debug('app token scope updated');\n return true;\n }\n catch (error) {\n logger.error('could not update app token scope', { error });\n showError(t('settings', 'Error while updating device token scope'));\n // Restore\n token.scope[scope] = oldVal;\n }\n return false;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// When using capture groups the following parts are extracted\n// the first is used as the version number, the second as the OS\n// Exception: single-group regexes (ie, androidChrome) use the first group as the version.\nexport const userAgentMap = {\n ie: /(?:MSIE|Trident|Trident\\/7.0; rv)[ :](\\d+)/,\n // Microsoft Edge User Agent from https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx\n edge: /^Mozilla\\/5\\.0 \\([^)]+\\) AppleWebKit\\/[0-9.]+ \\(KHTML, like Gecko\\) Chrome\\/[0-9.]+ (?:Mobile Safari|Safari)\\/[0-9.]+ Edge\\/[0-9.]+$/,\n // Firefox User Agent from https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference\n firefox: /^Mozilla\\/5\\.0 \\((?![^)]*Android)[^)]*(Windows|OS X|Linux)[^)]+\\) Gecko\\/[0-9.]+ Firefox\\/(\\d+)(?:\\.\\d)?$/,\n // Android Chrome user agent: https://developers.google.com/chrome/mobile/docs/user-agent\n androidChrome: /^Mozilla\\/5\\.0 \\(Linux; Android[^)]+\\) AppleWebKit\\/[0-9.]+ \\(KHTML, like Gecko\\) Chrome\\/(\\d+)[0-9.]+ (?:Mobile )?Safari\\/[0-9.]+$/,\n // Chrome User Agent from https://developer.chrome.com/multidevice/user-agent\n chrome: /^Mozilla\\/5\\.0 \\((?![^)]*Android)[^)]*(Windows|OS X|Linux)[^)]+\\) AppleWebKit\\/[0-9.]+ \\(KHTML, like Gecko\\) Chrome\\/(\\d+)[0-9.]+ (?:Mobile Safari|Safari)\\/[0-9.]+$/,\n // Safari User Agent from http://www.useragentstring.com/pages/Safari/\n safari: /^Mozilla\\/5\\.0 \\([^)]*(Windows|OS X)[^)]+\\) AppleWebKit\\/[0-9.]+ \\(KHTML, like Gecko\\)(?: Version\\/([0-9]+)[0-9.]+)? Safari\\/[0-9.A-Z]+$/,\n iphone: / *CPU +iPhone +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */,\n ipad: /\\(iPad; *CPU +OS +([0-9]+)_(?:[0-9_])+ +like +Mac +OS +X */,\n iosClient: /^Mozilla\\/5\\.0 \\(iOS\\) (?:ownCloud|Nextcloud)-iOS.*$/,\n androidClient: /^Mozilla\\/5\\.0 \\(Android\\) (?:ownCloud|Nextcloud)-android.*$/,\n iosTalkClient: /^Mozilla\\/5\\.0 \\(iOS\\) Nextcloud-Talk.*$/,\n androidTalkClient: /^Mozilla\\/5\\.0 \\(Android\\) Nextcloud-Talk.*$/,\n // DAVx5/3.3.8-beta2-gplay (2021/01/02; dav4jvm; okhttp/4.9.0) Android/10\n davx5: /DAV(?:droid|x5)\\/([^ ]+)/,\n // Mozilla/5.0 (U; Linux; Maemo; Jolla; Sailfish; like Android 4.3) AppleWebKit/538.1 (KHTML, like Gecko) WebPirate/2.0 like Mobile Safari/538.1 (compatible)\n webPirate: /(Sailfish).*WebPirate\\/(\\d+)/,\n // Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0\n sailfishBrowser: /(Sailfish).*SailfishBrowser\\/(\\d+)/,\n // Neon 1.0.0+1\n neon: /Neon \\d+\\.\\d+\\.\\d+\\+\\d+/,\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"auth-token\",class:[{ 'auth-token--wiping': _vm.wiping }],attrs:{\"data-id\":_vm.token.id}},[_c('td',{staticClass:\"auth-token__name\"},[_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.tokenIcon}}),_vm._v(\" \"),_c('div',{staticClass:\"auth-token__name-wrapper\"},[(_vm.token.canRename && _vm.renaming)?_c('form',{staticClass:\"auth-token__name-form\",on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.rename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"input\",attrs:{\"label\":_vm.t('settings', 'Device name'),\"show-trailing-button\":true,\"trailing-button-label\":_vm.t('settings', 'Cancel renaming')},on:{\"trailing-button-click\":_vm.cancelRename,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.cancelRename.apply(null, arguments)}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Save new name'),\"variant\":\"tertiary\",\"type\":\"submit\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiCheck}})]},proxy:true}],null,false,1018299955)})],1):_c('span',[_vm._v(_vm._s(_vm.tokenLabel))]),_vm._v(\" \"),(_vm.wiping)?_c('span',{staticClass:\"wiping-warning\"},[_vm._v(\"(\"+_vm._s(_vm.t('settings', 'Marked for remote wipe'))+\")\")]):_vm._e()])],1),_vm._v(\" \"),_c('td',[_c('NcDateTime',{staticClass:\"auth-token__last-activity\",attrs:{\"ignore-seconds\":true,\"timestamp\":_vm.tokenLastActivity}})],1),_vm._v(\" \"),_c('td',{staticClass:\"auth-token__actions\"},[(!_vm.token.current)?_c('NcActions',{attrs:{\"title\":_vm.t('settings', 'Device settings'),\"aria-label\":_vm.t('settings', 'Device settings'),\"open\":_vm.actionOpen},on:{\"update:open\":function($event){_vm.actionOpen=$event}}},[(_vm.canChangeScope)?_c('NcActionCheckbox',{attrs:{\"model-value\":_vm.token.scope.filesystem},on:{\"update:modelValue\":_vm.updateFileSystemScope}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Allow filesystem access'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.token.canRename)?_c('NcActionButton',{attrs:{\"icon\":\"icon-rename\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.startRename.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Rename'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.token.canDelete)?[(_vm.token.type !== 2)?[_c('NcActionButton',{attrs:{\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.revoke.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Revoke'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.wipe.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Wipe device'))+\"\\n\\t\\t\\t\\t\\t\")])]:(_vm.token.type === 2)?_c('NcActionButton',{attrs:{\"icon\":\"icon-delete\",\"name\":_vm.t('settings', 'Revoke')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.revoke.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Revoking this token might prevent the wiping of your device if it has not started the wipe yet.'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { userAgentMap } from './userAgentMap.ts';\n/**\n * Detect the client from a user agent string.\n *\n * @param ua Raw user agent string\n * @return Detected client information or null if unknown\n */\nexport function detect(ua) {\n for (const id in userAgentMap) {\n const matches = ua.match(userAgentMap[id]);\n if (matches) {\n return {\n id,\n version: matches[2] ?? matches[1],\n os: matches[2] && matches[1],\n };\n }\n }\n return null;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=style&index=0&id=295c46c3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthToken.vue?vue&type=style&index=0&id=295c46c3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthToken.vue?vue&type=template&id=295c46c3&scoped=true\"\nimport script from \"./AuthToken.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthToken.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthToken.vue?vue&type=style&index=0&id=295c46c3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"295c46c3\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"token-list\",attrs:{\"id\":\"app-tokens-table\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"token-list__header-device\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Device'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('th',{staticClass:\"toke-list__header-activity\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Last activity'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Actions'))+\"\\n\\t\\t\\t\\t\")])])])]),_vm._v(\" \"),_c('tbody',{staticClass:\"token-list__body\"},_vm._l((_vm.sortedTokens),function(token){return _c('AuthToken',{key:token.id,attrs:{\"token\":token}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthTokenList.vue?vue&type=template&id=5fe11895&scoped=true\"\nimport script from \"./AuthTokenList.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthTokenList.vue?vue&type=style&index=0&id=5fe11895&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fe11895\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form',{staticClass:\"row spacing\",attrs:{\"id\":\"generate-app-token-section\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('NcTextField',{staticClass:\"app-name-text-field\",attrs:{\"type\":\"text\",\"maxlength\":120,\"disabled\":_vm.loading,\"label\":_vm.t('settings', 'App name'),\"placeholder\":_vm.t('settings', 'App name')},model:{value:(_vm.deviceName),callback:function ($$v) {_vm.deviceName=$$v},expression:\"deviceName\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"disabled\":_vm.loading || _vm.deviceName.length === 0,\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Create new app password'))+\"\\n\\t\")]),_vm._v(\" \"),_c('AuthTokenSetupDialog',{attrs:{\"token\":_vm.newToken},on:{\"close\":function($event){_vm.newToken = null}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{attrs:{\"open\":_vm.open,\"name\":_vm.t('settings', 'New app password'),\"content-classes\":\"token-dialog\"},on:{\"update:open\":function($event){_vm.open=$event}}},[_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Use the credentials below to configure your app or device. For security reasons this password will only be shown once.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"token-dialog__name\"},[_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Login'),\"model-value\":_vm.loginName,\"readonly\":\"\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"title\":_vm.copyLoginNameLabel,\"aria-label\":_vm.copyLoginNameLabel},on:{\"click\":_vm.copyLoginName},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.copyNameIcon}})]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"token-dialog__password\"},[_c('NcTextField',{ref:\"appPassword\",attrs:{\"label\":_vm.t('settings', 'Password'),\"model-value\":_vm.appPassword,\"readonly\":\"\"}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"tertiary\",\"title\":_vm.copyPasswordLabel,\"aria-label\":_vm.copyPasswordLabel},on:{\"click\":_vm.copyPassword},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.copyPasswordIcon}})]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"token-dialog__qrcode\"},[(!_vm.showQRCode)?_c('NcButton',{on:{\"click\":function($event){_vm.showQRCode = true}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show QR code for mobile apps'))+\"\\n\\t\\t\")]):_c('QR',{attrs:{\"value\":_vm.qrUrl}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthTokenSetupDialog.vue?vue&type=template&id=1a608fc0&scoped=true\"\nimport script from \"./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenSetupDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthTokenSetupDialog.vue?vue&type=style&index=0&id=1a608fc0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a608fc0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AuthTokenSetup.vue?vue&type=template&id=e1d5b2e0&scoped=true\"\nimport script from \"./AuthTokenSetup.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenSetup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AuthTokenSetup.vue?vue&type=style&index=0&id=e1d5b2e0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e1d5b2e0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthTokenSection.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"section\",attrs:{\"id\":\"security\"}},[_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'Devices & sessions', {}, undefined, { sanitize: false })))]),_vm._v(\" \"),_c('p',{staticClass:\"settings-hint hidden-when-empty\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Web, desktop and mobile clients currently logged in to your account.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('AuthTokenList'),_vm._v(\" \"),(_vm.canCreateToken)?_c('AuthTokenSetup'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AuthTokenSection.vue?vue&type=template&id=a5708d5e\"\nimport script from \"./AuthTokenSection.vue?vue&type=script&lang=ts\"\nexport * from \"./AuthTokenSection.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nimport VTooltipPlugin from 'v-tooltip'\nimport Vue from 'vue'\nimport AuthTokenSection from './components/AuthTokenSection.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nconst pinia = createPinia()\n\nVue.use(PiniaVuePlugin)\nVue.use(VTooltipPlugin, { defaultHtml: false })\nVue.prototype.t = t\n\nconst View = Vue.extend(AuthTokenSection)\nnew View({ pinia }).$mount('#security-authtokens')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `.auth-token[data-v-295c46c3]{border-top:2px solid var(--color-border);max-width:200px;white-space:normal;vertical-align:middle;position:relative}.auth-token--wiping[data-v-295c46c3]{background-color:var(--color-background-dark)}.auth-token__name[data-v-295c46c3]{padding-block:10px;display:flex;align-items:center;gap:6px;min-width:355px}.auth-token__name-wrapper[data-v-295c46c3]{display:flex;flex-direction:column}.auth-token__name-form[data-v-295c46c3]{align-items:end;display:flex;gap:4px}.auth-token__actions[data-v-295c46c3]{padding:0 10px}.auth-token__last-activity[data-v-295c46c3]{padding-inline-start:10px}.auth-token .wiping-warning[data-v-295c46c3]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthToken.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,wCAAA,CACA,eAAA,CACA,kBAAA,CACA,qBAAA,CACA,iBAAA,CAEA,qCACC,6CAAA,CAGD,mCACC,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CAGD,2CACC,YAAA,CACA,qBAAA,CAGD,wCACC,eAAA,CACA,YAAA,CACA,OAAA,CAGD,sCACC,cAAA,CAGD,4CACC,yBAAA,CAGD,6CACC,mCAAA\",\"sourcesContent\":[\"\\n.auth-token {\\n\\tborder-top: 2px solid var(--color-border);\\n\\tmax-width: 200px;\\n\\twhite-space: normal;\\n\\tvertical-align: middle;\\n\\tposition: relative;\\n\\n\\t&--wiping {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__name {\\n\\t\\tpadding-block: 10px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: 6px;\\n\\t\\tmin-width: 355px; // ensure no jumping when renaming\\n\\t}\\n\\n\\t&__name-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__name-form {\\n\\t\\talign-items: end;\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 4px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tpadding: 0 10px;\\n\\t}\\n\\n\\t&__last-activity {\\n\\t\\tpadding-inline-start: 10px;\\n\\t}\\n\\n\\t.wiping-warning {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `.token-list[data-v-5fe11895]{width:100%;min-height:50px;padding-top:5px;max-width:fit-content}.token-list th[data-v-5fe11895]{padding-block:10px;padding-inline-start:10px}.token-list .token-list__header-device[data-v-5fe11895]{padding-inline-start:50px}.token-list__header-activity[data-v-5fe11895]{text-align:end}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthTokenList.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,UAAA,CACA,eAAA,CACA,eAAA,CACA,qBAAA,CAEA,gCACC,kBAAA,CACA,yBAAA,CAGD,wDACC,yBAAA,CAED,8CACC,cAAA\",\"sourcesContent\":[\"\\n.token-list {\\n\\twidth: 100%;\\n\\tmin-height: 50px;\\n\\tpadding-top: 5px;\\n\\tmax-width: fit-content;\\n\\n\\tth {\\n\\t\\tpadding-block: 10px;\\n\\t\\tpadding-inline-start: 10px;\\n\\t}\\n\\n\\t#{&}__header-device {\\n\\t\\tpadding-inline-start: 50px; // 44px icon + 6px padding\\n\\t}\\n\\t&__header-activity {\\n\\t\\ttext-align: end;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `.app-name-text-field[data-v-e1d5b2e0]{height:44px !important;padding-inline-start:12px;margin-inline-end:12px;width:200px}.row[data-v-e1d5b2e0]{display:flex;align-items:center}.spacing[data-v-e1d5b2e0]{padding-top:16px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthTokenSetup.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,sBAAA,CACA,yBAAA,CACA,sBAAA,CACA,WAAA,CAGD,sBACC,YAAA,CACA,kBAAA,CAGD,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.app-name-text-field {\\n\\theight: 44px !important;\\n\\tpadding-inline-start: 12px;\\n\\tmargin-inline-end: 12px;\\n\\twidth: 200px;\\n}\\n\\n.row {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.spacing {\\n\\tpadding-top: 16px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.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, `[data-v-1a608fc0] .token-dialog{display:flex;flex-direction:column;gap:12px;padding-inline:22px;padding-block-end:20px}[data-v-1a608fc0] .token-dialog>*{box-sizing:border-box}.token-dialog__name[data-v-1a608fc0],.token-dialog__password[data-v-1a608fc0]{align-items:end;display:flex;gap:10px}.token-dialog__name[data-v-1a608fc0] input,.token-dialog__password[data-v-1a608fc0] input{font-family:monospace}.token-dialog__qrcode[data-v-1a608fc0]{display:flex;justify-content:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AuthTokenSetupDialog.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,YAAA,CACA,qBAAA,CACA,QAAA,CAEA,mBAAA,CACA,sBAAA,CAEA,kCACC,qBAAA,CAKD,8EACC,eAAA,CACA,YAAA,CACA,QAAA,CAEA,0FACC,qBAAA,CAIF,uCACC,YAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n:deep(.token-dialog) {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 12px;\\n\\n\\tpadding-inline: 22px;\\n\\tpadding-block-end: 20px;\\n\\n\\t> * {\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\\n.token-dialog {\\n\\t&__name, &__password {\\n\\t\\talign-items: end;\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 10px;\\n\\n\\t\\t:deep(input) {\\n\\t\\t\\tfont-family: monospace;\\n\\t\\t}\\n\\t}\\n\\n\\t&__qrcode {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"5448\":\"71cfe268d6f1213c4735\",\"6015\":\"ebcb6885c1fc8c461988\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2131;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2131: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(67490)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","e","toPrimitive","call","r","TypeError","String","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_defineProperties","length","key","isBrowser","window","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","console","warn","enabled","update","this","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","removeEventListeners","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","offset","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","requestAnimationFrame","bind","jquery","Utils","PopperUtils","initCompat","init","ua","msie","substring","rv","edge","getInternetExplorerVersion","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","emitOnMount","type","Boolean","default","ignoreWidth","ignoreHeight","mounted","$nextTick","_w","$el","_h","emitSize","object","createElement","_resizeObject","onload","addResizeHandlers","appendChild","beforeDestroy","removeResizeHandlers","methods","compareAndNotify","$emit","contentDocument","__vue_render__","$createElement","_self","_c","staticClass","attrs","tabindex","_withStripped","__vue_component__","install","Vue","component","GlobalVue","use","SVGAnimatedString","convertToArray","addClasses","classes","classList","newClasses","className","baseVal","newClass","SVGElement","join","removeClasses","splice","supportsPassive","opts","get","ownKeys$2","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread$2","getOwnPropertyDescriptors","DEFAULT_OPTIONS","container","delay","title","trigger","openTooltips","Tooltip","_reference","_options","_classCallCheck","evt","relatedreference","toElement","relatedTarget","_tooltipNode","evt2","relatedreference2","_scheduleHide","show","_isOpen","_init","_show","_hide","_dispose","_classes","content","_setContent","classesUpdated","directive","defaultClass","isEqual","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","events","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","getAttribute","_this2","tooltipGenerator","innerHTML","tooltipNode","childNodes","id","ariaId","random","substr","autoHide","_this3","asyncContent","_applyContent","_this4","reject","allowHtml","rootNode","titleNode","innerSelector","firstChild","loadingClass","loadingContent","asyncResult","catch","innerText","clearTimeout","_disposeTimer","updateClasses","_ensureShown","_this5","display","_create","_findContainer","_append","popperOptions","arrowSelector","_this6","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this7","_events","func","_this8","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this9","computedDelay","_scheduleTimer","_this10","_setTooltipNodeEvent","ownKeys$1","_objectSpread$1","_onDocumentTouch","capture","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","pos","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","oldValue","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","unbind","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","ownKeys","_objectSpread","getDefault","isIOS","MSStream","openPopovers","Element","components","ResizeObserver","open","disabled","Number","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","computed","cssClass","popoverId","watch","val","oldVal","popoverNode","$refs","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","handler","deep","created","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","skipDelay","_ref2$force","force","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","hidden","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","cb","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","_vm","class","ref","staticStyle","_t","_v","visibility","on","keyup","$event","_k","keyCode","notify","_e","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","styleInject","plugin","installed","finalOptions","merge","global","getLoggerBuilder","setApp","detectUser","build","BASE_URL","generateUrl","TokenType","addPasswordConfirmationInterceptors","axios","useAuthTokenStore","defineStore","tokens","loadState","actions","updateToken","token","put","addToken","logger","debug","post","oneTime","confirmPassword","PwdConfirmationMode","Strict","deviceToken","deleteToken","delete","error","showError","wipeToken","OC","dialogs","confirm","WIPING_TOKEN","canRename","renameToken","newName","oldName","setTokenScope","scope","userAgentMap","ie","firefox","androidChrome","chrome","safari","iphone","ipad","iosClient","androidClient","iosTalkClient","androidTalkClient","davx5","webPirate","sailfishBrowser","neon","nameMap","productName","oc_defaults","syncClient","defineComponent","NcActions","NcActionButton","NcActionCheckbox","NcButton","NcDateTime","NcIconSvgWrapper","NcTextField","required","setup","authTokenStore","actionOpen","renaming","mdiCheck","canChangeScope","PERMANENT_TOKEN","client","matches","os","detect","tokenLastActivity","lastActivity","tokenIcon","mdiKeyOutline","mdiMicrosoftEdge","mdiFirefox","mdiGoogleChrome","mdiAppleSafari","mdiAndroid","mdiAppleIos","mdiTablet","mdiCellphone","mdiMonitor","mdiWeb","tokenLabel","current","system","wiping","updateFileSystemScope","startRename","input","select","cancelRename","revoke","rename","wipe","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","preventDefault","stopPropagation","model","$$v","expression","scopedSlots","_u","proxy","_s","filesystem","canDelete","AuthToken","sortedTokens","ONETIME_TOKEN","t1","t2","_l","NcDialog","QR","isNameCopied","isPasswordCopied","showQRCode","set","copyPasswordIcon","mdiContentCopy","copyNameIcon","appPassword","loginName","qrUrl","server","location","protocol","getRootUrl","copyPasswordLabel","copyLoginNameLabel","copyPassword","clipboard","writeText","copyLoginName","AuthTokenSetupDialog","deviceName","loading","newToken","reset","submit","AuthTokenList","AuthTokenSetup","canCreateToken","sanitize","__webpack_nonce__","getCSPNonce","pinia","createPinia","PiniaVuePlugin","VTooltipPlugin","extend","AuthTokenSection","$mount","___CSS_LOADER_EXPORT___","module","baseAssignValue","eq","exports","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject","keysIn","safeGet","baseMerge","srcIndex","customizer","stack","srcValue","newValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray","isArrayLikeObject","isBuffer","isPlainObject","isTypedArray","toPlainObject","mergeFunc","objValue","stacked","isCommon","isArr","isBuff","isTyped","baseRest","isIterateeCall","assigner","sources","guard","isArrayLike","isObjectLike","baseIsEqual","other","createAssigner","copyObject","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","d","definition","f","chunkId","promises","u","l","url","done","needAttach","scripts","s","charset","nc","src","onScriptComplete","prev","onerror","timeout","doneFns","toStringTag","nmd","paths","scriptUrl","globalThis","importScripts","currentScript","tagName","Error","p","baseURI","self","href","installedChunks","installedChunkData","promise","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file