From 50a5750fc8bb74a78b1db5d587c2f5400a1fb58e Mon Sep 17 00:00:00 2001
From: GMrrc <143954951+GMrrc@users.noreply.github.com>
Date: Thu, 14 Nov 2024 17:23:28 +0100
Subject: [PATCH] add js folder
---
.gitignore | 2 +-
js/main.js | 32289 +++++++++++++++++++++++++++++++++++++++++++++++
js/main.js.map | 1 +
3 files changed, 32291 insertions(+), 1 deletion(-)
create mode 100644 js/main.js
create mode 100644 js/main.js.map
diff --git a/.gitignore b/.gitignore
index e8388fe..daea873 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,4 @@
/tests/.phpunit.cache
/node_modules/
-/js/
+
diff --git a/js/main.js b/js/main.js
new file mode 100644
index 0000000..64b21a5
--- /dev/null
+++ b/js/main.js
@@ -0,0 +1,32289 @@
+/******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./node_modules/@nextcloud/browser-storage/dist/index.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@nextcloud/browser-storage/dist/index.js ***!
+ \***************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.clearAll = clearAll;
+exports.clearNonPersistent = clearNonPersistent;
+exports.getBuilder = getBuilder;
+var _storagebuilder = _interopRequireDefault(__webpack_require__(/*! ./storagebuilder */ "./node_modules/@nextcloud/browser-storage/dist/storagebuilder.js"));
+var _scopedstorage = _interopRequireDefault(__webpack_require__(/*! ./scopedstorage */ "./node_modules/@nextcloud/browser-storage/dist/scopedstorage.js"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+/**
+ * Get the storage builder for an app
+ * @param appId App ID to scope storage
+ */
+function getBuilder(appId) {
+ return new _storagebuilder.default(appId);
+}
+
+/**
+ * Clear values from storage
+ * @param storage The storage to clear
+ * @param pred Callback to check if value should be cleared
+ */
+function clearStorage(storage, pred) {
+ Object.keys(storage).filter(k => pred ? pred(k) : true).map(storage.removeItem.bind(storage));
+}
+
+/**
+ * Clear all values from all storages
+ */
+function clearAll() {
+ const storages = [window.sessionStorage, window.localStorage];
+ storages.map(s => clearStorage(s));
+}
+
+/**
+ * Clear ony non persistent values
+ */
+function clearNonPersistent() {
+ const storages = [window.sessionStorage, window.localStorage];
+ storages.map(s => clearStorage(s, k => !k.startsWith(_scopedstorage.default.GLOBAL_SCOPE_PERSISTENT)));
+}
+//# sourceMappingURL=index.js.map
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/browser-storage/dist/scopedstorage.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@nextcloud/browser-storage/dist/scopedstorage.js ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+class ScopedStorage {
+ constructor(scope, wrapped, persistent) {
+ _defineProperty(this, "scope", void 0);
+ _defineProperty(this, "wrapped", void 0);
+ this.scope = "".concat(persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE, "_").concat(btoa(scope), "_");
+ this.wrapped = wrapped;
+ }
+ scopeKey(key) {
+ return "".concat(this.scope).concat(key);
+ }
+ setItem(key, value) {
+ this.wrapped.setItem(this.scopeKey(key), value);
+ }
+ getItem(key) {
+ return this.wrapped.getItem(this.scopeKey(key));
+ }
+ removeItem(key) {
+ this.wrapped.removeItem(this.scopeKey(key));
+ }
+ clear() {
+ Object.keys(this.wrapped).filter(key => key.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped));
+ }
+}
+exports["default"] = ScopedStorage;
+_defineProperty(ScopedStorage, "GLOBAL_SCOPE_VOLATILE", 'nextcloud_vol');
+_defineProperty(ScopedStorage, "GLOBAL_SCOPE_PERSISTENT", 'nextcloud_per');
+//# sourceMappingURL=scopedstorage.js.map
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/browser-storage/dist/storagebuilder.js":
+/*!************************************************************************!*\
+ !*** ./node_modules/@nextcloud/browser-storage/dist/storagebuilder.js ***!
+ \************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+var _scopedstorage = _interopRequireDefault(__webpack_require__(/*! ./scopedstorage */ "./node_modules/@nextcloud/browser-storage/dist/scopedstorage.js"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+class StorageBuilder {
+ constructor(appId) {
+ _defineProperty(this, "appId", void 0);
+ _defineProperty(this, "persisted", false);
+ _defineProperty(this, "clearedOnLogout", false);
+ this.appId = appId;
+ }
+ persist() {
+ let persist = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+ this.persisted = persist;
+ return this;
+ }
+ clearOnLogout() {
+ let clear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+ this.clearedOnLogout = clear;
+ return this;
+ }
+ build() {
+ return new _scopedstorage.default(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);
+ }
+}
+exports["default"] = StorageBuilder;
+//# sourceMappingURL=storagebuilder.js.map
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/classes/semver.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/classes/semver.js ***!
+ \*********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+const debug = __webpack_require__(/*! ../internal/debug */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/debug.js")
+const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(/*! ../internal/constants */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/constants.js")
+const { safeRe: re, t } = __webpack_require__(/*! ../internal/re */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/re.js")
+
+const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/parse-options.js")
+const { compareIdentifiers } = __webpack_require__(/*! ../internal/identifiers */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/identifiers.js")
+class SemVer {
+ constructor (version, options) {
+ options = parseOptions(options)
+
+ if (version instanceof SemVer) {
+ if (version.loose === !!options.loose &&
+ version.includePrerelease === !!options.includePrerelease) {
+ return version
+ } else {
+ version = version.version
+ }
+ } else if (typeof version !== 'string') {
+ throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`)
+ }
+
+ if (version.length > MAX_LENGTH) {
+ throw new TypeError(
+ `version is longer than ${MAX_LENGTH} characters`
+ )
+ }
+
+ debug('SemVer', version, options)
+ this.options = options
+ this.loose = !!options.loose
+ // this isn't actually relevant for versions, but keep it so that we
+ // don't run into trouble passing this.options around.
+ this.includePrerelease = !!options.includePrerelease
+
+ const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
+
+ if (!m) {
+ throw new TypeError(`Invalid Version: ${version}`)
+ }
+
+ this.raw = version
+
+ // these are actually numbers
+ this.major = +m[1]
+ this.minor = +m[2]
+ this.patch = +m[3]
+
+ if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
+ throw new TypeError('Invalid major version')
+ }
+
+ if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
+ throw new TypeError('Invalid minor version')
+ }
+
+ if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
+ throw new TypeError('Invalid patch version')
+ }
+
+ // numberify any prerelease numeric ids
+ if (!m[4]) {
+ this.prerelease = []
+ } else {
+ this.prerelease = m[4].split('.').map((id) => {
+ if (/^[0-9]+$/.test(id)) {
+ const num = +id
+ if (num >= 0 && num < MAX_SAFE_INTEGER) {
+ return num
+ }
+ }
+ return id
+ })
+ }
+
+ this.build = m[5] ? m[5].split('.') : []
+ this.format()
+ }
+
+ format () {
+ this.version = `${this.major}.${this.minor}.${this.patch}`
+ if (this.prerelease.length) {
+ this.version += `-${this.prerelease.join('.')}`
+ }
+ return this.version
+ }
+
+ toString () {
+ return this.version
+ }
+
+ compare (other) {
+ debug('SemVer.compare', this.version, this.options, other)
+ if (!(other instanceof SemVer)) {
+ if (typeof other === 'string' && other === this.version) {
+ return 0
+ }
+ other = new SemVer(other, this.options)
+ }
+
+ if (other.version === this.version) {
+ return 0
+ }
+
+ return this.compareMain(other) || this.comparePre(other)
+ }
+
+ compareMain (other) {
+ if (!(other instanceof SemVer)) {
+ other = new SemVer(other, this.options)
+ }
+
+ return (
+ compareIdentifiers(this.major, other.major) ||
+ compareIdentifiers(this.minor, other.minor) ||
+ compareIdentifiers(this.patch, other.patch)
+ )
+ }
+
+ comparePre (other) {
+ if (!(other instanceof SemVer)) {
+ other = new SemVer(other, this.options)
+ }
+
+ // NOT having a prerelease is > having one
+ if (this.prerelease.length && !other.prerelease.length) {
+ return -1
+ } else if (!this.prerelease.length && other.prerelease.length) {
+ return 1
+ } else if (!this.prerelease.length && !other.prerelease.length) {
+ return 0
+ }
+
+ let i = 0
+ do {
+ const a = this.prerelease[i]
+ const b = other.prerelease[i]
+ debug('prerelease compare', i, a, b)
+ if (a === undefined && b === undefined) {
+ return 0
+ } else if (b === undefined) {
+ return 1
+ } else if (a === undefined) {
+ return -1
+ } else if (a === b) {
+ continue
+ } else {
+ return compareIdentifiers(a, b)
+ }
+ } while (++i)
+ }
+
+ compareBuild (other) {
+ if (!(other instanceof SemVer)) {
+ other = new SemVer(other, this.options)
+ }
+
+ let i = 0
+ do {
+ const a = this.build[i]
+ const b = other.build[i]
+ debug('build compare', i, a, b)
+ if (a === undefined && b === undefined) {
+ return 0
+ } else if (b === undefined) {
+ return 1
+ } else if (a === undefined) {
+ return -1
+ } else if (a === b) {
+ continue
+ } else {
+ return compareIdentifiers(a, b)
+ }
+ } while (++i)
+ }
+
+ // preminor will bump the version up to the next minor release, and immediately
+ // down to pre-release. premajor and prepatch work the same way.
+ inc (release, identifier, identifierBase) {
+ switch (release) {
+ case 'premajor':
+ this.prerelease.length = 0
+ this.patch = 0
+ this.minor = 0
+ this.major++
+ this.inc('pre', identifier, identifierBase)
+ break
+ case 'preminor':
+ this.prerelease.length = 0
+ this.patch = 0
+ this.minor++
+ this.inc('pre', identifier, identifierBase)
+ break
+ case 'prepatch':
+ // If this is already a prerelease, it will bump to the next version
+ // drop any prereleases that might already exist, since they are not
+ // relevant at this point.
+ this.prerelease.length = 0
+ this.inc('patch', identifier, identifierBase)
+ this.inc('pre', identifier, identifierBase)
+ break
+ // If the input is a non-prerelease version, this acts the same as
+ // prepatch.
+ case 'prerelease':
+ if (this.prerelease.length === 0) {
+ this.inc('patch', identifier, identifierBase)
+ }
+ this.inc('pre', identifier, identifierBase)
+ break
+
+ case 'major':
+ // If this is a pre-major version, bump up to the same major version.
+ // Otherwise increment major.
+ // 1.0.0-5 bumps to 1.0.0
+ // 1.1.0 bumps to 2.0.0
+ if (
+ this.minor !== 0 ||
+ this.patch !== 0 ||
+ this.prerelease.length === 0
+ ) {
+ this.major++
+ }
+ this.minor = 0
+ this.patch = 0
+ this.prerelease = []
+ break
+ case 'minor':
+ // If this is a pre-minor version, bump up to the same minor version.
+ // Otherwise increment minor.
+ // 1.2.0-5 bumps to 1.2.0
+ // 1.2.1 bumps to 1.3.0
+ if (this.patch !== 0 || this.prerelease.length === 0) {
+ this.minor++
+ }
+ this.patch = 0
+ this.prerelease = []
+ break
+ case 'patch':
+ // If this is not a pre-release version, it will increment the patch.
+ // If it is a pre-release it will bump up to the same patch version.
+ // 1.2.0-5 patches to 1.2.0
+ // 1.2.0 patches to 1.2.1
+ if (this.prerelease.length === 0) {
+ this.patch++
+ }
+ this.prerelease = []
+ break
+ // This probably shouldn't be used publicly.
+ // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
+ case 'pre': {
+ const base = Number(identifierBase) ? 1 : 0
+
+ if (!identifier && identifierBase === false) {
+ throw new Error('invalid increment argument: identifier is empty')
+ }
+
+ if (this.prerelease.length === 0) {
+ this.prerelease = [base]
+ } else {
+ let i = this.prerelease.length
+ while (--i >= 0) {
+ if (typeof this.prerelease[i] === 'number') {
+ this.prerelease[i]++
+ i = -2
+ }
+ }
+ if (i === -1) {
+ // didn't increment anything
+ if (identifier === this.prerelease.join('.') && identifierBase === false) {
+ throw new Error('invalid increment argument: identifier already exists')
+ }
+ this.prerelease.push(base)
+ }
+ }
+ if (identifier) {
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
+ // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
+ let prerelease = [identifier, base]
+ if (identifierBase === false) {
+ prerelease = [identifier]
+ }
+ if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
+ if (isNaN(this.prerelease[1])) {
+ this.prerelease = prerelease
+ }
+ } else {
+ this.prerelease = prerelease
+ }
+ }
+ break
+ }
+ default:
+ throw new Error(`invalid increment argument: ${release}`)
+ }
+ this.raw = this.format()
+ if (this.build.length) {
+ this.raw += `+${this.build.join('.')}`
+ }
+ return this
+ }
+}
+
+module.exports = SemVer
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/functions/major.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/functions/major.js ***!
+ \**********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+const SemVer = __webpack_require__(/*! ../classes/semver */ "./node_modules/@nextcloud/event-bus/node_modules/semver/classes/semver.js")
+const major = (a, loose) => new SemVer(a, loose).major
+module.exports = major
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/functions/parse.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/functions/parse.js ***!
+ \**********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+const SemVer = __webpack_require__(/*! ../classes/semver */ "./node_modules/@nextcloud/event-bus/node_modules/semver/classes/semver.js")
+const parse = (version, options, throwErrors = false) => {
+ if (version instanceof SemVer) {
+ return version
+ }
+ try {
+ return new SemVer(version, options)
+ } catch (er) {
+ if (!throwErrors) {
+ return null
+ }
+ throw er
+ }
+}
+
+module.exports = parse
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/functions/valid.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/functions/valid.js ***!
+ \**********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+const parse = __webpack_require__(/*! ./parse */ "./node_modules/@nextcloud/event-bus/node_modules/semver/functions/parse.js")
+const valid = (version, options) => {
+ const v = parse(version, options)
+ return v ? v.version : null
+}
+module.exports = valid
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/constants.js":
+/*!*************************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/internal/constants.js ***!
+ \*************************************************************************************/
+/***/ ((module) => {
+
+// Note: this is the semver.org version of the spec that it implements
+// Not necessarily the package version of this code.
+const SEMVER_SPEC_VERSION = '2.0.0'
+
+const MAX_LENGTH = 256
+const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
+/* istanbul ignore next */ 9007199254740991
+
+// Max safe segment length for coercion.
+const MAX_SAFE_COMPONENT_LENGTH = 16
+
+// Max safe length for a build identifier. The max length minus 6 characters for
+// the shortest version with a build 0.0.0+BUILD.
+const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
+
+const RELEASE_TYPES = [
+ 'major',
+ 'premajor',
+ 'minor',
+ 'preminor',
+ 'patch',
+ 'prepatch',
+ 'prerelease',
+]
+
+module.exports = {
+ MAX_LENGTH,
+ MAX_SAFE_COMPONENT_LENGTH,
+ MAX_SAFE_BUILD_LENGTH,
+ MAX_SAFE_INTEGER,
+ RELEASE_TYPES,
+ SEMVER_SPEC_VERSION,
+ FLAG_INCLUDE_PRERELEASE: 0b001,
+ FLAG_LOOSE: 0b010,
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/debug.js":
+/*!*********************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/internal/debug.js ***!
+ \*********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+/* provided dependency */ var process = __webpack_require__(/*! ./node_modules/process/browser.js */ "./node_modules/process/browser.js");
+const debug = (
+ typeof process === 'object' &&
+ process.env &&
+ process.env.NODE_DEBUG &&
+ /\bsemver\b/i.test(process.env.NODE_DEBUG)
+) ? (...args) => console.error('SEMVER', ...args)
+ : () => {}
+
+module.exports = debug
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/identifiers.js":
+/*!***************************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/internal/identifiers.js ***!
+ \***************************************************************************************/
+/***/ ((module) => {
+
+const numeric = /^[0-9]+$/
+const compareIdentifiers = (a, b) => {
+ const anum = numeric.test(a)
+ const bnum = numeric.test(b)
+
+ if (anum && bnum) {
+ a = +a
+ b = +b
+ }
+
+ return a === b ? 0
+ : (anum && !bnum) ? -1
+ : (bnum && !anum) ? 1
+ : a < b ? -1
+ : 1
+}
+
+const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
+
+module.exports = {
+ compareIdentifiers,
+ rcompareIdentifiers,
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/parse-options.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/internal/parse-options.js ***!
+ \*****************************************************************************************/
+/***/ ((module) => {
+
+// parse out just the options we care about
+const looseOption = Object.freeze({ loose: true })
+const emptyOpts = Object.freeze({ })
+const parseOptions = options => {
+ if (!options) {
+ return emptyOpts
+ }
+
+ if (typeof options !== 'object') {
+ return looseOption
+ }
+
+ return options
+}
+module.exports = parseOptions
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/re.js":
+/*!******************************************************************************!*\
+ !*** ./node_modules/@nextcloud/event-bus/node_modules/semver/internal/re.js ***!
+ \******************************************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+const {
+ MAX_SAFE_COMPONENT_LENGTH,
+ MAX_SAFE_BUILD_LENGTH,
+ MAX_LENGTH,
+} = __webpack_require__(/*! ./constants */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/constants.js")
+const debug = __webpack_require__(/*! ./debug */ "./node_modules/@nextcloud/event-bus/node_modules/semver/internal/debug.js")
+exports = module.exports = {}
+
+// The actual regexps go on exports.re
+const re = exports.re = []
+const safeRe = exports.safeRe = []
+const src = exports.src = []
+const t = exports.t = {}
+let R = 0
+
+const LETTERDASHNUMBER = '[a-zA-Z0-9-]'
+
+// Replace some greedy regex tokens to prevent regex dos issues. These regex are
+// used internally via the safeRe object since all inputs in this library get
+// normalized first to trim and collapse all extra whitespace. The original
+// regexes are exported for userland consumption and lower level usage. A
+// future breaking change could export the safer regex only with a note that
+// all input should have extra whitespace removed.
+const safeRegexReplacements = [
+ ['\\s', 1],
+ ['\\d', MAX_LENGTH],
+ [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
+]
+
+const makeSafeRegex = (value) => {
+ for (const [token, max] of safeRegexReplacements) {
+ value = value
+ .split(`${token}*`).join(`${token}{0,${max}}`)
+ .split(`${token}+`).join(`${token}{1,${max}}`)
+ }
+ return value
+}
+
+const createToken = (name, value, isGlobal) => {
+ const safe = makeSafeRegex(value)
+ const index = R++
+ debug(name, index, value)
+ t[name] = index
+ src[index] = value
+ re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
+ safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)
+}
+
+// The following Regular Expressions can be used for tokenizing,
+// validating, and parsing SemVer version strings.
+
+// ## Numeric Identifier
+// A single `0`, or a non-zero digit followed by zero or more digits.
+
+createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
+createToken('NUMERICIDENTIFIERLOOSE', '\\d+')
+
+// ## Non-numeric Identifier
+// Zero or more digits, followed by a letter or hyphen, and then zero or
+// more letters, digits, or hyphens.
+
+createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)
+
+// ## Main Version
+// Three dot-separated numeric identifiers.
+
+createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
+ `(${src[t.NUMERICIDENTIFIER]})\\.` +
+ `(${src[t.NUMERICIDENTIFIER]})`)
+
+createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})`)
+
+// ## Pre-release Version Identifier
+// A numeric identifier, or a non-numeric identifier.
+
+createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
+}|${src[t.NONNUMERICIDENTIFIER]})`)
+
+createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
+}|${src[t.NONNUMERICIDENTIFIER]})`)
+
+// ## Pre-release Version
+// Hyphen, followed by one or more dot-separated pre-release version
+// identifiers.
+
+createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
+}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)
+
+createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
+}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)
+
+// ## Build Metadata Identifier
+// Any combination of digits, letters, or hyphens.
+
+createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)
+
+// ## Build Metadata
+// Plus sign, followed by one or more period-separated build metadata
+// identifiers.
+
+createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
+}(?:\\.${src[t.BUILDIDENTIFIER]})*))`)
+
+// ## Full Version String
+// A main version, followed optionally by a pre-release version and
+// build metadata.
+
+// Note that the only major, minor, patch, and pre-release sections of
+// the version string are capturing groups. The build metadata is not a
+// capturing group, because it should not ever be used in version
+// comparison.
+
+createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
+}${src[t.PRERELEASE]}?${
+ src[t.BUILD]}?`)
+
+createToken('FULL', `^${src[t.FULLPLAIN]}$`)
+
+// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
+// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
+// common in the npm registry.
+createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
+}${src[t.PRERELEASELOOSE]}?${
+ src[t.BUILD]}?`)
+
+createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
+
+createToken('GTLT', '((?:<|>)?=?)')
+
+// Something like "2.*" or "1.2.x".
+// Note that "x.x" is a valid xRange identifer, meaning "any version"
+// Only the first item is strictly required.
+createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
+createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
+
+createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:${src[t.PRERELEASE]})?${
+ src[t.BUILD]}?` +
+ `)?)?`)
+
+createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:${src[t.PRERELEASELOOSE]})?${
+ src[t.BUILD]}?` +
+ `)?)?`)
+
+createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
+createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)
+
+// Coercion.
+// Extract anything that could conceivably be a part of a valid semver
+createToken('COERCEPLAIN', `${'(^|[^\\d])' +
+ '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)
+createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`)
+createToken('COERCEFULL', src[t.COERCEPLAIN] +
+ `(?:${src[t.PRERELEASE]})?` +
+ `(?:${src[t.BUILD]})?` +
+ `(?:$|[^\\d])`)
+createToken('COERCERTL', src[t.COERCE], true)
+createToken('COERCERTLFULL', src[t.COERCEFULL], true)
+
+// Tilde ranges.
+// Meaning is "reasonably at or greater than"
+createToken('LONETILDE', '(?:~>?)')
+
+createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
+exports.tildeTrimReplace = '$1~'
+
+createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
+createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)
+
+// Caret ranges.
+// Meaning is "at least and backwards compatible with"
+createToken('LONECARET', '(?:\\^)')
+
+createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
+exports.caretTrimReplace = '$1^'
+
+createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
+createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)
+
+// A simple gt/lt/eq thing, or just "" to indicate "any version"
+createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
+createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)
+
+// An expression to strip any whitespace between the gtlt and the thing
+// it modifies, so that `> 1.2.3` ==> `>1.2.3`
+createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
+}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
+exports.comparatorTrimReplace = '$1$2$3'
+
+// Something like `1.2.3 - 1.2.4`
+// Note that these all use the loose form, because they'll be
+// checked against either the strict or loose comparator form
+// later.
+createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
+ `\\s+-\\s+` +
+ `(${src[t.XRANGEPLAIN]})` +
+ `\\s*$`)
+
+createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
+ `\\s+-\\s+` +
+ `(${src[t.XRANGEPLAINLOOSE]})` +
+ `\\s*$`)
+
+// Star ranges basically just allow anything at all.
+createToken('STAR', '(<|>)?=?\\s*\\*')
+// >=0.0.0 is like a star
+createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$')
+createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$')
+
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js":
+/*!*************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js ***!
+ \*************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppContent.mjs");
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'App',
+ components: {
+ NcAppContent: _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_0__["default"]
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true":
+/*!************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true ***!
+ \************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ render: () => (/* binding */ render),
+/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)
+/* harmony export */ });
+var render = function render() {
+ var _vm = this,
+ _c = _vm._self._c;
+ return _c("NcAppContent", [_c("div", {
+ attrs: {
+ id: "webtransfer"
+ }
+ }, [_c("h1", [_vm._v("Hello world!")])])]);
+};
+var staticRenderFns = [];
+render._withStripped = true;
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/NcAppContent-CpXVlHUj.css":
+/*!*****************************************************************************************************************!*\
+ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/NcAppContent-CpXVlHUj.css ***!
+ \*****************************************************************************************************************/
+/***/ ((module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js");
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
+// Imports
+
+
+var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
+// Module
+___CSS_LOADER_EXPORT___.push([module.id, `/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/*
+* Ensure proper alignment of the vue material icons
+*/
+.material-design-icon[data-v-089eb524] {
+ display: flex;
+ align-self: center;
+ justify-self: center;
+ align-items: center;
+ justify-content: center;
+}
+.app-details-toggle[data-v-089eb524] {
+ position: sticky;
+ width: var(--default-clickable-area);
+ height: var(--default-clickable-area);
+ padding: calc((var(--default-clickable-area) - 16px) / 2);
+ cursor: pointer;
+ opacity: 0.6;
+ transform: rotate(180deg);
+ background-color: var(--color-main-background);
+ z-index: 2000;
+ top: var(--app-navigation-padding);
+ inset-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);
+}
+.app-details-toggle--mobile[data-v-089eb524] {
+ inset-inline-start: var(--app-navigation-padding);
+}
+.app-details-toggle[data-v-089eb524]:active, .app-details-toggle[data-v-089eb524]:hover, .app-details-toggle[data-v-089eb524]:focus {
+ opacity: 1;
+}/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/*
+* Ensure proper alignment of the vue material icons
+*/
+.material-design-icon[data-v-de6986e3] {
+ display: flex;
+ align-self: center;
+ justify-self: center;
+ align-items: center;
+ justify-content: center;
+}
+.app-content[data-v-de6986e3] {
+ position: initial;
+ z-index: 1000;
+ flex-basis: 100vw;
+ height: 100%;
+ margin: 0 !important;
+ background-color: var(--color-main-background);
+ min-width: 0;
+}
+.app-content[data-v-de6986e3]:not(.app-content--has-list) {
+ overflow: auto;
+}
+.app-content-wrapper[data-v-de6986e3] {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list {
+ display: flex;
+}
+.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-details {
+ display: none;
+}
+.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-list {
+ display: none;
+}
+.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-details {
+ display: block;
+}
+[data-v-de6986e3] .splitpanes.default-theme .app-content-list {
+ max-width: none;
+ /* Thin scrollbar is hard to catch on resizable columns */
+ scrollbar-width: auto;
+}
+[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane {
+ background-color: transparent;
+ transition: none;
+}
+[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list {
+ min-width: 300px;
+ position: sticky;
+}
+@media only screen and (width < 1024px) {
+[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list {
+ display: none;
+}
+}
+[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details {
+ overflow-y: auto;
+}
+@media only screen and (width < 1024px) {
+[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details {
+ min-width: 100%;
+}
+}
+[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter {
+ background-color: var(--color-main-background);
+ border-left: 1px solid var(--color-border);
+}
+[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter::before,[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter::after {
+ background-color: var(--color-border);
+}
+.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list {
+ max-width: none;
+}`, ""]);
+// Exports
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/NcButton-BHDLon1_.css":
+/*!*************************************************************************************************************!*\
+ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/NcButton-BHDLon1_.css ***!
+ \*************************************************************************************************************/
+/***/ ((module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js");
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
+// Imports
+
+
+var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
+// Module
+___CSS_LOADER_EXPORT___.push([module.id, `/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/*
+* Ensure proper alignment of the vue material icons
+*/
+.material-design-icon[data-v-c3d9e0ce] {
+ display: flex;
+ align-self: center;
+ justify-self: center;
+ align-items: center;
+ justify-content: center;
+}
+.button-vue[data-v-c3d9e0ce] {
+ --button-size: var(--default-clickable-area);
+ --button-radius: var(--border-radius-element, calc(var(--button-size) / 2));
+ --button-padding: clamp(var(--default-grid-baseline), var(--button-radius), calc(var(--default-grid-baseline) * 4));
+ position: relative;
+ width: fit-content;
+ overflow: hidden;
+ border: 0;
+ padding: 0;
+ font-size: var(--default-font-size);
+ font-weight: bold;
+ min-height: var(--button-size);
+ min-width: var(--button-size);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ border-radius: var(--button-radius);
+ transition-property: color, border-color, background-color;
+ transition-duration: 0.1s;
+ transition-timing-function: linear;
+ color: var(--color-primary-element-light-text);
+ background-color: var(--color-primary-element-light);
+}
+.button-vue--size-small[data-v-c3d9e0ce] {
+ --button-size: var(--clickable-area-small, 24px);
+ --button-radius: var(--border-radius);
+}
+.button-vue--size-large[data-v-c3d9e0ce] {
+ --button-size: var(--clickable-area-large, 48px);
+}
+.button-vue *[data-v-c3d9e0ce],
+.button-vue span[data-v-c3d9e0ce] {
+ cursor: pointer;
+}
+.button-vue[data-v-c3d9e0ce]:focus {
+ outline: none;
+}
+.button-vue[data-v-c3d9e0ce]:disabled {
+ cursor: default;
+ opacity: 0.5;
+ filter: saturate(0.7);
+}
+.button-vue:disabled *[data-v-c3d9e0ce] {
+ cursor: default;
+}
+.button-vue[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: var(--color-primary-element-light-hover);
+}
+.button-vue[data-v-c3d9e0ce]:active {
+ background-color: var(--color-primary-element-light);
+}
+.button-vue__wrapper[data-v-c3d9e0ce] {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+}
+.button-vue--end .button-vue__wrapper[data-v-c3d9e0ce] {
+ justify-content: end;
+}
+.button-vue--start .button-vue__wrapper[data-v-c3d9e0ce] {
+ justify-content: start;
+}
+.button-vue--reverse .button-vue__wrapper[data-v-c3d9e0ce] {
+ flex-direction: row-reverse;
+}
+.button-vue--reverse.button-vue--icon-and-text[data-v-c3d9e0ce] {
+ padding-inline: var(--button-padding) var(--default-grid-baseline);
+}
+.button-vue__icon[data-v-c3d9e0ce] {
+ height: var(--button-size);
+ width: var(--button-size);
+ min-height: var(--button-size);
+ min-width: var(--button-size);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] > * {
+ max-height: 16px;
+ max-width: 16px;
+}
+.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] svg {
+ height: 16px;
+ width: 16px;
+}
+.button-vue__text[data-v-c3d9e0ce] {
+ font-weight: bold;
+ margin-bottom: 1px;
+ padding: 2px 0;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+.button-vue--icon-only[data-v-c3d9e0ce] {
+ line-height: 1;
+ width: var(--button-size) !important;
+}
+.button-vue--text-only[data-v-c3d9e0ce] {
+ padding: 0 var(--button-padding);
+}
+.button-vue--text-only .button-vue__text[data-v-c3d9e0ce] {
+ margin-left: 4px;
+ margin-right: 4px;
+}
+.button-vue--icon-and-text[data-v-c3d9e0ce] {
+ --button-padding: min(calc(var(--default-grid-baseline) + var(--button-radius)), calc(var(--default-grid-baseline) * 4));
+ padding-block: 0;
+ padding-inline: var(--default-grid-baseline) var(--button-padding);
+}
+.button-vue--wide[data-v-c3d9e0ce] {
+ width: 100%;
+}
+.button-vue[data-v-c3d9e0ce]:focus-visible {
+ outline: 2px solid var(--color-main-text) !important;
+ box-shadow: 0 0 0 4px var(--color-main-background) !important;
+}
+.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {
+ outline: 2px solid var(--color-primary-element-text);
+ border-radius: var(--border-radius-element, var(--border-radius));
+ background-color: transparent;
+}
+.button-vue--vue-primary[data-v-c3d9e0ce] {
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-element-text);
+}
+.button-vue--vue-primary[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: var(--color-primary-element-hover);
+}
+.button-vue--vue-primary[data-v-c3d9e0ce]:active {
+ background-color: var(--color-primary-element);
+}
+.button-vue--vue-secondary[data-v-c3d9e0ce] {
+ color: var(--color-primary-element-light-text);
+ background-color: var(--color-primary-element-light);
+}
+.button-vue--vue-secondary[data-v-c3d9e0ce]:hover:not(:disabled) {
+ color: var(--color-primary-element-light-text);
+ background-color: var(--color-primary-element-light-hover);
+}
+.button-vue--vue-tertiary[data-v-c3d9e0ce] {
+ color: var(--color-main-text);
+ background-color: transparent;
+}
+.button-vue--vue-tertiary[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: var(--color-background-hover);
+}
+.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce] {
+ color: var(--color-main-text);
+ background-color: transparent;
+}
+.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: transparent;
+}
+.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {
+ color: var(--color-primary-element-text);
+ background-color: transparent;
+}
+.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: transparent;
+}
+.button-vue--vue-success[data-v-c3d9e0ce] {
+ background-color: var(--color-success);
+ color: white;
+}
+.button-vue--vue-success[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: var(--color-success-hover);
+}
+.button-vue--vue-success[data-v-c3d9e0ce]:active {
+ background-color: var(--color-success);
+}
+.button-vue--vue-warning[data-v-c3d9e0ce] {
+ background-color: var(--color-warning);
+ color: white;
+}
+.button-vue--vue-warning[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: var(--color-warning-hover);
+}
+.button-vue--vue-warning[data-v-c3d9e0ce]:active {
+ background-color: var(--color-warning);
+}
+.button-vue--vue-error[data-v-c3d9e0ce] {
+ background-color: var(--color-error);
+ color: white;
+}
+.button-vue--vue-error[data-v-c3d9e0ce]:hover:not(:disabled) {
+ background-color: var(--color-error-hover);
+}
+.button-vue--vue-error[data-v-c3d9e0ce]:active {
+ background-color: var(--color-error);
+}`, ""]);
+// Exports
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/Tooltip-DQ4Plm4r.css":
+/*!************************************************************************************************************!*\
+ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/Tooltip-DQ4Plm4r.css ***!
+ \************************************************************************************************************/
+/***/ ((module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js");
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
+// Imports
+
+
+var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
+// Module
+___CSS_LOADER_EXPORT___.push([module.id, `/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+/*
+* Ensure proper alignment of the vue material icons
+*/
+.material-design-icon {
+ display: flex;
+ align-self: center;
+ justify-self: center;
+ align-items: center;
+ justify-content: center;
+}
+
+/**
+* SPDX-FileCopyrightText: 2011-2015 Twitter, Inc.
+* SPDX-FileCopyrightText: 2015-2016 Owncloud, Inc.
+* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+* SPDX-License-Identifier: MIT
+*/
+.v-popper--theme-tooltip.v-popper__popper {
+ position: absolute;
+ z-index: 100000;
+ top: 0;
+ right: auto;
+ left: auto;
+ display: block;
+ margin: 0;
+ padding: 0;
+ text-align: left;
+ text-align: start;
+ opacity: 0;
+ line-height: 1.6;
+ line-break: auto;
+ filter: drop-shadow(0 1px 10px var(--color-box-shadow));
+}
+.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {
+ bottom: -10px;
+ border-bottom-width: 0;
+ border-top-color: var(--color-main-background);
+}
+.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {
+ top: -10px;
+ border-top-width: 0;
+ border-bottom-color: var(--color-main-background);
+}
+.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {
+ right: 100%;
+ border-left-width: 0;
+ border-right-color: var(--color-main-background);
+}
+.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {
+ left: 100%;
+ border-right-width: 0;
+ border-left-color: var(--color-main-background);
+}
+.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true] {
+ visibility: hidden;
+ transition: opacity 0.15s, visibility 0.15s;
+ opacity: 0;
+}
+.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false] {
+ visibility: visible;
+ transition: opacity 0.15s;
+ opacity: 1;
+}
+.v-popper--theme-tooltip .v-popper__inner {
+ max-width: 350px;
+ padding: 5px 8px;
+ text-align: center;
+ color: var(--color-main-text);
+ border-radius: var(--border-radius);
+ background-color: var(--color-main-background);
+}
+.v-popper--theme-tooltip .v-popper__arrow-container {
+ position: absolute;
+ z-index: 1;
+ width: 0;
+ height: 0;
+ margin: 0;
+ border-style: solid;
+ border-color: transparent;
+ border-width: 10px;
+}`, ""]);
+// Exports
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/splitpanes/dist/splitpanes.css":
+/*!*******************************************************************************************!*\
+ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/splitpanes/dist/splitpanes.css ***!
+ \*******************************************************************************************/
+/***/ ((module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js");
+/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
+/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
+// Imports
+
+
+var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
+// Module
+___CSS_LOADER_EXPORT___.push([module.id, `.splitpanes{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.splitpanes--vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.splitpanes--horizontal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{-webkit-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{-webkit-transition:height .2s ease-out;-o-transition:height .2s ease-out;transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{-webkit-transition:none;-o-transition:none;transition:none}.splitpanes__splitter{-ms-touch-action:none;touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-negative:0;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;-webkit-transition:background-color .3s;-o-transition:background-color .3s;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}
+`, ""]);
+// Exports
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
+
+
+/***/ }),
+
+/***/ "./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!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss":
+/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./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!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss ***!
+ \*******************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js");
+/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
+/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
+// Imports
+
+
+var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
+// Module
+___CSS_LOADER_EXPORT___.push([module.id, `#webtransfer[data-v-7ba5bd90] {
+ display: flex;
+ justify-content: center;
+ margin: 16px;
+}`, ""]);
+// Exports
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
+
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/runtime/api.js":
+/*!*****************************************************!*\
+ !*** ./node_modules/css-loader/dist/runtime/api.js ***!
+ \*****************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+module.exports = function (cssWithMappingToString) {
+ var list = [];
+
+ // return the list of modules as css string
+ list.toString = function toString() {
+ return this.map(function (item) {
+ var content = "";
+ var needLayer = typeof item[5] !== "undefined";
+ if (item[4]) {
+ content += "@supports (".concat(item[4], ") {");
+ }
+ if (item[2]) {
+ content += "@media ".concat(item[2], " {");
+ }
+ if (needLayer) {
+ content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
+ }
+ content += cssWithMappingToString(item);
+ if (needLayer) {
+ content += "}";
+ }
+ if (item[2]) {
+ content += "}";
+ }
+ if (item[4]) {
+ content += "}";
+ }
+ return content;
+ }).join("");
+ };
+
+ // import a list of modules into the list
+ list.i = function i(modules, media, dedupe, supports, layer) {
+ if (typeof modules === "string") {
+ modules = [[null, modules, undefined]];
+ }
+ var alreadyImportedModules = {};
+ if (dedupe) {
+ for (var k = 0; k < this.length; k++) {
+ var id = this[k][0];
+ if (id != null) {
+ alreadyImportedModules[id] = true;
+ }
+ }
+ }
+ for (var _k = 0; _k < modules.length; _k++) {
+ var item = [].concat(modules[_k]);
+ if (dedupe && alreadyImportedModules[item[0]]) {
+ continue;
+ }
+ if (typeof layer !== "undefined") {
+ if (typeof item[5] === "undefined") {
+ item[5] = layer;
+ } else {
+ item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
+ item[5] = layer;
+ }
+ }
+ if (media) {
+ if (!item[2]) {
+ item[2] = media;
+ } else {
+ item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
+ item[2] = media;
+ }
+ }
+ if (supports) {
+ if (!item[4]) {
+ item[4] = "".concat(supports);
+ } else {
+ item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
+ item[4] = supports;
+ }
+ }
+ list.push(item);
+ }
+ };
+ return list;
+};
+
+/***/ }),
+
+/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js":
+/*!**************************************************************!*\
+ !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***!
+ \**************************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+module.exports = function (i) {
+ return i[1];
+};
+
+/***/ }),
+
+/***/ "./node_modules/escape-html/index.js":
+/*!*******************************************!*\
+ !*** ./node_modules/escape-html/index.js ***!
+ \*******************************************/
+/***/ ((module) => {
+
+"use strict";
+/*!
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ */
+
+
+
+/**
+ * Module variables.
+ * @private
+ */
+
+var matchHtmlRegExp = /["'&<>]/;
+
+/**
+ * Module exports.
+ * @public
+ */
+
+module.exports = escapeHtml;
+
+/**
+ * Escape special characters in the given string of html.
+ *
+ * @param {string} string The string to escape for inserting into HTML
+ * @return {string}
+ * @public
+ */
+
+function escapeHtml(string) {
+ var str = '' + string;
+ var match = matchHtmlRegExp.exec(str);
+
+ if (!match) {
+ return str;
+ }
+
+ var escape;
+ var html = '';
+ var index = 0;
+ var lastIndex = 0;
+
+ for (index = match.index; index < str.length; index++) {
+ switch (str.charCodeAt(index)) {
+ case 34: // "
+ escape = '"';
+ break;
+ case 38: // &
+ escape = '&';
+ break;
+ case 39: // '
+ escape = ''';
+ break;
+ case 60: // <
+ escape = '<';
+ break;
+ case 62: // >
+ escape = '>';
+ break;
+ default:
+ continue;
+ }
+
+ if (lastIndex !== index) {
+ html += str.substring(lastIndex, index);
+ }
+
+ lastIndex = index + 1;
+ html += escape;
+ }
+
+ return lastIndex !== index
+ ? html + str.substring(lastIndex, index)
+ : html;
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/floating-vue/dist/floating-vue.es.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/floating-vue/dist/floating-vue.es.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ Dropdown: () => (/* binding */ Dropdown),
+/* harmony export */ HIDE_EVENT_MAP: () => (/* binding */ HIDE_EVENT_MAP),
+/* harmony export */ Menu: () => (/* binding */ Menu),
+/* harmony export */ Popper: () => (/* binding */ Popper),
+/* harmony export */ PopperContent: () => (/* binding */ PopperContent),
+/* harmony export */ PopperMethods: () => (/* binding */ PopperMethods),
+/* harmony export */ PopperWrapper: () => (/* binding */ PopperWrapper),
+/* harmony export */ SHOW_EVENT_MAP: () => (/* binding */ SHOW_EVENT_MAP),
+/* harmony export */ ThemeClass: () => (/* binding */ ThemeClass),
+/* harmony export */ Tooltip: () => (/* binding */ Tooltip),
+/* harmony export */ TooltipDirective: () => (/* binding */ TooltipDirective),
+/* harmony export */ VClosePopper: () => (/* binding */ VClosePopper),
+/* harmony export */ VTooltip: () => (/* binding */ VTooltip),
+/* harmony export */ createTooltip: () => (/* binding */ createTooltip),
+/* harmony export */ "default": () => (/* binding */ plugin),
+/* harmony export */ destroyTooltip: () => (/* binding */ destroyTooltip),
+/* harmony export */ hideAllPoppers: () => (/* binding */ hideAllPoppers),
+/* harmony export */ install: () => (/* binding */ install),
+/* harmony export */ options: () => (/* binding */ options),
+/* harmony export */ placements: () => (/* binding */ placements)
+/* harmony export */ });
+/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/dom */ "./node_modules/floating-vue/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js");
+/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/dom */ "./node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
+var __defProp = Object.defineProperty;
+var __defProps = Object.defineProperties;
+var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
+var __getOwnPropSymbols = Object.getOwnPropertySymbols;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __propIsEnum = Object.prototype.propertyIsEnumerable;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __spreadValues = (a, b) => {
+ for (var prop in b || (b = {}))
+ if (__hasOwnProp.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ if (__getOwnPropSymbols)
+ for (var prop of __getOwnPropSymbols(b)) {
+ if (__propIsEnum.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ }
+ return a;
+};
+var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
+var __objRest = (source, exclude) => {
+ var target = {};
+ for (var prop in source)
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
+ target[prop] = source[prop];
+ if (source != null && __getOwnPropSymbols)
+ for (var prop of __getOwnPropSymbols(source)) {
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
+ target[prop] = source[prop];
+ }
+ return target;
+};
+
+
+function assign(to, from) {
+ for (const key in from) {
+ if (Object.prototype.hasOwnProperty.call(from, key)) {
+ if (typeof from[key] === "object" && to[key]) {
+ assign(to[key], from[key]);
+ } else {
+ to[key] = from[key];
+ }
+ }
+ }
+}
+const config = {
+ disabled: false,
+ distance: 5,
+ skidding: 0,
+ container: "body",
+ boundary: void 0,
+ instantMove: false,
+ disposeTimeout: 5e3,
+ popperTriggers: [],
+ strategy: "absolute",
+ preventOverflow: true,
+ flip: true,
+ shift: true,
+ overflowPadding: 0,
+ arrowPadding: 0,
+ arrowOverflow: true,
+ themes: {
+ tooltip: {
+ placement: "top",
+ triggers: ["hover", "focus", "touch"],
+ hideTriggers: (events) => [...events, "click"],
+ delay: {
+ show: 200,
+ hide: 0
+ },
+ handleResize: false,
+ html: false,
+ loadingContent: "..."
+ },
+ dropdown: {
+ placement: "bottom",
+ triggers: ["click"],
+ delay: 0,
+ handleResize: true,
+ autoHide: true
+ },
+ menu: {
+ $extend: "dropdown",
+ triggers: ["hover", "focus"],
+ popperTriggers: ["hover", "focus"],
+ delay: {
+ show: 0,
+ hide: 400
+ }
+ }
+ }
+};
+function getDefaultConfig(theme, key) {
+ let themeConfig = config.themes[theme] || {};
+ let value;
+ do {
+ value = themeConfig[key];
+ if (typeof value === "undefined") {
+ if (themeConfig.$extend) {
+ themeConfig = config.themes[themeConfig.$extend] || {};
+ } else {
+ themeConfig = null;
+ value = config[key];
+ }
+ } else {
+ themeConfig = null;
+ }
+ } while (themeConfig);
+ return value;
+}
+function getThemeClasses(theme) {
+ const result = [theme];
+ let themeConfig = config.themes[theme] || {};
+ do {
+ if (themeConfig.$extend && !themeConfig.$resetCss) {
+ result.push(themeConfig.$extend);
+ themeConfig = config.themes[themeConfig.$extend] || {};
+ } else {
+ themeConfig = null;
+ }
+ } while (themeConfig);
+ return result.map((c) => `v-popper--theme-${c}`);
+}
+function getAllParentThemes(theme) {
+ const result = [theme];
+ let themeConfig = config.themes[theme] || {};
+ do {
+ if (themeConfig.$extend) {
+ result.push(themeConfig.$extend);
+ themeConfig = config.themes[themeConfig.$extend] || {};
+ } else {
+ themeConfig = null;
+ }
+ } while (themeConfig);
+ return result;
+}
+var vueResize = "";
+let supportsPassive = false;
+if (typeof window !== "undefined") {
+ supportsPassive = false;
+ try {
+ const opts = Object.defineProperty({}, "passive", {
+ get() {
+ supportsPassive = true;
+ }
+ });
+ window.addEventListener("test", null, opts);
+ } catch (e) {
+ }
+}
+let isIOS = false;
+if (typeof window !== "undefined" && typeof navigator !== "undefined") {
+ isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+}
+const placements = ["auto", "top", "bottom", "left", "right"].reduce((acc, base) => acc.concat([
+ base,
+ `${base}-start`,
+ `${base}-end`
+]), []);
+const SHOW_EVENT_MAP = {
+ hover: "mouseenter",
+ focus: "focus",
+ click: "click",
+ touch: "touchstart"
+};
+const HIDE_EVENT_MAP = {
+ hover: "mouseleave",
+ focus: "blur",
+ click: "click",
+ touch: "touchend"
+};
+function removeFromArray(array, item) {
+ const index = array.indexOf(item);
+ if (index !== -1) {
+ array.splice(index, 1);
+ }
+}
+function nextFrame() {
+ return new Promise((resolve) => requestAnimationFrame(() => {
+ requestAnimationFrame(resolve);
+ }));
+}
+const shownPoppers = [];
+let hidingPopper = null;
+const shownPoppersByTheme = {};
+function getShownPoppersByTheme(theme) {
+ let list = shownPoppersByTheme[theme];
+ if (!list) {
+ list = shownPoppersByTheme[theme] = [];
+ }
+ return list;
+}
+let Element = function() {
+};
+if (typeof window !== "undefined") {
+ Element = window.Element;
+}
+function defaultPropFactory(prop) {
+ return function() {
+ const props = this.$props;
+ return getDefaultConfig(props.theme, prop);
+ };
+}
+const PROVIDE_KEY = "__floating-vue__popper";
+var PrivatePopper = () => ({
+ name: "VPopper",
+ props: {
+ theme: {
+ type: String,
+ required: true
+ },
+ targetNodes: {
+ type: Function,
+ required: true
+ },
+ referenceNode: {
+ type: Function,
+ required: true
+ },
+ popperNode: {
+ type: Function,
+ required: true
+ },
+ shown: {
+ type: Boolean,
+ default: false
+ },
+ showGroup: {
+ type: String,
+ default: null
+ },
+ ariaId: {
+ default: null
+ },
+ disabled: {
+ type: Boolean,
+ default: defaultPropFactory("disabled")
+ },
+ positioningDisabled: {
+ type: Boolean,
+ default: defaultPropFactory("positioningDisabled")
+ },
+ placement: {
+ type: String,
+ default: defaultPropFactory("placement"),
+ validator: (value) => placements.includes(value)
+ },
+ delay: {
+ type: [String, Number, Object],
+ default: defaultPropFactory("delay")
+ },
+ distance: {
+ type: [Number, String],
+ default: defaultPropFactory("distance")
+ },
+ skidding: {
+ type: [Number, String],
+ default: defaultPropFactory("skidding")
+ },
+ triggers: {
+ type: Array,
+ default: defaultPropFactory("triggers")
+ },
+ showTriggers: {
+ type: [Array, Function],
+ default: defaultPropFactory("showTriggers")
+ },
+ hideTriggers: {
+ type: [Array, Function],
+ default: defaultPropFactory("hideTriggers")
+ },
+ popperTriggers: {
+ type: Array,
+ default: defaultPropFactory("popperTriggers")
+ },
+ popperShowTriggers: {
+ type: [Array, Function],
+ default: defaultPropFactory("popperShowTriggers")
+ },
+ popperHideTriggers: {
+ type: [Array, Function],
+ default: defaultPropFactory("popperHideTriggers")
+ },
+ container: {
+ type: [String, Object, Element, Boolean],
+ default: defaultPropFactory("container")
+ },
+ boundary: {
+ type: [String, Element],
+ default: defaultPropFactory("boundary")
+ },
+ strategy: {
+ type: String,
+ validator: (value) => ["absolute", "fixed"].includes(value),
+ default: defaultPropFactory("strategy")
+ },
+ autoHide: {
+ type: [Boolean, Function],
+ default: defaultPropFactory("autoHide")
+ },
+ handleResize: {
+ type: Boolean,
+ default: defaultPropFactory("handleResize")
+ },
+ instantMove: {
+ type: Boolean,
+ default: defaultPropFactory("instantMove")
+ },
+ eagerMount: {
+ type: Boolean,
+ default: defaultPropFactory("eagerMount")
+ },
+ popperClass: {
+ type: [String, Array, Object],
+ default: defaultPropFactory("popperClass")
+ },
+ computeTransformOrigin: {
+ type: Boolean,
+ default: defaultPropFactory("computeTransformOrigin")
+ },
+ autoMinSize: {
+ type: Boolean,
+ default: defaultPropFactory("autoMinSize")
+ },
+ autoSize: {
+ type: [Boolean, String],
+ default: defaultPropFactory("autoSize")
+ },
+ autoMaxSize: {
+ type: Boolean,
+ default: defaultPropFactory("autoMaxSize")
+ },
+ autoBoundaryMaxSize: {
+ type: Boolean,
+ default: defaultPropFactory("autoBoundaryMaxSize")
+ },
+ preventOverflow: {
+ type: Boolean,
+ default: defaultPropFactory("preventOverflow")
+ },
+ overflowPadding: {
+ type: [Number, String],
+ default: defaultPropFactory("overflowPadding")
+ },
+ arrowPadding: {
+ type: [Number, String],
+ default: defaultPropFactory("arrowPadding")
+ },
+ arrowOverflow: {
+ type: Boolean,
+ default: defaultPropFactory("arrowOverflow")
+ },
+ flip: {
+ type: Boolean,
+ default: defaultPropFactory("flip")
+ },
+ shift: {
+ type: Boolean,
+ default: defaultPropFactory("shift")
+ },
+ shiftCrossAxis: {
+ type: Boolean,
+ default: defaultPropFactory("shiftCrossAxis")
+ },
+ noAutoFocus: {
+ type: Boolean,
+ default: defaultPropFactory("noAutoFocus")
+ }
+ },
+ provide() {
+ return {
+ [PROVIDE_KEY]: {
+ parentPopper: this
+ }
+ };
+ },
+ inject: {
+ [PROVIDE_KEY]: { default: null }
+ },
+ data() {
+ return {
+ isShown: false,
+ isMounted: false,
+ skipTransition: false,
+ classes: {
+ showFrom: false,
+ showTo: false,
+ hideFrom: false,
+ hideTo: true
+ },
+ result: {
+ x: 0,
+ y: 0,
+ placement: "",
+ strategy: this.strategy,
+ arrow: {
+ x: 0,
+ y: 0,
+ centerOffset: 0
+ },
+ transformOrigin: null
+ },
+ shownChildren: /* @__PURE__ */ new Set(),
+ lastAutoHide: true
+ };
+ },
+ computed: {
+ popperId() {
+ return this.ariaId != null ? this.ariaId : this.randomId;
+ },
+ shouldMountContent() {
+ return this.eagerMount || this.isMounted;
+ },
+ slotData() {
+ return {
+ popperId: this.popperId,
+ isShown: this.isShown,
+ shouldMountContent: this.shouldMountContent,
+ skipTransition: this.skipTransition,
+ autoHide: typeof this.autoHide === "function" ? this.lastAutoHide : this.autoHide,
+ show: this.show,
+ hide: this.hide,
+ handleResize: this.handleResize,
+ onResize: this.onResize,
+ classes: __spreadProps(__spreadValues({}, this.classes), {
+ popperClass: this.popperClass
+ }),
+ result: this.positioningDisabled ? null : this.result
+ };
+ },
+ parentPopper() {
+ var _a;
+ return (_a = this[PROVIDE_KEY]) == null ? void 0 : _a.parentPopper;
+ },
+ hasPopperShowTriggerHover() {
+ var _a, _b;
+ return ((_a = this.popperTriggers) == null ? void 0 : _a.includes("hover")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes("hover"));
+ }
+ },
+ watch: __spreadValues(__spreadValues({
+ shown: "$_autoShowHide",
+ disabled(value) {
+ if (value) {
+ this.dispose();
+ } else {
+ this.init();
+ }
+ },
+ async container() {
+ if (this.isShown) {
+ this.$_ensureTeleport();
+ await this.$_computePosition();
+ }
+ }
+ }, [
+ "triggers",
+ "positioningDisabled"
+ ].reduce((acc, prop) => {
+ acc[prop] = "$_refreshListeners";
+ return acc;
+ }, {})), [
+ "placement",
+ "distance",
+ "skidding",
+ "boundary",
+ "strategy",
+ "overflowPadding",
+ "arrowPadding",
+ "preventOverflow",
+ "shift",
+ "shiftCrossAxis",
+ "flip"
+ ].reduce((acc, prop) => {
+ acc[prop] = "$_computePosition";
+ return acc;
+ }, {})),
+ created() {
+ this.$_isDisposed = true;
+ this.randomId = `popper_${[Math.random(), Date.now()].map((n) => n.toString(36).substring(2, 10)).join("_")}`;
+ if (this.autoMinSize) {
+ console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.');
+ }
+ if (this.autoMaxSize) {
+ console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.");
+ }
+ },
+ mounted() {
+ this.init();
+ this.$_detachPopperNode();
+ },
+ activated() {
+ this.$_autoShowHide();
+ },
+ deactivated() {
+ this.hide();
+ },
+ beforeDestroy() {
+ this.dispose();
+ },
+ methods: {
+ show({ event = null, skipDelay = false, force = false } = {}) {
+ var _a, _b;
+ if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) && this.parentPopper.lockedChild !== this)
+ return;
+ this.$_pendingHide = false;
+ if (force || !this.disabled) {
+ if (((_b = this.parentPopper) == null ? void 0 : _b.lockedChild) === this) {
+ this.parentPopper.lockedChild = null;
+ }
+ this.$_scheduleShow(event, skipDelay);
+ this.$emit("show");
+ this.$_showFrameLocked = true;
+ requestAnimationFrame(() => {
+ this.$_showFrameLocked = false;
+ });
+ }
+ this.$emit("update:shown", true);
+ },
+ hide({ event = null, skipDelay = false, skipAiming = false } = {}) {
+ var _a;
+ if (this.$_hideInProgress)
+ return;
+ if (this.shownChildren.size > 0) {
+ this.$_pendingHide = true;
+ return;
+ }
+ if (!skipAiming && this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {
+ if (this.parentPopper) {
+ this.parentPopper.lockedChild = this;
+ clearTimeout(this.parentPopper.lockedChildTimer);
+ this.parentPopper.lockedChildTimer = setTimeout(() => {
+ if (this.parentPopper.lockedChild === this) {
+ this.parentPopper.lockedChild.hide({ skipDelay });
+ this.parentPopper.lockedChild = null;
+ }
+ }, 1e3);
+ }
+ return;
+ }
+ if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) === this) {
+ this.parentPopper.lockedChild = null;
+ }
+ this.$_pendingHide = false;
+ this.$_scheduleHide(event, skipDelay);
+ this.$emit("hide");
+ this.$emit("update:shown", false);
+ },
+ init() {
+ if (!this.$_isDisposed)
+ return;
+ this.$_isDisposed = false;
+ this.isMounted = false;
+ this.$_events = [];
+ this.$_preventShow = false;
+ this.$_referenceNode = this.referenceNode();
+ this.$_targetNodes = this.targetNodes().filter((e) => e.nodeType === e.ELEMENT_NODE);
+ this.$_popperNode = this.popperNode();
+ this.$_innerNode = this.$_popperNode.querySelector(".v-popper__inner");
+ this.$_arrowNode = this.$_popperNode.querySelector(".v-popper__arrow-container");
+ this.$_swapTargetAttrs("title", "data-original-title");
+ this.$_detachPopperNode();
+ if (this.triggers.length) {
+ this.$_addEventListeners();
+ }
+ if (this.shown) {
+ this.show();
+ }
+ },
+ dispose() {
+ if (this.$_isDisposed)
+ return;
+ this.$_isDisposed = true;
+ this.$_removeEventListeners();
+ this.hide({ skipDelay: true });
+ this.$_detachPopperNode();
+ this.isMounted = false;
+ this.isShown = false;
+ this.$_updateParentShownChildren(false);
+ this.$_swapTargetAttrs("data-original-title", "title");
+ this.$emit("dispose");
+ },
+ async onResize() {
+ if (this.isShown) {
+ await this.$_computePosition();
+ this.$emit("resize");
+ }
+ },
+ async $_computePosition() {
+ var _a;
+ if (this.$_isDisposed || this.positioningDisabled)
+ return;
+ const options2 = {
+ strategy: this.strategy,
+ middleware: []
+ };
+ if (this.distance || this.skidding) {
+ options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.offset)({
+ mainAxis: this.distance,
+ crossAxis: this.skidding
+ }));
+ }
+ const isPlacementAuto = this.placement.startsWith("auto");
+ if (isPlacementAuto) {
+ options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoPlacement)({
+ alignment: (_a = this.placement.split("-")[1]) != null ? _a : ""
+ }));
+ } else {
+ options2.placement = this.placement;
+ }
+ if (this.preventOverflow) {
+ if (this.shift) {
+ options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.shift)({
+ padding: this.overflowPadding,
+ boundary: this.boundary,
+ crossAxis: this.shiftCrossAxis
+ }));
+ }
+ if (!isPlacementAuto && this.flip) {
+ options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.flip)({
+ padding: this.overflowPadding,
+ boundary: this.boundary
+ }));
+ }
+ }
+ options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({
+ element: this.$_arrowNode,
+ padding: this.arrowPadding
+ }));
+ if (this.arrowOverflow) {
+ options2.middleware.push({
+ name: "arrowOverflow",
+ fn: ({ placement, rects, middlewareData }) => {
+ let overflow;
+ const { centerOffset } = middlewareData.arrow;
+ if (placement.startsWith("top") || placement.startsWith("bottom")) {
+ overflow = Math.abs(centerOffset) > rects.reference.width / 2;
+ } else {
+ overflow = Math.abs(centerOffset) > rects.reference.height / 2;
+ }
+ return {
+ data: {
+ overflow
+ }
+ };
+ }
+ });
+ }
+ if (this.autoMinSize || this.autoSize) {
+ const autoSize = this.autoSize ? this.autoSize : this.autoMinSize ? "min" : null;
+ options2.middleware.push({
+ name: "autoSize",
+ fn: ({ rects, placement, middlewareData }) => {
+ var _a2;
+ if ((_a2 = middlewareData.autoSize) == null ? void 0 : _a2.skip) {
+ return {};
+ }
+ let width;
+ let height;
+ if (placement.startsWith("top") || placement.startsWith("bottom")) {
+ width = rects.reference.width;
+ } else {
+ height = rects.reference.height;
+ }
+ this.$_innerNode.style[autoSize === "min" ? "minWidth" : autoSize === "max" ? "maxWidth" : "width"] = width != null ? `${width}px` : null;
+ this.$_innerNode.style[autoSize === "min" ? "minHeight" : autoSize === "max" ? "maxHeight" : "height"] = height != null ? `${height}px` : null;
+ return {
+ data: {
+ skip: true
+ },
+ reset: {
+ rects: true
+ }
+ };
+ }
+ });
+ }
+ if (this.autoMaxSize || this.autoBoundaryMaxSize) {
+ this.$_innerNode.style.maxWidth = null;
+ this.$_innerNode.style.maxHeight = null;
+ options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.size)({
+ boundary: this.boundary,
+ padding: this.overflowPadding,
+ apply: ({ width, height }) => {
+ this.$_innerNode.style.maxWidth = width != null ? `${width}px` : null;
+ this.$_innerNode.style.maxHeight = height != null ? `${height}px` : null;
+ }
+ }));
+ }
+ const data = await (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.computePosition)(this.$_referenceNode, this.$_popperNode, options2);
+ Object.assign(this.result, {
+ x: data.x,
+ y: data.y,
+ placement: data.placement,
+ strategy: data.strategy,
+ arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)
+ });
+ },
+ $_scheduleShow(event = null, skipDelay = false) {
+ this.$_updateParentShownChildren(true);
+ this.$_hideInProgress = false;
+ clearTimeout(this.$_scheduleTimer);
+ if (hidingPopper && this.instantMove && hidingPopper.instantMove && hidingPopper !== this.parentPopper) {
+ hidingPopper.$_applyHide(true);
+ this.$_applyShow(true);
+ return;
+ }
+ if (skipDelay) {
+ this.$_applyShow();
+ } else {
+ this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay("show"));
+ }
+ },
+ $_scheduleHide(event = null, skipDelay = false) {
+ if (this.shownChildren.size > 0) {
+ this.$_pendingHide = true;
+ return;
+ }
+ this.$_updateParentShownChildren(false);
+ this.$_hideInProgress = true;
+ clearTimeout(this.$_scheduleTimer);
+ if (this.isShown) {
+ hidingPopper = this;
+ }
+ if (skipDelay) {
+ this.$_applyHide();
+ } else {
+ this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay("hide"));
+ }
+ },
+ $_computeDelay(type) {
+ const delay = this.delay;
+ return parseInt(delay && delay[type] || delay || 0);
+ },
+ async $_applyShow(skipTransition = false) {
+ clearTimeout(this.$_disposeTimer);
+ clearTimeout(this.$_scheduleTimer);
+ this.skipTransition = skipTransition;
+ if (this.isShown) {
+ return;
+ }
+ this.$_ensureTeleport();
+ await nextFrame();
+ await this.$_computePosition();
+ await this.$_applyShowEffect();
+ if (!this.positioningDisabled) {
+ this.$_registerEventListeners([
+ ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getScrollParents)(this.$_referenceNode),
+ ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getScrollParents)(this.$_popperNode)
+ ], "scroll", () => {
+ this.$_computePosition();
+ });
+ }
+ },
+ async $_applyShowEffect() {
+ if (this.$_hideInProgress)
+ return;
+ if (this.computeTransformOrigin) {
+ const bounds = this.$_referenceNode.getBoundingClientRect();
+ const popperWrapper = this.$_popperNode.querySelector(".v-popper__wrapper");
+ const parentBounds = popperWrapper.parentNode.getBoundingClientRect();
+ const x = bounds.x + bounds.width / 2 - (parentBounds.left + popperWrapper.offsetLeft);
+ const y = bounds.y + bounds.height / 2 - (parentBounds.top + popperWrapper.offsetTop);
+ this.result.transformOrigin = `${x}px ${y}px`;
+ }
+ this.isShown = true;
+ this.$_applyAttrsToTarget({
+ "aria-describedby": this.popperId,
+ "data-popper-shown": ""
+ });
+ const showGroup = this.showGroup;
+ if (showGroup) {
+ let popover;
+ for (let i = 0; i < shownPoppers.length; i++) {
+ popover = shownPoppers[i];
+ if (popover.showGroup !== showGroup) {
+ popover.hide();
+ popover.$emit("close-group");
+ }
+ }
+ }
+ shownPoppers.push(this);
+ document.body.classList.add("v-popper--some-open");
+ for (const theme of getAllParentThemes(this.theme)) {
+ getShownPoppersByTheme(theme).push(this);
+ document.body.classList.add(`v-popper--some-open--${theme}`);
+ }
+ this.$emit("apply-show");
+ this.classes.showFrom = true;
+ this.classes.showTo = false;
+ this.classes.hideFrom = false;
+ this.classes.hideTo = false;
+ await nextFrame();
+ this.classes.showFrom = false;
+ this.classes.showTo = true;
+ if (!this.noAutoFocus)
+ this.$_popperNode.focus();
+ },
+ async $_applyHide(skipTransition = false) {
+ if (this.shownChildren.size > 0) {
+ this.$_pendingHide = true;
+ this.$_hideInProgress = false;
+ return;
+ }
+ clearTimeout(this.$_scheduleTimer);
+ if (!this.isShown) {
+ return;
+ }
+ this.skipTransition = skipTransition;
+ removeFromArray(shownPoppers, this);
+ if (shownPoppers.length === 0) {
+ document.body.classList.remove("v-popper--some-open");
+ }
+ for (const theme of getAllParentThemes(this.theme)) {
+ const list = getShownPoppersByTheme(theme);
+ removeFromArray(list, this);
+ if (list.length === 0) {
+ document.body.classList.remove(`v-popper--some-open--${theme}`);
+ }
+ }
+ if (hidingPopper === this) {
+ hidingPopper = null;
+ }
+ this.isShown = false;
+ this.$_applyAttrsToTarget({
+ "aria-describedby": void 0,
+ "data-popper-shown": void 0
+ });
+ clearTimeout(this.$_disposeTimer);
+ const disposeTime = getDefaultConfig(this.theme, "disposeTimeout");
+ if (disposeTime !== null) {
+ this.$_disposeTimer = setTimeout(() => {
+ if (this.$_popperNode) {
+ this.$_detachPopperNode();
+ this.isMounted = false;
+ }
+ }, disposeTime);
+ }
+ this.$_removeEventListeners("scroll");
+ this.$emit("apply-hide");
+ this.classes.showFrom = false;
+ this.classes.showTo = false;
+ this.classes.hideFrom = true;
+ this.classes.hideTo = false;
+ await nextFrame();
+ this.classes.hideFrom = false;
+ this.classes.hideTo = true;
+ },
+ $_autoShowHide() {
+ if (this.shown) {
+ this.show();
+ } else {
+ this.hide();
+ }
+ },
+ $_ensureTeleport() {
+ if (this.$_isDisposed)
+ return;
+ let container = this.container;
+ if (typeof container === "string") {
+ container = window.document.querySelector(container);
+ } else if (container === false) {
+ container = this.$_targetNodes[0].parentNode;
+ }
+ if (!container) {
+ throw new Error("No container for popover: " + this.container);
+ }
+ container.appendChild(this.$_popperNode);
+ this.isMounted = true;
+ },
+ $_addEventListeners() {
+ const handleShow = (event) => {
+ if (this.isShown && !this.$_hideInProgress) {
+ return;
+ }
+ event.usedByTooltip = true;
+ !this.$_preventShow && this.show({ event });
+ };
+ this.$_registerTriggerListeners(this.$_targetNodes, SHOW_EVENT_MAP, this.triggers, this.showTriggers, handleShow);
+ this.$_registerTriggerListeners([this.$_popperNode], SHOW_EVENT_MAP, this.popperTriggers, this.popperShowTriggers, handleShow);
+ const handleHide = (skipAiming) => (event) => {
+ if (event.usedByTooltip) {
+ return;
+ }
+ this.hide({ event, skipAiming });
+ };
+ this.$_registerTriggerListeners(this.$_targetNodes, HIDE_EVENT_MAP, this.triggers, this.hideTriggers, handleHide(false));
+ this.$_registerTriggerListeners([this.$_popperNode], HIDE_EVENT_MAP, this.popperTriggers, this.popperHideTriggers, handleHide(true));
+ },
+ $_registerEventListeners(targetNodes, eventType, handler) {
+ this.$_events.push({ targetNodes, eventType, handler });
+ targetNodes.forEach((node) => node.addEventListener(eventType, handler, supportsPassive ? {
+ passive: true
+ } : void 0));
+ },
+ $_registerTriggerListeners(targetNodes, eventMap, commonTriggers, customTrigger, handler) {
+ let triggers = commonTriggers;
+ if (customTrigger != null) {
+ triggers = typeof customTrigger === "function" ? customTrigger(triggers) : customTrigger;
+ }
+ triggers.forEach((trigger) => {
+ const eventType = eventMap[trigger];
+ if (eventType) {
+ this.$_registerEventListeners(targetNodes, eventType, handler);
+ }
+ });
+ },
+ $_removeEventListeners(filterEventType) {
+ const newList = [];
+ this.$_events.forEach((listener) => {
+ const { targetNodes, eventType, handler } = listener;
+ if (!filterEventType || filterEventType === eventType) {
+ targetNodes.forEach((node) => node.removeEventListener(eventType, handler));
+ } else {
+ newList.push(listener);
+ }
+ });
+ this.$_events = newList;
+ },
+ $_refreshListeners() {
+ if (!this.$_isDisposed) {
+ this.$_removeEventListeners();
+ this.$_addEventListeners();
+ }
+ },
+ $_handleGlobalClose(event, touch = false) {
+ if (this.$_showFrameLocked)
+ return;
+ this.hide({ event });
+ if (event.closePopover) {
+ this.$emit("close-directive");
+ } else {
+ this.$emit("auto-hide");
+ }
+ if (touch) {
+ this.$_preventShow = true;
+ setTimeout(() => {
+ this.$_preventShow = false;
+ }, 300);
+ }
+ },
+ $_detachPopperNode() {
+ this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);
+ },
+ $_swapTargetAttrs(attrFrom, attrTo) {
+ for (const el of this.$_targetNodes) {
+ const value = el.getAttribute(attrFrom);
+ if (value) {
+ el.removeAttribute(attrFrom);
+ el.setAttribute(attrTo, value);
+ }
+ }
+ },
+ $_applyAttrsToTarget(attrs) {
+ for (const el of this.$_targetNodes) {
+ for (const n in attrs) {
+ const value = attrs[n];
+ if (value == null) {
+ el.removeAttribute(n);
+ } else {
+ el.setAttribute(n, value);
+ }
+ }
+ }
+ },
+ $_updateParentShownChildren(value) {
+ let parent = this.parentPopper;
+ while (parent) {
+ if (value) {
+ parent.shownChildren.add(this.randomId);
+ } else {
+ parent.shownChildren.delete(this.randomId);
+ if (parent.$_pendingHide) {
+ parent.hide();
+ }
+ }
+ parent = parent.parentPopper;
+ }
+ },
+ $_isAimingPopper() {
+ const referenceBounds = this.$el.getBoundingClientRect();
+ if (mouseX >= referenceBounds.left && mouseX <= referenceBounds.right && mouseY >= referenceBounds.top && mouseY <= referenceBounds.bottom) {
+ const popperBounds = this.$_popperNode.getBoundingClientRect();
+ const vectorX = mouseX - mousePreviousX;
+ const vectorY = mouseY - mousePreviousY;
+ const distance = popperBounds.left + popperBounds.width / 2 - mousePreviousX + (popperBounds.top + popperBounds.height / 2) - mousePreviousY;
+ const newVectorLength = distance + popperBounds.width + popperBounds.height;
+ const edgeX = mousePreviousX + vectorX * newVectorLength;
+ const edgeY = mousePreviousY + vectorY * newVectorLength;
+ return lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.left, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.right, popperBounds.top) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.right, popperBounds.top, popperBounds.right, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.bottom, popperBounds.right, popperBounds.bottom);
+ }
+ return false;
+ }
+ },
+ render() {
+ return this.$scopedSlots.default(this.slotData)[0];
+ }
+});
+if (typeof document !== "undefined" && typeof window !== "undefined") {
+ if (isIOS) {
+ document.addEventListener("touchstart", handleGlobalMousedown, supportsPassive ? {
+ passive: true,
+ capture: true
+ } : true);
+ document.addEventListener("touchend", handleGlobalTouchend, supportsPassive ? {
+ passive: true,
+ capture: true
+ } : true);
+ } else {
+ window.addEventListener("mousedown", handleGlobalMousedown, true);
+ window.addEventListener("click", handleGlobalClick, true);
+ }
+ window.addEventListener("resize", computePositionAllShownPoppers);
+}
+function handleGlobalMousedown(event) {
+ for (let i = 0; i < shownPoppers.length; i++) {
+ const popper = shownPoppers[i];
+ try {
+ const popperContent = popper.popperNode();
+ popper.$_mouseDownContains = popperContent.contains(event.target);
+ } catch (e) {
+ }
+ }
+}
+function handleGlobalClick(event) {
+ handleGlobalClose(event);
+}
+function handleGlobalTouchend(event) {
+ handleGlobalClose(event, true);
+}
+function handleGlobalClose(event, touch = false) {
+ const preventClose = {};
+ for (let i = shownPoppers.length - 1; i >= 0; i--) {
+ const popper = shownPoppers[i];
+ try {
+ const contains = popper.$_containsGlobalTarget = isContainingEventTarget(popper, event);
+ popper.$_pendingHide = false;
+ requestAnimationFrame(() => {
+ popper.$_pendingHide = false;
+ if (preventClose[popper.randomId])
+ return;
+ if (shouldAutoHide(popper, contains, event)) {
+ popper.$_handleGlobalClose(event, touch);
+ if (!event.closeAllPopover && event.closePopover && contains) {
+ let parent2 = popper.parentPopper;
+ while (parent2) {
+ preventClose[parent2.randomId] = true;
+ parent2 = parent2.parentPopper;
+ }
+ return;
+ }
+ let parent = popper.parentPopper;
+ while (parent) {
+ if (shouldAutoHide(parent, parent.$_containsGlobalTarget, event)) {
+ parent.$_handleGlobalClose(event, touch);
+ } else {
+ break;
+ }
+ parent = parent.parentPopper;
+ }
+ }
+ });
+ } catch (e) {
+ }
+ }
+}
+function isContainingEventTarget(popper, event) {
+ const popperContent = popper.popperNode();
+ return popper.$_mouseDownContains || popperContent.contains(event.target);
+}
+function shouldAutoHide(popper, contains, event) {
+ return event.closeAllPopover || event.closePopover && contains || getAutoHideResult(popper, event) && !contains;
+}
+function getAutoHideResult(popper, event) {
+ if (typeof popper.autoHide === "function") {
+ const result = popper.autoHide(event);
+ popper.lastAutoHide = result;
+ return result;
+ }
+ return popper.autoHide;
+}
+function computePositionAllShownPoppers(event) {
+ for (let i = 0; i < shownPoppers.length; i++) {
+ const popper = shownPoppers[i];
+ popper.$_computePosition(event);
+ }
+}
+function hideAllPoppers() {
+ for (let i = 0; i < shownPoppers.length; i++) {
+ const popper = shownPoppers[i];
+ popper.hide();
+ }
+}
+let mousePreviousX = 0;
+let mousePreviousY = 0;
+let mouseX = 0;
+let mouseY = 0;
+if (typeof window !== "undefined") {
+ window.addEventListener("mousemove", (event) => {
+ mousePreviousX = mouseX;
+ mousePreviousY = mouseY;
+ mouseX = event.clientX;
+ mouseY = event.clientY;
+ }, supportsPassive ? {
+ passive: true
+ } : void 0);
+}
+function lineIntersectsLine(x1, y1, x2, y2, x3, y3, x4, y4) {
+ const uA = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));
+ const uB = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));
+ return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1;
+}
+function getInternetExplorerVersion() {
+ var ua = window.navigator.userAgent;
+ var msie = ua.indexOf("MSIE ");
+ if (msie > 0) {
+ return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)), 10);
+ }
+ var trident = ua.indexOf("Trident/");
+ if (trident > 0) {
+ var rv = ua.indexOf("rv:");
+ return parseInt(ua.substring(rv + 3, ua.indexOf(".", rv)), 10);
+ }
+ var edge = ua.indexOf("Edge/");
+ if (edge > 0) {
+ return parseInt(ua.substring(edge + 5, ua.indexOf(".", edge)), 10);
+ }
+ return -1;
+}
+var isIE;
+function initCompat() {
+ if (!initCompat.init) {
+ initCompat.init = true;
+ isIE = getInternetExplorerVersion() !== -1;
+ }
+}
+var script = {
+ name: "ResizeObserver",
+ props: {
+ emitOnMount: {
+ type: Boolean,
+ default: false
+ },
+ ignoreWidth: {
+ type: Boolean,
+ default: false
+ },
+ ignoreHeight: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted: function mounted() {
+ var _this = this;
+ initCompat();
+ this.$nextTick(function() {
+ _this._w = _this.$el.offsetWidth;
+ _this._h = _this.$el.offsetHeight;
+ if (_this.emitOnMount) {
+ _this.emitSize();
+ }
+ });
+ var object = document.createElement("object");
+ this._resizeObject = object;
+ object.setAttribute("aria-hidden", "true");
+ object.setAttribute("tabindex", -1);
+ object.onload = this.addResizeHandlers;
+ object.type = "text/html";
+ if (isIE) {
+ this.$el.appendChild(object);
+ }
+ object.data = "about:blank";
+ if (!isIE) {
+ this.$el.appendChild(object);
+ }
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.removeResizeHandlers();
+ },
+ methods: {
+ compareAndNotify: function compareAndNotify() {
+ if (!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 emitSize() {
+ this.$emit("notify", {
+ width: this._w,
+ height: this._h
+ });
+ },
+ addResizeHandlers: function addResizeHandlers() {
+ this._resizeObject.contentDocument.defaultView.addEventListener("resize", this.compareAndNotify);
+ this.compareAndNotify();
+ },
+ removeResizeHandlers: function removeResizeHandlers() {
+ if (this._resizeObject && this._resizeObject.onload) {
+ if (!isIE && this._resizeObject.contentDocument) {
+ this._resizeObject.contentDocument.defaultView.removeEventListener("resize", this.compareAndNotify);
+ }
+ this.$el.removeChild(this._resizeObject);
+ this._resizeObject.onload = null;
+ this._resizeObject = null;
+ }
+ }
+ }
+};
+function normalizeComponent$1(template, style, script2, scopeId, isFunctionalTemplate, moduleIdentifier, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
+ if (typeof shadowMode !== "boolean") {
+ createInjectorSSR = createInjector;
+ createInjector = shadowMode;
+ shadowMode = false;
+ }
+ var options2 = typeof script2 === "function" ? script2.options : script2;
+ if (template && template.render) {
+ options2.render = template.render;
+ options2.staticRenderFns = template.staticRenderFns;
+ options2._compiled = true;
+ if (isFunctionalTemplate) {
+ options2.functional = true;
+ }
+ }
+ if (scopeId) {
+ options2._scopeId = scopeId;
+ }
+ var hook;
+ if (moduleIdentifier) {
+ hook = function hook2(context) {
+ context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
+ context = __VUE_SSR_CONTEXT__;
+ }
+ if (style) {
+ style.call(this, createInjectorSSR(context));
+ }
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier);
+ }
+ };
+ options2._ssrRegister = hook;
+ } else if (style) {
+ hook = shadowMode ? function(context) {
+ style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
+ } : function(context) {
+ style.call(this, createInjector(context));
+ };
+ }
+ if (hook) {
+ if (options2.functional) {
+ var originalRender = options2.render;
+ options2.render = function renderWithStyleInjection(h, context) {
+ hook.call(context);
+ return originalRender(h, context);
+ };
+ } else {
+ var existing = options2.beforeCreate;
+ options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];
+ }
+ }
+ return script2;
+}
+var __vue_script__ = script;
+var __vue_render__ = function __vue_render__2() {
+ var _vm = this;
+ var _h = _vm.$createElement;
+ var _c = _vm._self._c || _h;
+ return _c("div", {
+ staticClass: "resize-observer",
+ attrs: {
+ tabindex: "-1"
+ }
+ });
+};
+var __vue_staticRenderFns__ = [];
+__vue_render__._withStripped = true;
+var __vue_inject_styles__ = void 0;
+var __vue_scope_id__ = "data-v-8859cc6c";
+var __vue_module_identifier__ = void 0;
+var __vue_is_functional_template__ = false;
+var __vue_component__ = /* @__PURE__ */ normalizeComponent$1({
+ render: __vue_render__,
+ staticRenderFns: __vue_staticRenderFns__
+}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, void 0, void 0, void 0);
+function install$1(Vue2) {
+ Vue2.component("resize-observer", __vue_component__);
+ Vue2.component("ResizeObserver", __vue_component__);
+}
+var plugin$1 = {
+ version: "1.0.1",
+ install: install$1
+};
+var GlobalVue$1 = null;
+if (typeof window !== "undefined") {
+ GlobalVue$1 = window.Vue;
+} else if (typeof __webpack_require__.g !== "undefined") {
+ GlobalVue$1 = __webpack_require__.g.Vue;
+}
+if (GlobalVue$1) {
+ GlobalVue$1.use(plugin$1);
+}
+var PrivateThemeClass = {
+ computed: {
+ themeClass() {
+ return getThemeClasses(this.theme);
+ }
+ }
+};
+var __vue2_script$5 = {
+ name: "VPopperContent",
+ components: {
+ ResizeObserver: __vue_component__
+ },
+ mixins: [
+ PrivateThemeClass
+ ],
+ props: {
+ popperId: String,
+ theme: String,
+ shown: Boolean,
+ mounted: Boolean,
+ skipTransition: Boolean,
+ autoHide: Boolean,
+ handleResize: Boolean,
+ classes: Object,
+ result: Object
+ },
+ methods: {
+ toPx(value) {
+ if (value != null && !isNaN(value)) {
+ return `${value}px`;
+ }
+ return null;
+ }
+ }
+};
+var render$2 = function() {
+ var _vm = this;
+ var _h = _vm.$createElement;
+ var _c = _vm._self._c || _h;
+ return _c("div", { ref: "popover", staticClass: "v-popper__popper", class: [
+ _vm.themeClass,
+ _vm.classes.popperClass,
+ {
+ "v-popper__popper--shown": _vm.shown,
+ "v-popper__popper--hidden": !_vm.shown,
+ "v-popper__popper--show-from": _vm.classes.showFrom,
+ "v-popper__popper--show-to": _vm.classes.showTo,
+ "v-popper__popper--hide-from": _vm.classes.hideFrom,
+ "v-popper__popper--hide-to": _vm.classes.hideTo,
+ "v-popper__popper--skip-transition": _vm.skipTransition,
+ "v-popper__popper--arrow-overflow": _vm.result && _vm.result.arrow.overflow,
+ "v-popper__popper--no-positioning": !_vm.result
+ }
+ ], style: _vm.result ? {
+ position: _vm.result.strategy,
+ transform: "translate3d(" + Math.round(_vm.result.x) + "px," + Math.round(_vm.result.y) + "px,0)"
+ } : void 0, attrs: { "id": _vm.popperId, "aria-hidden": _vm.shown ? "false" : "true", "tabindex": _vm.autoHide ? 0 : void 0, "data-popper-placement": _vm.result ? _vm.result.placement : void 0 }, on: { "keyup": function($event) {
+ if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"])) {
+ return null;
+ }
+ _vm.autoHide && _vm.$emit("hide");
+ } } }, [_c("div", { staticClass: "v-popper__backdrop", on: { "click": function($event) {
+ _vm.autoHide && _vm.$emit("hide");
+ } } }), _c("div", { staticClass: "v-popper__wrapper", style: _vm.result ? {
+ transformOrigin: _vm.result.transformOrigin
+ } : void 0 }, [_c("div", { ref: "inner", staticClass: "v-popper__inner" }, [_vm.mounted ? [_c("div", [_vm._t("default")], 2), _vm.handleResize ? _c("ResizeObserver", { on: { "notify": function($event) {
+ return _vm.$emit("resize", $event);
+ } } }) : _vm._e()] : _vm._e()], 2), _c("div", { ref: "arrow", staticClass: "v-popper__arrow-container", style: _vm.result ? {
+ left: _vm.toPx(_vm.result.arrow.x),
+ top: _vm.toPx(_vm.result.arrow.y)
+ } : void 0 }, [_c("div", { staticClass: "v-popper__arrow-outer" }), _c("div", { staticClass: "v-popper__arrow-inner" })])])]);
+};
+var staticRenderFns$2 = [];
+var PopperContent_vue_vue_type_style_index_0_lang = "";
+function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
+ var options2 = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
+ if (render2) {
+ options2.render = render2;
+ options2.staticRenderFns = staticRenderFns2;
+ options2._compiled = true;
+ }
+ if (functionalTemplate) {
+ options2.functional = true;
+ }
+ if (scopeId) {
+ options2._scopeId = "data-v-" + scopeId;
+ }
+ var hook;
+ if (moduleIdentifier) {
+ hook = function(context) {
+ context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
+ context = __VUE_SSR_CONTEXT__;
+ }
+ if (injectStyles) {
+ injectStyles.call(this, context);
+ }
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier);
+ }
+ };
+ options2._ssrRegister = hook;
+ } else if (injectStyles) {
+ hook = shadowMode ? function() {
+ injectStyles.call(this, (options2.functional ? this.parent : this).$root.$options.shadowRoot);
+ } : injectStyles;
+ }
+ if (hook) {
+ if (options2.functional) {
+ options2._injectStyles = hook;
+ var originalRender = options2.render;
+ options2.render = function renderWithStyleInjection(h, context) {
+ hook.call(context);
+ return originalRender(h, context);
+ };
+ } else {
+ var existing = options2.beforeCreate;
+ options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];
+ }
+ }
+ return {
+ exports: scriptExports,
+ options: options2
+ };
+}
+const __cssModules$5 = {};
+var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$2, staticRenderFns$2, false, __vue2_injectStyles$5, null, null, null);
+function __vue2_injectStyles$5(context) {
+ for (let o in __cssModules$5) {
+ this[o] = __cssModules$5[o];
+ }
+}
+var PrivatePopperContent = /* @__PURE__ */ function() {
+ return __component__$5.exports;
+}();
+var PrivatePopperMethods = {
+ methods: {
+ show(...args) {
+ return this.$refs.popper.show(...args);
+ },
+ hide(...args) {
+ return this.$refs.popper.hide(...args);
+ },
+ dispose(...args) {
+ return this.$refs.popper.dispose(...args);
+ },
+ onResize(...args) {
+ return this.$refs.popper.onResize(...args);
+ }
+ }
+};
+var __vue2_script$4 = {
+ name: "VPopperWrapper",
+ components: {
+ Popper: PrivatePopper(),
+ PopperContent: PrivatePopperContent
+ },
+ mixins: [
+ PrivatePopperMethods,
+ PrivateThemeClass
+ ],
+ inheritAttrs: false,
+ props: {
+ theme: {
+ type: String,
+ default() {
+ return this.$options.vPopperTheme;
+ }
+ }
+ },
+ methods: {
+ getTargetNodes() {
+ return Array.from(this.$refs.reference.children).filter((node) => node !== this.$refs.popperContent.$el);
+ }
+ }
+};
+var render$1 = function() {
+ var _vm = this;
+ var _h = _vm.$createElement;
+ var _c = _vm._self._c || _h;
+ return _c("Popper", _vm._g(_vm._b({ ref: "popper", attrs: { "theme": _vm.theme, "target-nodes": _vm.getTargetNodes, "reference-node": function() {
+ return _vm.$refs.reference;
+ }, "popper-node": function() {
+ return _vm.$refs.popperContent.$el;
+ } }, scopedSlots: _vm._u([{ key: "default", fn: function(ref) {
+ var popperId = ref.popperId;
+ var isShown = ref.isShown;
+ var shouldMountContent = ref.shouldMountContent;
+ var skipTransition = ref.skipTransition;
+ var autoHide = ref.autoHide;
+ var show = ref.show;
+ var hide = ref.hide;
+ var handleResize = ref.handleResize;
+ var onResize = ref.onResize;
+ var classes = ref.classes;
+ var result = ref.result;
+ return [_c("div", { ref: "reference", staticClass: "v-popper", class: [
+ _vm.themeClass,
+ {
+ "v-popper--shown": isShown
+ }
+ ] }, [_vm._t("default", null, { "shown": isShown, "show": show, "hide": hide }), _c("PopperContent", { ref: "popperContent", attrs: { "popper-id": popperId, "theme": _vm.theme, "shown": isShown, "mounted": shouldMountContent, "skip-transition": skipTransition, "auto-hide": autoHide, "handle-resize": handleResize, "classes": classes, "result": result }, on: { "hide": hide, "resize": onResize } }, [_vm._t("popper", null, { "shown": isShown, "hide": hide })], 2)], 2)];
+ } }], null, true) }, "Popper", _vm.$attrs, false), _vm.$listeners));
+};
+var staticRenderFns$1 = [];
+const __cssModules$4 = {};
+var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$1, staticRenderFns$1, false, __vue2_injectStyles$4, null, null, null);
+function __vue2_injectStyles$4(context) {
+ for (let o in __cssModules$4) {
+ this[o] = __cssModules$4[o];
+ }
+}
+var PrivatePopperWrapper = /* @__PURE__ */ function() {
+ return __component__$4.exports;
+}();
+var __vue2_script$3 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {
+ name: "VDropdown",
+ vPopperTheme: "dropdown"
+});
+var Dropdown_vue_vue_type_style_index_0_lang = "";
+let __vue2_render$2, __vue2_staticRenderFns$2;
+const __cssModules$3 = {};
+var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, __vue2_render$2, __vue2_staticRenderFns$2, false, __vue2_injectStyles$3, null, null, null);
+function __vue2_injectStyles$3(context) {
+ for (let o in __cssModules$3) {
+ this[o] = __cssModules$3[o];
+ }
+}
+var PrivateDropdown = /* @__PURE__ */ function() {
+ return __component__$3.exports;
+}();
+var __vue2_script$2 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {
+ name: "VMenu",
+ vPopperTheme: "menu"
+});
+let __vue2_render$1, __vue2_staticRenderFns$1;
+const __cssModules$2 = {};
+var __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, __vue2_render$1, __vue2_staticRenderFns$1, false, __vue2_injectStyles$2, null, null, null);
+function __vue2_injectStyles$2(context) {
+ for (let o in __cssModules$2) {
+ this[o] = __cssModules$2[o];
+ }
+}
+var PrivateMenu = /* @__PURE__ */ function() {
+ return __component__$2.exports;
+}();
+var __vue2_script$1 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {
+ name: "VTooltip",
+ vPopperTheme: "tooltip"
+});
+var Tooltip_vue_vue_type_style_index_0_lang = "";
+let __vue2_render, __vue2_staticRenderFns;
+const __cssModules$1 = {};
+var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);
+function __vue2_injectStyles$1(context) {
+ for (let o in __cssModules$1) {
+ this[o] = __cssModules$1[o];
+ }
+}
+var PrivateTooltip = /* @__PURE__ */ function() {
+ return __component__$1.exports;
+}();
+var __vue2_script = {
+ name: "VTooltipDirective",
+ components: {
+ Popper: PrivatePopper(),
+ PopperContent: PrivatePopperContent
+ },
+ mixins: [
+ PrivatePopperMethods
+ ],
+ inheritAttrs: false,
+ props: {
+ theme: {
+ type: String,
+ default: "tooltip"
+ },
+ html: {
+ type: Boolean,
+ default() {
+ return getDefaultConfig(this.theme, "html");
+ }
+ },
+ content: {
+ type: [String, Number, Function],
+ default: null
+ },
+ loadingContent: {
+ type: String,
+ default() {
+ return getDefaultConfig(this.theme, "loadingContent");
+ }
+ }
+ },
+ data() {
+ return {
+ asyncContent: null
+ };
+ },
+ computed: {
+ isContentAsync() {
+ return typeof this.content === "function";
+ },
+ loading() {
+ return this.isContentAsync && this.asyncContent == null;
+ },
+ finalContent() {
+ if (this.isContentAsync) {
+ return this.loading ? this.loadingContent : this.asyncContent;
+ }
+ return this.content;
+ }
+ },
+ watch: {
+ content: {
+ handler() {
+ this.fetchContent(true);
+ },
+ immediate: true
+ },
+ async finalContent(value) {
+ await this.$nextTick();
+ this.$refs.popper.onResize();
+ }
+ },
+ created() {
+ this.$_fetchId = 0;
+ },
+ methods: {
+ fetchContent(force) {
+ if (typeof this.content === "function" && this.$_isShown && (force || !this.$_loading && this.asyncContent == null)) {
+ this.asyncContent = null;
+ this.$_loading = true;
+ const fetchId = ++this.$_fetchId;
+ const result = this.content(this);
+ if (result.then) {
+ result.then((res) => this.onResult(fetchId, res));
+ } else {
+ this.onResult(fetchId, result);
+ }
+ }
+ },
+ onResult(fetchId, result) {
+ if (fetchId !== this.$_fetchId)
+ return;
+ this.$_loading = false;
+ this.asyncContent = result;
+ },
+ onShow() {
+ this.$_isShown = true;
+ this.fetchContent();
+ },
+ onHide() {
+ this.$_isShown = false;
+ }
+ }
+};
+var render = function() {
+ var _vm = this;
+ var _h = _vm.$createElement;
+ var _c = _vm._self._c || _h;
+ return _c("Popper", _vm._g(_vm._b({ ref: "popper", attrs: { "theme": _vm.theme, "popper-node": function() {
+ return _vm.$refs.popperContent.$el;
+ } }, on: { "apply-show": _vm.onShow, "apply-hide": _vm.onHide }, scopedSlots: _vm._u([{ key: "default", fn: function(ref) {
+ var popperId = ref.popperId;
+ var isShown = ref.isShown;
+ var shouldMountContent = ref.shouldMountContent;
+ var skipTransition = ref.skipTransition;
+ var autoHide = ref.autoHide;
+ var hide = ref.hide;
+ var handleResize = ref.handleResize;
+ var onResize = ref.onResize;
+ var classes = ref.classes;
+ var result = ref.result;
+ return [_c("PopperContent", { ref: "popperContent", class: {
+ "v-popper--tooltip-loading": _vm.loading
+ }, attrs: { "popper-id": popperId, "theme": _vm.theme, "shown": isShown, "mounted": shouldMountContent, "skip-transition": skipTransition, "auto-hide": autoHide, "handle-resize": handleResize, "classes": classes, "result": result }, on: { "hide": hide, "resize": onResize } }, [_vm.html ? _c("div", { domProps: { "innerHTML": _vm._s(_vm.finalContent) } }) : _c("div", { domProps: { "textContent": _vm._s(_vm.finalContent) } })])];
+ } }]) }, "Popper", _vm.$attrs, false), _vm.$listeners));
+};
+var staticRenderFns = [];
+const __cssModules = {};
+var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);
+function __vue2_injectStyles(context) {
+ for (let o in __cssModules) {
+ this[o] = __cssModules[o];
+ }
+}
+var PrivateTooltipDirective = /* @__PURE__ */ function() {
+ return __component__.exports;
+}();
+const TARGET_CLASS = "v-popper--has-tooltip";
+function getPlacement(options2, modifiers) {
+ let result = options2.placement;
+ if (!result && modifiers) {
+ for (const pos of placements) {
+ if (modifiers[pos]) {
+ result = pos;
+ }
+ }
+ }
+ if (!result) {
+ result = getDefaultConfig(options2.theme || "tooltip", "placement");
+ }
+ return result;
+}
+function getOptions(el, value, modifiers) {
+ let options2;
+ const type = typeof value;
+ if (type === "string") {
+ options2 = { content: value };
+ } else if (value && type === "object") {
+ options2 = value;
+ } else {
+ options2 = { content: false };
+ }
+ options2.placement = getPlacement(options2, modifiers);
+ options2.targetNodes = () => [el];
+ options2.referenceNode = () => el;
+ return options2;
+}
+function createTooltip(el, value, modifiers) {
+ const options2 = getOptions(el, value, modifiers);
+ const tooltipApp = el.$_popper = new vue__WEBPACK_IMPORTED_MODULE_2__["default"]({
+ mixins: [
+ PrivatePopperMethods
+ ],
+ data() {
+ return {
+ options: options2
+ };
+ },
+ render(h) {
+ const _a = this.options, {
+ theme,
+ html,
+ content,
+ loadingContent
+ } = _a, otherOptions = __objRest(_a, [
+ "theme",
+ "html",
+ "content",
+ "loadingContent"
+ ]);
+ return h(PrivateTooltipDirective, {
+ props: {
+ theme,
+ html,
+ content,
+ loadingContent
+ },
+ attrs: otherOptions,
+ ref: "popper"
+ });
+ },
+ devtools: {
+ hide: true
+ }
+ });
+ const mountTarget = document.createElement("div");
+ document.body.appendChild(mountTarget);
+ tooltipApp.$mount(mountTarget);
+ if (el.classList) {
+ el.classList.add(TARGET_CLASS);
+ }
+ return tooltipApp;
+}
+function destroyTooltip(el) {
+ if (el.$_popper) {
+ el.$_popper.$destroy();
+ delete el.$_popper;
+ delete el.$_popperOldShown;
+ }
+ if (el.classList) {
+ el.classList.remove(TARGET_CLASS);
+ }
+}
+function bind(el, { value, oldValue, modifiers }) {
+ const options2 = getOptions(el, value, modifiers);
+ if (!options2.content || getDefaultConfig(options2.theme || "tooltip", "disabled")) {
+ destroyTooltip(el);
+ } else {
+ let tooltipApp;
+ if (el.$_popper) {
+ tooltipApp = el.$_popper;
+ tooltipApp.options = options2;
+ } else {
+ tooltipApp = createTooltip(el, value, modifiers);
+ }
+ if (typeof value.shown !== "undefined" && value.shown !== el.$_popperOldShown) {
+ el.$_popperOldShown = value.shown;
+ value.shown ? tooltipApp.show() : tooltipApp.hide();
+ }
+ }
+}
+var PrivateVTooltip = {
+ bind,
+ update: bind,
+ unbind(el) {
+ destroyTooltip(el);
+ }
+};
+function addListeners(el) {
+ el.addEventListener("click", onClick);
+ el.addEventListener("touchstart", onTouchStart, supportsPassive ? {
+ passive: true
+ } : false);
+}
+function removeListeners(el) {
+ el.removeEventListener("click", onClick);
+ el.removeEventListener("touchstart", onTouchStart);
+ el.removeEventListener("touchend", onTouchEnd);
+ el.removeEventListener("touchcancel", onTouchCancel);
+}
+function onClick(event) {
+ const el = event.currentTarget;
+ event.closePopover = !el.$_vclosepopover_touch;
+ event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;
+}
+function onTouchStart(event) {
+ if (event.changedTouches.length === 1) {
+ const el = event.currentTarget;
+ el.$_vclosepopover_touch = true;
+ const touch = event.changedTouches[0];
+ el.$_vclosepopover_touchPoint = touch;
+ el.addEventListener("touchend", onTouchEnd);
+ el.addEventListener("touchcancel", onTouchCancel);
+ }
+}
+function onTouchEnd(event) {
+ const el = event.currentTarget;
+ el.$_vclosepopover_touch = false;
+ if (event.changedTouches.length === 1) {
+ const touch = event.changedTouches[0];
+ const firstTouch = el.$_vclosepopover_touchPoint;
+ event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;
+ event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;
+ }
+}
+function onTouchCancel(event) {
+ const el = event.currentTarget;
+ el.$_vclosepopover_touch = false;
+}
+var PrivateVClosePopper = {
+ bind(el, { value, modifiers }) {
+ el.$_closePopoverModifiers = modifiers;
+ if (typeof value === "undefined" || value) {
+ addListeners(el);
+ }
+ },
+ update(el, { value, oldValue, modifiers }) {
+ el.$_closePopoverModifiers = modifiers;
+ if (value !== oldValue) {
+ if (typeof value === "undefined" || value) {
+ addListeners(el);
+ } else {
+ removeListeners(el);
+ }
+ }
+ },
+ unbind(el) {
+ removeListeners(el);
+ }
+};
+const options = config;
+const VTooltip = PrivateVTooltip;
+const VClosePopper = PrivateVClosePopper;
+const Dropdown = PrivateDropdown;
+const Menu = PrivateMenu;
+const Popper = PrivatePopper;
+const PopperContent = PrivatePopperContent;
+const PopperMethods = PrivatePopperMethods;
+const PopperWrapper = PrivatePopperWrapper;
+const ThemeClass = PrivateThemeClass;
+const Tooltip = PrivateTooltip;
+const TooltipDirective = PrivateTooltipDirective;
+function install(app, options2 = {}) {
+ if (app.$_vTooltipInstalled)
+ return;
+ app.$_vTooltipInstalled = true;
+ assign(config, options2);
+ app.directive("tooltip", PrivateVTooltip);
+ app.directive("close-popper", PrivateVClosePopper);
+ app.component("v-tooltip", PrivateTooltip);
+ app.component("VTooltip", PrivateTooltip);
+ app.component("v-dropdown", PrivateDropdown);
+ app.component("VDropdown", PrivateDropdown);
+ app.component("v-menu", PrivateMenu);
+ app.component("VMenu", PrivateMenu);
+}
+const plugin = {
+ version: "1.0.0-beta.19",
+ install,
+ options: config
+};
+let GlobalVue = null;
+if (typeof window !== "undefined") {
+ GlobalVue = window.Vue;
+} else if (typeof __webpack_require__.g !== "undefined") {
+ GlobalVue = __webpack_require__.g.Vue;
+}
+if (GlobalVue) {
+ GlobalVue.use(plugin);
+}
+
+
+
+/***/ }),
+
+/***/ "./node_modules/lodash.get/index.js":
+/*!******************************************!*\
+ !*** ./node_modules/lodash.get/index.js ***!
+ \******************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as the `TypeError` message for "Functions" methods. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/** Used to stand-in for `undefined` hash values. */
+var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
+
+/** Used to match property names within property paths. */
+var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
+ reIsPlainProp = /^\w*$/,
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+
+/**
+ * Used to match `RegExp`
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
+ */
+var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+
+/** Used to match backslashes in property paths. */
+var reEscapeChar = /\\(\\)?/g;
+
+/** Used to detect host constructors (Safari). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
+
+/** Detect free variable `self`. */
+var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+/** Used as a reference to the global object. */
+var root = freeGlobal || freeSelf || Function('return this')();
+
+/**
+ * Gets the value at `key` of `object`.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {string} key The key of the property to get.
+ * @returns {*} Returns the property value.
+ */
+function getValue(object, key) {
+ return object == null ? undefined : object[key];
+}
+
+/**
+ * Checks if `value` is a host object in IE < 9.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
+ */
+function isHostObject(value) {
+ // Many host objects are `Object` objects that can coerce to strings
+ // despite having improperly defined `toString` methods.
+ var result = false;
+ if (value != null && typeof value.toString != 'function') {
+ try {
+ result = !!(value + '');
+ } catch (e) {}
+ }
+ return result;
+}
+
+/** Used for built-in method references. */
+var arrayProto = Array.prototype,
+ funcProto = Function.prototype,
+ objectProto = Object.prototype;
+
+/** Used to detect overreaching core-js shims. */
+var coreJsData = root['__core-js_shared__'];
+
+/** Used to detect methods masquerading as native. */
+var maskSrcKey = (function() {
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
+ return uid ? ('Symbol(src)_1.' + uid) : '';
+}());
+
+/** Used to resolve the decompiled source of functions. */
+var funcToString = funcProto.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/** Built-in value references. */
+var Symbol = root.Symbol,
+ splice = arrayProto.splice;
+
+/* Built-in method references that are verified to be native. */
+var Map = getNative(root, 'Map'),
+ nativeCreate = getNative(Object, 'create');
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * Creates a hash object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function Hash(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the hash.
+ *
+ * @private
+ * @name clear
+ * @memberOf Hash
+ */
+function hashClear() {
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
+}
+
+/**
+ * Removes `key` and its value from the hash.
+ *
+ * @private
+ * @name delete
+ * @memberOf Hash
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function hashDelete(key) {
+ return this.has(key) && delete this.__data__[key];
+}
+
+/**
+ * Gets the hash value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Hash
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function hashGet(key) {
+ var data = this.__data__;
+ if (nativeCreate) {
+ var result = data[key];
+ return result === HASH_UNDEFINED ? undefined : result;
+ }
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
+}
+
+/**
+ * Checks if a hash value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Hash
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function hashHas(key) {
+ var data = this.__data__;
+ return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
+}
+
+/**
+ * Sets the hash `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Hash
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the hash instance.
+ */
+function hashSet(key, value) {
+ var data = this.__data__;
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
+ return this;
+}
+
+// Add methods to `Hash`.
+Hash.prototype.clear = hashClear;
+Hash.prototype['delete'] = hashDelete;
+Hash.prototype.get = hashGet;
+Hash.prototype.has = hashHas;
+Hash.prototype.set = hashSet;
+
+/**
+ * Creates an list cache object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function ListCache(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the list cache.
+ *
+ * @private
+ * @name clear
+ * @memberOf ListCache
+ */
+function listCacheClear() {
+ this.__data__ = [];
+}
+
+/**
+ * Removes `key` and its value from the list cache.
+ *
+ * @private
+ * @name delete
+ * @memberOf ListCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function listCacheDelete(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data.length - 1;
+ if (index == lastIndex) {
+ data.pop();
+ } else {
+ splice.call(data, index, 1);
+ }
+ return true;
+}
+
+/**
+ * Gets the list cache value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf ListCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function listCacheGet(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ return index < 0 ? undefined : data[index][1];
+}
+
+/**
+ * Checks if a list cache value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf ListCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function listCacheHas(key) {
+ return assocIndexOf(this.__data__, key) > -1;
+}
+
+/**
+ * Sets the list cache `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf ListCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the list cache instance.
+ */
+function listCacheSet(key, value) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ data.push([key, value]);
+ } else {
+ data[index][1] = value;
+ }
+ return this;
+}
+
+// Add methods to `ListCache`.
+ListCache.prototype.clear = listCacheClear;
+ListCache.prototype['delete'] = listCacheDelete;
+ListCache.prototype.get = listCacheGet;
+ListCache.prototype.has = listCacheHas;
+ListCache.prototype.set = listCacheSet;
+
+/**
+ * Creates a map cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function MapCache(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the map.
+ *
+ * @private
+ * @name clear
+ * @memberOf MapCache
+ */
+function mapCacheClear() {
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': new (Map || ListCache),
+ 'string': new Hash
+ };
+}
+
+/**
+ * Removes `key` and its value from the map.
+ *
+ * @private
+ * @name delete
+ * @memberOf MapCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function mapCacheDelete(key) {
+ return getMapData(this, key)['delete'](key);
+}
+
+/**
+ * Gets the map value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf MapCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function mapCacheGet(key) {
+ return getMapData(this, key).get(key);
+}
+
+/**
+ * Checks if a map value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf MapCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function mapCacheHas(key) {
+ return getMapData(this, key).has(key);
+}
+
+/**
+ * Sets the map `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf MapCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the map cache instance.
+ */
+function mapCacheSet(key, value) {
+ getMapData(this, key).set(key, value);
+ return this;
+}
+
+// Add methods to `MapCache`.
+MapCache.prototype.clear = mapCacheClear;
+MapCache.prototype['delete'] = mapCacheDelete;
+MapCache.prototype.get = mapCacheGet;
+MapCache.prototype.has = mapCacheHas;
+MapCache.prototype.set = mapCacheSet;
+
+/**
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} key The key to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+}
+
+/**
+ * The base implementation of `_.get` without support for default values.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to get.
+ * @returns {*} Returns the resolved value.
+ */
+function baseGet(object, path) {
+ path = isKey(path, object) ? [path] : castPath(path);
+
+ var index = 0,
+ length = path.length;
+
+ while (object != null && index < length) {
+ object = object[toKey(path[index++])];
+ }
+ return (index && index == length) ? object : undefined;
+}
+
+/**
+ * The base implementation of `_.isNative` without bad shim checks.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
+ */
+function baseIsNative(value) {
+ if (!isObject(value) || isMasked(value)) {
+ return false;
+ }
+ var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource(value));
+}
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Casts `value` to a path array if it's not one.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @returns {Array} Returns the cast property path array.
+ */
+function castPath(value) {
+ return isArray(value) ? value : stringToPath(value);
+}
+
+/**
+ * Gets the data for `map`.
+ *
+ * @private
+ * @param {Object} map The map to query.
+ * @param {string} key The reference key.
+ * @returns {*} Returns the map data.
+ */
+function getMapData(map, key) {
+ var data = map.__data__;
+ return isKeyable(key)
+ ? data[typeof key == 'string' ? 'string' : 'hash']
+ : data.map;
+}
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = getValue(object, key);
+ return baseIsNative(value) ? value : undefined;
+}
+
+/**
+ * Checks if `value` is a property name and not a property path.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
+ */
+function isKey(value, object) {
+ if (isArray(value)) {
+ return false;
+ }
+ var type = typeof value;
+ if (type == 'number' || type == 'symbol' || type == 'boolean' ||
+ value == null || isSymbol(value)) {
+ return true;
+ }
+ return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
+ (object != null && value in Object(object));
+}
+
+/**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+function isKeyable(value) {
+ var type = typeof value;
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
+ ? (value !== '__proto__')
+ : (value === null);
+}
+
+/**
+ * Checks if `func` has its source masked.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
+ */
+function isMasked(func) {
+ return !!maskSrcKey && (maskSrcKey in func);
+}
+
+/**
+ * Converts `string` to a property path array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the property path array.
+ */
+var stringToPath = memoize(function(string) {
+ string = toString(string);
+
+ var result = [];
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
+ result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
+ });
+ return result;
+});
+
+/**
+ * Converts `value` to a string key if it's not a string or symbol.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @returns {string|symbol} Returns the key.
+ */
+function toKey(value) {
+ if (typeof value == 'string' || isSymbol(value)) {
+ return value;
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Converts `func` to its source code.
+ *
+ * @private
+ * @param {Function} func The function to process.
+ * @returns {string} Returns the source code.
+ */
+function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString.call(func);
+ } catch (e) {}
+ try {
+ return (func + '');
+ } catch (e) {}
+ }
+ return '';
+}
+
+/**
+ * Creates a function that memoizes the result of `func`. If `resolver` is
+ * provided, it determines the cache key for storing the result based on the
+ * arguments provided to the memoized function. By default, the first argument
+ * provided to the memoized function is used as the map cache key. The `func`
+ * is invoked with the `this` binding of the memoized function.
+ *
+ * **Note:** The cache is exposed as the `cache` property on the memoized
+ * function. Its creation may be customized by replacing the `_.memoize.Cache`
+ * constructor with one whose instances implement the
+ * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
+ * method interface of `delete`, `get`, `has`, and `set`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to have its output memoized.
+ * @param {Function} [resolver] The function to resolve the cache key.
+ * @returns {Function} Returns the new memoized function.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2 };
+ * var other = { 'c': 3, 'd': 4 };
+ *
+ * var values = _.memoize(_.values);
+ * values(object);
+ * // => [1, 2]
+ *
+ * values(other);
+ * // => [3, 4]
+ *
+ * object.a = 2;
+ * values(object);
+ * // => [1, 2]
+ *
+ * // Modify the result cache.
+ * values.cache.set(object, ['a', 'b']);
+ * values(object);
+ * // => ['a', 'b']
+ *
+ * // Replace `_.memoize.Cache`.
+ * _.memoize.Cache = WeakMap;
+ */
+function memoize(func, resolver) {
+ if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ var memoized = function() {
+ var args = arguments,
+ key = resolver ? resolver.apply(this, args) : args[0],
+ cache = memoized.cache;
+
+ if (cache.has(key)) {
+ return cache.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache.set(key, result);
+ return result;
+ };
+ memoized.cache = new (memoize.Cache || MapCache);
+ return memoized;
+}
+
+// Assign cache to `_.memoize`.
+memoize.Cache = MapCache;
+
+/**
+ * Performs a
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * comparison between two values to determine if they are equivalent.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1 };
+ * var other = { 'a': 1 };
+ *
+ * _.eq(object, object);
+ * // => true
+ *
+ * _.eq(object, other);
+ * // => false
+ *
+ * _.eq('a', 'a');
+ * // => true
+ *
+ * _.eq('a', Object('a'));
+ * // => false
+ *
+ * _.eq(NaN, NaN);
+ * // => true
+ */
+function eq(value, other) {
+ return value === other || (value !== value && other !== other);
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+var isArray = Array.isArray;
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string. An empty string is returned for `null`
+ * and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ return value == null ? '' : baseToString(value);
+}
+
+/**
+ * Gets the value at `path` of `object`. If the resolved value is
+ * `undefined`, the `defaultValue` is returned in its place.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.7.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to get.
+ * @param {*} [defaultValue] The value returned for `undefined` resolved values.
+ * @returns {*} Returns the resolved value.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.get(object, 'a[0].b.c');
+ * // => 3
+ *
+ * _.get(object, ['a', '0', 'b', 'c']);
+ * // => 3
+ *
+ * _.get(object, 'a.b.c', 'default');
+ * // => 'default'
+ */
+function get(object, path, defaultValue) {
+ var result = object == null ? undefined : baseGet(object, path);
+ return result === undefined ? defaultValue : result;
+}
+
+module.exports = get;
+
+
+/***/ }),
+
+/***/ "./node_modules/node-gettext/lib/gettext.js":
+/*!**************************************************!*\
+ !*** ./node_modules/node-gettext/lib/gettext.js ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var get = __webpack_require__(/*! lodash.get */ "./node_modules/lodash.get/index.js");
+var plurals = __webpack_require__(/*! ./plurals */ "./node_modules/node-gettext/lib/plurals.js");
+
+module.exports = Gettext;
+
+/**
+ * Creates and returns a new Gettext instance.
+ *
+ * @constructor
+ * @param {Object} [options] A set of options
+ * @param {String} options.sourceLocale The locale that the source code and its
+ * texts are written in. Translations for
+ * this locale is not necessary.
+ * @param {Boolean} options.debug Whether to output debug info into the
+ * console.
+ * @return {Object} A Gettext instance
+ */
+function Gettext(options) {
+ options = options || {};
+
+ this.catalogs = {};
+ this.locale = '';
+ this.domain = 'messages';
+
+ this.listeners = [];
+
+ // Set source locale
+ this.sourceLocale = '';
+ if (options.sourceLocale) {
+ if (typeof options.sourceLocale === 'string') {
+ this.sourceLocale = options.sourceLocale;
+ }
+ else {
+ this.warn('The `sourceLocale` option should be a string');
+ }
+ }
+
+ // Set debug flag
+ this.debug = 'debug' in options && options.debug === true;
+}
+
+/**
+ * Adds an event listener.
+ *
+ * @param {String} eventName An event name
+ * @param {Function} callback An event handler function
+ */
+Gettext.prototype.on = function(eventName, callback) {
+ this.listeners.push({
+ eventName: eventName,
+ callback: callback
+ });
+};
+
+/**
+ * Removes an event listener.
+ *
+ * @param {String} eventName An event name
+ * @param {Function} callback A previously registered event handler function
+ */
+Gettext.prototype.off = function(eventName, callback) {
+ this.listeners = this.listeners.filter(function(listener) {
+ return (
+ listener.eventName === eventName &&
+ listener.callback === callback
+ ) === false;
+ });
+};
+
+/**
+ * Emits an event to all registered event listener.
+ *
+ * @private
+ * @param {String} eventName An event name
+ * @param {any} eventData Data to pass to event listeners
+ */
+Gettext.prototype.emit = function(eventName, eventData) {
+ for (var i = 0; i < this.listeners.length; i++) {
+ var listener = this.listeners[i];
+ if (listener.eventName === eventName) {
+ listener.callback(eventData);
+ }
+ }
+};
+
+/**
+ * Logs a warning to the console if debug mode is enabled.
+ *
+ * @ignore
+ * @param {String} message A warning message
+ */
+Gettext.prototype.warn = function(message) {
+ if (this.debug) {
+ console.warn(message);
+ }
+
+ this.emit('error', new Error(message));
+};
+
+/**
+ * Stores a set of translations in the set of gettext
+ * catalogs.
+ *
+ * @example
+ * gt.addTranslations('sv-SE', 'messages', translationsObject)
+ *
+ * @param {String} locale A locale string
+ * @param {String} domain A domain name
+ * @param {Object} translations An object of gettext-parser JSON shape
+ */
+Gettext.prototype.addTranslations = function(locale, domain, translations) {
+ if (!this.catalogs[locale]) {
+ this.catalogs[locale] = {};
+ }
+
+ this.catalogs[locale][domain] = translations;
+};
+
+/**
+ * Sets the locale to get translated messages for.
+ *
+ * @example
+ * gt.setLocale('sv-SE')
+ *
+ * @param {String} locale A locale
+ */
+Gettext.prototype.setLocale = function(locale) {
+ if (typeof locale !== 'string') {
+ this.warn(
+ 'You called setLocale() with an argument of type ' + (typeof locale) + '. ' +
+ 'The locale must be a string.'
+ );
+ return;
+ }
+
+ if (locale.trim() === '') {
+ this.warn('You called setLocale() with an empty value, which makes little sense.');
+ }
+
+ if (locale !== this.sourceLocale && !this.catalogs[locale]) {
+ this.warn('You called setLocale() with "' + locale + '", but no translations for that locale has been added.');
+ }
+
+ this.locale = locale;
+};
+
+/**
+ * Sets the default gettext domain.
+ *
+ * @example
+ * gt.setTextDomain('domainname')
+ *
+ * @param {String} domain A gettext domain name
+ */
+Gettext.prototype.setTextDomain = function(domain) {
+ if (typeof domain !== 'string') {
+ this.warn(
+ 'You called setTextDomain() with an argument of type ' + (typeof domain) + '. ' +
+ 'The domain must be a string.'
+ );
+ return;
+ }
+
+ if (domain.trim() === '') {
+ this.warn('You called setTextDomain() with an empty `domain` value.');
+ }
+
+ this.domain = domain;
+};
+
+/**
+ * Translates a string using the default textdomain
+ *
+ * @example
+ * gt.gettext('Some text')
+ *
+ * @param {String} msgid String to be translated
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.gettext = function(msgid) {
+ return this.dnpgettext(this.domain, '', msgid);
+};
+
+/**
+ * Translates a string using a specific domain
+ *
+ * @example
+ * gt.dgettext('domainname', 'Some text')
+ *
+ * @param {String} domain A gettext domain name
+ * @param {String} msgid String to be translated
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.dgettext = function(domain, msgid) {
+ return this.dnpgettext(domain, '', msgid);
+};
+
+/**
+ * Translates a plural string using the default textdomain
+ *
+ * @example
+ * gt.ngettext('One thing', 'Many things', numberOfThings)
+ *
+ * @param {String} msgid String to be translated when count is not plural
+ * @param {String} msgidPlural String to be translated when count is plural
+ * @param {Number} count Number count for the plural
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.ngettext = function(msgid, msgidPlural, count) {
+ return this.dnpgettext(this.domain, '', msgid, msgidPlural, count);
+};
+
+/**
+ * Translates a plural string using a specific textdomain
+ *
+ * @example
+ * gt.dngettext('domainname', 'One thing', 'Many things', numberOfThings)
+ *
+ * @param {String} domain A gettext domain name
+ * @param {String} msgid String to be translated when count is not plural
+ * @param {String} msgidPlural String to be translated when count is plural
+ * @param {Number} count Number count for the plural
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.dngettext = function(domain, msgid, msgidPlural, count) {
+ return this.dnpgettext(domain, '', msgid, msgidPlural, count);
+};
+
+/**
+ * Translates a string from a specific context using the default textdomain
+ *
+ * @example
+ * gt.pgettext('sports', 'Back')
+ *
+ * @param {String} msgctxt Translation context
+ * @param {String} msgid String to be translated
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.pgettext = function(msgctxt, msgid) {
+ return this.dnpgettext(this.domain, msgctxt, msgid);
+};
+
+/**
+ * Translates a string from a specific context using s specific textdomain
+ *
+ * @example
+ * gt.dpgettext('domainname', 'sports', 'Back')
+ *
+ * @param {String} domain A gettext domain name
+ * @param {String} msgctxt Translation context
+ * @param {String} msgid String to be translated
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.dpgettext = function(domain, msgctxt, msgid) {
+ return this.dnpgettext(domain, msgctxt, msgid);
+};
+
+/**
+ * Translates a plural string from a specific context using the default textdomain
+ *
+ * @example
+ * gt.npgettext('sports', 'Back', '%d backs', numberOfBacks)
+ *
+ * @param {String} msgctxt Translation context
+ * @param {String} msgid String to be translated when count is not plural
+ * @param {String} msgidPlural String to be translated when count is plural
+ * @param {Number} count Number count for the plural
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.npgettext = function(msgctxt, msgid, msgidPlural, count) {
+ return this.dnpgettext(this.domain, msgctxt, msgid, msgidPlural, count);
+};
+
+/**
+ * Translates a plural string from a specifi context using a specific textdomain
+ *
+ * @example
+ * gt.dnpgettext('domainname', 'sports', 'Back', '%d backs', numberOfBacks)
+ *
+ * @param {String} domain A gettext domain name
+ * @param {String} msgctxt Translation context
+ * @param {String} msgid String to be translated
+ * @param {String} msgidPlural If no translation was found, return this on count!=1
+ * @param {Number} count Number count for the plural
+ * @return {String} Translation or the original string if no translation was found
+ */
+Gettext.prototype.dnpgettext = function(domain, msgctxt, msgid, msgidPlural, count) {
+ var defaultTranslation = msgid;
+ var translation;
+ var index;
+
+ msgctxt = msgctxt || '';
+
+ if (!isNaN(count) && count !== 1) {
+ defaultTranslation = msgidPlural || msgid;
+ }
+
+ translation = this._getTranslation(domain, msgctxt, msgid);
+
+ if (translation) {
+ if (typeof count === 'number') {
+ var pluralsFunc = plurals[Gettext.getLanguageCode(this.locale)].pluralsFunc;
+ index = pluralsFunc(count);
+ if (typeof index === 'boolean') {
+ index = index ? 1 : 0;
+ }
+ } else {
+ index = 0;
+ }
+
+ return translation.msgstr[index] || defaultTranslation;
+ }
+ else if (!this.sourceLocale || this.locale !== this.sourceLocale) {
+ this.warn('No translation was found for msgid "' + msgid + '" in msgctxt "' + msgctxt + '" and domain "' + domain + '"');
+ }
+
+ return defaultTranslation;
+};
+
+/**
+ * Retrieves comments object for a translation. The comments object
+ * has the shape `{ translator, extracted, reference, flag, previous }`.
+ *
+ * @example
+ * const comment = gt.getComment('domainname', 'sports', 'Backs')
+ *
+ * @private
+ * @param {String} domain A gettext domain name
+ * @param {String} msgctxt Translation context
+ * @param {String} msgid String to be translated
+ * @return {Object} Comments object or false if not found
+ */
+Gettext.prototype.getComment = function(domain, msgctxt, msgid) {
+ var translation;
+
+ translation = this._getTranslation(domain, msgctxt, msgid);
+ if (translation) {
+ return translation.comments || {};
+ }
+
+ return {};
+};
+
+/**
+ * Retrieves translation object from the domain and context
+ *
+ * @private
+ * @param {String} domain A gettext domain name
+ * @param {String} msgctxt Translation context
+ * @param {String} msgid String to be translated
+ * @return {Object} Translation object or false if not found
+ */
+Gettext.prototype._getTranslation = function(domain, msgctxt, msgid) {
+ msgctxt = msgctxt || '';
+
+ return get(this.catalogs, [this.locale, domain, 'translations', msgctxt, msgid]);
+};
+
+/**
+ * Returns the language code part of a locale
+ *
+ * @example
+ * Gettext.getLanguageCode('sv-SE')
+ * // -> "sv"
+ *
+ * @private
+ * @param {String} locale A case-insensitive locale string
+ * @returns {String} A language code
+ */
+Gettext.getLanguageCode = function(locale) {
+ return locale.split(/[\-_]/)[0].toLowerCase();
+};
+
+/* C-style aliases */
+
+/**
+ * C-style alias for [setTextDomain](#gettextsettextdomaindomain)
+ *
+ * @see Gettext#setTextDomain
+ */
+Gettext.prototype.textdomain = function(domain) {
+ if (this.debug) {
+ console.warn('textdomain(domain) was used to set locales in node-gettext v1. ' +
+ 'Make sure you are using it for domains, and switch to setLocale(locale) if you are not.\n\n ' +
+ 'To read more about the migration from node-gettext v1 to v2, ' +
+ 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x\n\n' +
+ 'This warning will be removed in the final 2.0.0');
+ }
+
+ this.setTextDomain(domain);
+};
+
+/**
+ * C-style alias for [setLocale](#gettextsetlocalelocale)
+ *
+ * @see Gettext#setLocale
+ */
+Gettext.prototype.setlocale = function(locale) {
+ this.setLocale(locale);
+};
+
+/* Deprecated functions */
+
+/**
+ * This function will be removed in the final 2.0.0 release.
+ *
+ * @deprecated
+ */
+Gettext.prototype.addTextdomain = function() {
+ console.error('addTextdomain() is deprecated.\n\n' +
+ '* To add translations, use addTranslations()\n' +
+ '* To set the default domain, use setTextDomain() (or its alias textdomain())\n' +
+ '\n' +
+ 'To read more about the migration from node-gettext v1 to v2, ' +
+ 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x');
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/node-gettext/lib/plurals.js":
+/*!**************************************************!*\
+ !*** ./node_modules/node-gettext/lib/plurals.js ***!
+ \**************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+module.exports = {
+ ach: {
+ name: 'Acholi',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ af: {
+ name: 'Afrikaans',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ak: {
+ name: 'Akan',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ am: {
+ name: 'Amharic',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ an: {
+ name: 'Aragonese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ar: {
+ name: 'Arabic',
+ examples: [{
+ plural: 0,
+ sample: 0
+ }, {
+ plural: 1,
+ sample: 1
+ }, {
+ plural: 2,
+ sample: 2
+ }, {
+ plural: 3,
+ sample: 3
+ }, {
+ plural: 4,
+ sample: 11
+ }, {
+ plural: 5,
+ sample: 100
+ }],
+ nplurals: 6,
+ pluralsText: 'nplurals = 6; plural = (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5)',
+ pluralsFunc: function(n) {
+ return (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);
+ }
+ },
+ arn: {
+ name: 'Mapudungun',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ ast: {
+ name: 'Asturian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ay: {
+ name: 'Aymará',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ az: {
+ name: 'Azerbaijani',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ be: {
+ name: 'Belarusian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ bg: {
+ name: 'Bulgarian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ bn: {
+ name: 'Bengali',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ bo: {
+ name: 'Tibetan',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ br: {
+ name: 'Breton',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ brx: {
+ name: 'Bodo',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ bs: {
+ name: 'Bosnian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ ca: {
+ name: 'Catalan',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ cgg: {
+ name: 'Chiga',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ cs: {
+ name: 'Czech',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);
+ }
+ },
+ csb: {
+ name: 'Kashubian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ cy: {
+ name: 'Welsh',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 3
+ }, {
+ plural: 3,
+ sample: 8
+ }],
+ nplurals: 4,
+ pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3);
+ }
+ },
+ da: {
+ name: 'Danish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ de: {
+ name: 'German',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ doi: {
+ name: 'Dogri',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ dz: {
+ name: 'Dzongkha',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ el: {
+ name: 'Greek',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ en: {
+ name: 'English',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ eo: {
+ name: 'Esperanto',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ es: {
+ name: 'Spanish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ et: {
+ name: 'Estonian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ eu: {
+ name: 'Basque',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ fa: {
+ name: 'Persian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ ff: {
+ name: 'Fulah',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ fi: {
+ name: 'Finnish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ fil: {
+ name: 'Filipino',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ fo: {
+ name: 'Faroese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ fr: {
+ name: 'French',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ fur: {
+ name: 'Friulian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ fy: {
+ name: 'Frisian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ga: {
+ name: 'Irish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 3
+ }, {
+ plural: 3,
+ sample: 7
+ }, {
+ plural: 4,
+ sample: 11
+ }],
+ nplurals: 5,
+ pluralsText: 'nplurals = 5; plural = (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);
+ }
+ },
+ gd: {
+ name: 'Scottish Gaelic',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 3
+ }, {
+ plural: 3,
+ sample: 20
+ }],
+ nplurals: 4,
+ pluralsText: 'nplurals = 4; plural = ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3)',
+ pluralsFunc: function(n) {
+ return ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3);
+ }
+ },
+ gl: {
+ name: 'Galician',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ gu: {
+ name: 'Gujarati',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ gun: {
+ name: 'Gun',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ ha: {
+ name: 'Hausa',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ he: {
+ name: 'Hebrew',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ hi: {
+ name: 'Hindi',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ hne: {
+ name: 'Chhattisgarhi',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ hr: {
+ name: 'Croatian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ hu: {
+ name: 'Hungarian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ hy: {
+ name: 'Armenian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ id: {
+ name: 'Indonesian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ is: {
+ name: 'Icelandic',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n % 10 !== 1 || n % 100 === 11)',
+ pluralsFunc: function(n) {
+ return (n % 10 !== 1 || n % 100 === 11);
+ }
+ },
+ it: {
+ name: 'Italian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ja: {
+ name: 'Japanese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ jbo: {
+ name: 'Lojban',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ jv: {
+ name: 'Javanese',
+ examples: [{
+ plural: 0,
+ sample: 0
+ }, {
+ plural: 1,
+ sample: 1
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 0)',
+ pluralsFunc: function(n) {
+ return (n !== 0);
+ }
+ },
+ ka: {
+ name: 'Georgian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ kk: {
+ name: 'Kazakh',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ km: {
+ name: 'Khmer',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ kn: {
+ name: 'Kannada',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ko: {
+ name: 'Korean',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ ku: {
+ name: 'Kurdish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ kw: {
+ name: 'Cornish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 3
+ }, {
+ plural: 3,
+ sample: 4
+ }],
+ nplurals: 4,
+ pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3);
+ }
+ },
+ ky: {
+ name: 'Kyrgyz',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ lb: {
+ name: 'Letzeburgesch',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ln: {
+ name: 'Lingala',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ lo: {
+ name: 'Lao',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ lt: {
+ name: 'Lithuanian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 10
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ lv: {
+ name: 'Latvian',
+ examples: [{
+ plural: 2,
+ sample: 0
+ }, {
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2);
+ }
+ },
+ mai: {
+ name: 'Maithili',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ mfe: {
+ name: 'Mauritian Creole',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ mg: {
+ name: 'Malagasy',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ mi: {
+ name: 'Maori',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ mk: {
+ name: 'Macedonian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n === 1 || n % 10 === 1 ? 0 : 1)',
+ pluralsFunc: function(n) {
+ return (n === 1 || n % 10 === 1 ? 0 : 1);
+ }
+ },
+ ml: {
+ name: 'Malayalam',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ mn: {
+ name: 'Mongolian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ mni: {
+ name: 'Manipuri',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ mnk: {
+ name: 'Mandinka',
+ examples: [{
+ plural: 0,
+ sample: 0
+ }, {
+ plural: 1,
+ sample: 1
+ }, {
+ plural: 2,
+ sample: 2
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n === 0 ? 0 : n === 1 ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n === 0 ? 0 : n === 1 ? 1 : 2);
+ }
+ },
+ mr: {
+ name: 'Marathi',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ms: {
+ name: 'Malay',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ mt: {
+ name: 'Maltese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 11
+ }, {
+ plural: 3,
+ sample: 20
+ }],
+ nplurals: 4,
+ pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 0 || ( n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20 ) ? 2 : 3)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : n === 0 || (n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20) ? 2 : 3);
+ }
+ },
+ my: {
+ name: 'Burmese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ nah: {
+ name: 'Nahuatl',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ nap: {
+ name: 'Neapolitan',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ nb: {
+ name: 'Norwegian Bokmal',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ne: {
+ name: 'Nepali',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ nl: {
+ name: 'Dutch',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ nn: {
+ name: 'Norwegian Nynorsk',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ no: {
+ name: 'Norwegian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ nso: {
+ name: 'Northern Sotho',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ oc: {
+ name: 'Occitan',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ or: {
+ name: 'Oriya',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ pa: {
+ name: 'Punjabi',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ pap: {
+ name: 'Papiamento',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ pl: {
+ name: 'Polish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ pms: {
+ name: 'Piemontese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ps: {
+ name: 'Pashto',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ pt: {
+ name: 'Portuguese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ rm: {
+ name: 'Romansh',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ro: {
+ name: 'Romanian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 20
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2);
+ }
+ },
+ ru: {
+ name: 'Russian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ rw: {
+ name: 'Kinyarwanda',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sah: {
+ name: 'Yakut',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ sat: {
+ name: 'Santali',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sco: {
+ name: 'Scots',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sd: {
+ name: 'Sindhi',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ se: {
+ name: 'Northern Sami',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ si: {
+ name: 'Sinhala',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sk: {
+ name: 'Slovak',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);
+ }
+ },
+ sl: {
+ name: 'Slovenian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 3
+ }, {
+ plural: 3,
+ sample: 5
+ }],
+ nplurals: 4,
+ pluralsText: 'nplurals = 4; plural = (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3)',
+ pluralsFunc: function(n) {
+ return (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3);
+ }
+ },
+ so: {
+ name: 'Somali',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ son: {
+ name: 'Songhay',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sq: {
+ name: 'Albanian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sr: {
+ name: 'Serbian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ su: {
+ name: 'Sundanese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ sv: {
+ name: 'Swedish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ sw: {
+ name: 'Swahili',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ ta: {
+ name: 'Tamil',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ te: {
+ name: 'Telugu',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ tg: {
+ name: 'Tajik',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ th: {
+ name: 'Thai',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ ti: {
+ name: 'Tigrinya',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ tk: {
+ name: 'Turkmen',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ tr: {
+ name: 'Turkish',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ tt: {
+ name: 'Tatar',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ ug: {
+ name: 'Uyghur',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ uk: {
+ name: 'Ukrainian',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }, {
+ plural: 2,
+ sample: 5
+ }],
+ nplurals: 3,
+ pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',
+ pluralsFunc: function(n) {
+ return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
+ }
+ },
+ ur: {
+ name: 'Urdu',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ uz: {
+ name: 'Uzbek',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ vi: {
+ name: 'Vietnamese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ wa: {
+ name: 'Walloon',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n > 1)',
+ pluralsFunc: function(n) {
+ return (n > 1);
+ }
+ },
+ wo: {
+ name: 'Wolof',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ },
+ yo: {
+ name: 'Yoruba',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }, {
+ plural: 1,
+ sample: 2
+ }],
+ nplurals: 2,
+ pluralsText: 'nplurals = 2; plural = (n !== 1)',
+ pluralsFunc: function(n) {
+ return (n !== 1);
+ }
+ },
+ zh: {
+ name: 'Chinese',
+ examples: [{
+ plural: 0,
+ sample: 1
+ }],
+ nplurals: 1,
+ pluralsText: 'nplurals = 1; plural = 0',
+ pluralsFunc: function() {
+ return 0;
+ }
+ }
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/process/browser.js":
+/*!*****************************************!*\
+ !*** ./node_modules/process/browser.js ***!
+ \*****************************************/
+/***/ ((module) => {
+
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
+}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
+
+
+}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
+
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
+ }
+}
+
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
+ }
+ }
+ queueIndex = -1;
+ len = queue.length;
+ }
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
+}
+
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+process.prependListener = noop;
+process.prependOnceListener = noop;
+
+process.listeners = function (name) { return [] }
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+
+/***/ }),
+
+/***/ "./node_modules/splitpanes/dist/splitpanes.es.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/splitpanes/dist/splitpanes.es.js ***!
+ \*******************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ Pane: () => (/* binding */ pane),
+/* harmony export */ Splitpanes: () => (/* binding */ splitpanes)
+/* harmony export */ });
+var __defProp = Object.defineProperty;
+var __defProps = Object.defineProperties;
+var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
+var __getOwnPropSymbols = Object.getOwnPropertySymbols;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __propIsEnum = Object.prototype.propertyIsEnumerable;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __spreadValues = (a, b) => {
+ for (var prop in b || (b = {}))
+ if (__hasOwnProp.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ if (__getOwnPropSymbols)
+ for (var prop of __getOwnPropSymbols(b)) {
+ if (__propIsEnum.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ }
+ return a;
+};
+var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
+var __objRest = (source, exclude) => {
+ var target = {};
+ for (var prop in source)
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
+ target[prop] = source[prop];
+ if (source != null && __getOwnPropSymbols)
+ for (var prop of __getOwnPropSymbols(source)) {
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
+ target[prop] = source[prop];
+ }
+ return target;
+};
+var splitpanes_vue_vue_type_style_index_0_lang = "";
+function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
+ var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
+ if (render2) {
+ options.render = render2;
+ options.staticRenderFns = staticRenderFns2;
+ options._compiled = true;
+ }
+ if (functionalTemplate) {
+ options.functional = true;
+ }
+ if (scopeId) {
+ options._scopeId = "data-v-" + scopeId;
+ }
+ var hook;
+ if (moduleIdentifier) {
+ hook = function(context) {
+ context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
+ context = __VUE_SSR_CONTEXT__;
+ }
+ if (injectStyles) {
+ injectStyles.call(this, context);
+ }
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier);
+ }
+ };
+ options._ssrRegister = hook;
+ } else if (injectStyles) {
+ hook = shadowMode ? function() {
+ injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);
+ } : injectStyles;
+ }
+ if (hook) {
+ if (options.functional) {
+ options._injectStyles = hook;
+ var originalRender = options.render;
+ options.render = function renderWithStyleInjection(h, context) {
+ hook.call(context);
+ return originalRender(h, context);
+ };
+ } else {
+ var existing = options.beforeCreate;
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
+ }
+ }
+ return {
+ exports: scriptExports,
+ options
+ };
+}
+const __vue2_script$1 = {
+ name: "splitpanes",
+ props: {
+ horizontal: { type: Boolean },
+ pushOtherPanes: { type: Boolean, default: true },
+ dblClickSplitter: { type: Boolean, default: true },
+ rtl: { type: Boolean, default: false },
+ firstSplitter: { type: Boolean }
+ },
+ provide() {
+ return {
+ requestUpdate: this.requestUpdate,
+ onPaneAdd: this.onPaneAdd,
+ onPaneRemove: this.onPaneRemove,
+ onPaneClick: this.onPaneClick
+ };
+ },
+ data: () => ({
+ container: null,
+ ready: false,
+ panes: [],
+ touch: {
+ mouseDown: false,
+ dragging: false,
+ activeSplitter: null
+ },
+ splitterTaps: {
+ splitter: null,
+ timeoutId: null
+ }
+ }),
+ computed: {
+ panesCount() {
+ return this.panes.length;
+ },
+ indexedPanes() {
+ return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});
+ }
+ },
+ methods: {
+ updatePaneComponents() {
+ this.panes.forEach((pane2) => {
+ pane2.update && pane2.update({
+ [this.horizontal ? "height" : "width"]: `${this.indexedPanes[pane2.id].size}%`
+ });
+ });
+ },
+ bindEvents() {
+ document.addEventListener("mousemove", this.onMouseMove, { passive: false });
+ document.addEventListener("mouseup", this.onMouseUp);
+ if ("ontouchstart" in window) {
+ document.addEventListener("touchmove", this.onMouseMove, { passive: false });
+ document.addEventListener("touchend", this.onMouseUp);
+ }
+ },
+ unbindEvents() {
+ document.removeEventListener("mousemove", this.onMouseMove, { passive: false });
+ document.removeEventListener("mouseup", this.onMouseUp);
+ if ("ontouchstart" in window) {
+ document.removeEventListener("touchmove", this.onMouseMove, { passive: false });
+ document.removeEventListener("touchend", this.onMouseUp);
+ }
+ },
+ onMouseDown(event, splitterIndex) {
+ this.bindEvents();
+ this.touch.mouseDown = true;
+ this.touch.activeSplitter = splitterIndex;
+ },
+ onMouseMove(event) {
+ if (this.touch.mouseDown) {
+ event.preventDefault();
+ this.touch.dragging = true;
+ this.calculatePanesSize(this.getCurrentMouseDrag(event));
+ this.$emit("resize", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));
+ }
+ },
+ onMouseUp() {
+ if (this.touch.dragging) {
+ this.$emit("resized", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));
+ }
+ this.touch.mouseDown = false;
+ setTimeout(() => {
+ this.touch.dragging = false;
+ this.unbindEvents();
+ }, 100);
+ },
+ onSplitterClick(event, splitterIndex) {
+ if ("ontouchstart" in window) {
+ event.preventDefault();
+ if (this.dblClickSplitter) {
+ if (this.splitterTaps.splitter === splitterIndex) {
+ clearTimeout(this.splitterTaps.timeoutId);
+ this.splitterTaps.timeoutId = null;
+ this.onSplitterDblClick(event, splitterIndex);
+ this.splitterTaps.splitter = null;
+ } else {
+ this.splitterTaps.splitter = splitterIndex;
+ this.splitterTaps.timeoutId = setTimeout(() => {
+ this.splitterTaps.splitter = null;
+ }, 500);
+ }
+ }
+ }
+ if (!this.touch.dragging)
+ this.$emit("splitter-click", this.panes[splitterIndex]);
+ },
+ onSplitterDblClick(event, splitterIndex) {
+ let totalMinSizes = 0;
+ this.panes = this.panes.map((pane2, i) => {
+ pane2.size = i === splitterIndex ? pane2.max : pane2.min;
+ if (i !== splitterIndex)
+ totalMinSizes += pane2.min;
+ return pane2;
+ });
+ this.panes[splitterIndex].size -= totalMinSizes;
+ this.$emit("pane-maximize", this.panes[splitterIndex]);
+ },
+ onPaneClick(event, paneId) {
+ this.$emit("pane-click", this.indexedPanes[paneId]);
+ },
+ getCurrentMouseDrag(event) {
+ const rect = this.container.getBoundingClientRect();
+ const { clientX, clientY } = "ontouchstart" in window && event.touches ? event.touches[0] : event;
+ return {
+ x: clientX - rect.left,
+ y: clientY - rect.top
+ };
+ },
+ getCurrentDragPercentage(drag) {
+ drag = drag[this.horizontal ? "y" : "x"];
+ const containerSize = this.container[this.horizontal ? "clientHeight" : "clientWidth"];
+ if (this.rtl && !this.horizontal)
+ drag = containerSize - drag;
+ return drag * 100 / containerSize;
+ },
+ calculatePanesSize(drag) {
+ const splitterIndex = this.touch.activeSplitter;
+ let sums = {
+ prevPanesSize: this.sumPrevPanesSize(splitterIndex),
+ nextPanesSize: this.sumNextPanesSize(splitterIndex),
+ prevReachedMinPanes: 0,
+ nextReachedMinPanes: 0
+ };
+ const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);
+ const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);
+ const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);
+ let panesToResize = [splitterIndex, splitterIndex + 1];
+ let paneBefore = this.panes[panesToResize[0]] || null;
+ let paneAfter = this.panes[panesToResize[1]] || null;
+ const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;
+ const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));
+ if (paneBeforeMaxReached || paneAfterMaxReached) {
+ if (paneBeforeMaxReached) {
+ paneBefore.size = paneBefore.max;
+ paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);
+ } else {
+ paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);
+ paneAfter.size = paneAfter.max;
+ }
+ return;
+ }
+ if (this.pushOtherPanes) {
+ const vars = this.doPushOtherPanes(sums, dragPercentage);
+ if (!vars)
+ return;
+ ({ sums, panesToResize } = vars);
+ paneBefore = this.panes[panesToResize[0]] || null;
+ paneAfter = this.panes[panesToResize[1]] || null;
+ }
+ if (paneBefore !== null) {
+ paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);
+ }
+ if (paneAfter !== null) {
+ paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);
+ }
+ },
+ doPushOtherPanes(sums, dragPercentage) {
+ const splitterIndex = this.touch.activeSplitter;
+ const panesToResize = [splitterIndex, splitterIndex + 1];
+ if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {
+ panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;
+ sums.prevReachedMinPanes = 0;
+ if (panesToResize[0] < splitterIndex) {
+ this.panes.forEach((pane2, i) => {
+ if (i > panesToResize[0] && i <= splitterIndex) {
+ pane2.size = pane2.min;
+ sums.prevReachedMinPanes += pane2.min;
+ }
+ });
+ }
+ sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);
+ if (panesToResize[0] === void 0) {
+ sums.prevReachedMinPanes = 0;
+ this.panes[0].size = this.panes[0].min;
+ this.panes.forEach((pane2, i) => {
+ if (i > 0 && i <= splitterIndex) {
+ pane2.size = pane2.min;
+ sums.prevReachedMinPanes += pane2.min;
+ }
+ });
+ this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;
+ return null;
+ }
+ }
+ if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {
+ panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;
+ sums.nextReachedMinPanes = 0;
+ if (panesToResize[1] > splitterIndex + 1) {
+ this.panes.forEach((pane2, i) => {
+ if (i > splitterIndex && i < panesToResize[1]) {
+ pane2.size = pane2.min;
+ sums.nextReachedMinPanes += pane2.min;
+ }
+ });
+ }
+ sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);
+ if (panesToResize[1] === void 0) {
+ sums.nextReachedMinPanes = 0;
+ this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;
+ this.panes.forEach((pane2, i) => {
+ if (i < this.panesCount - 1 && i >= splitterIndex + 1) {
+ pane2.size = pane2.min;
+ sums.nextReachedMinPanes += pane2.min;
+ }
+ });
+ this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;
+ return null;
+ }
+ }
+ return { sums, panesToResize };
+ },
+ sumPrevPanesSize(splitterIndex) {
+ return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);
+ },
+ sumNextPanesSize(splitterIndex) {
+ return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);
+ },
+ findPrevExpandedPane(splitterIndex) {
+ const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);
+ return pane2 || {};
+ },
+ findNextExpandedPane(splitterIndex) {
+ const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);
+ return pane2 || {};
+ },
+ checkSplitpanesNodes() {
+ const children = Array.from(this.container.children);
+ children.forEach((child) => {
+ const isPane = child.classList.contains("splitpanes__pane");
+ const isSplitter = child.classList.contains("splitpanes__splitter");
+ if (!isPane && !isSplitter) {
+ child.parentNode.removeChild(child);
+ console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.");
+ return;
+ }
+ });
+ },
+ addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {
+ const splitterIndex = paneIndex - 1;
+ const elm = document.createElement("div");
+ elm.classList.add("splitpanes__splitter");
+ if (!isVeryFirst) {
+ elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);
+ if (typeof window !== "undefined" && "ontouchstart" in window) {
+ elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);
+ }
+ elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);
+ }
+ if (this.dblClickSplitter) {
+ elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);
+ }
+ nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);
+ },
+ removeSplitter(node) {
+ node.onmousedown = void 0;
+ node.onclick = void 0;
+ node.ondblclick = void 0;
+ node.parentNode.removeChild(node);
+ },
+ redoSplitters() {
+ const children = Array.from(this.container.children);
+ children.forEach((el) => {
+ if (el.className.includes("splitpanes__splitter"))
+ this.removeSplitter(el);
+ });
+ let paneIndex = 0;
+ children.forEach((el) => {
+ if (el.className.includes("splitpanes__pane")) {
+ if (!paneIndex && this.firstSplitter)
+ this.addSplitter(paneIndex, el, true);
+ else if (paneIndex)
+ this.addSplitter(paneIndex, el);
+ paneIndex++;
+ }
+ });
+ },
+ requestUpdate(_a) {
+ var _b = _a, { target } = _b, args = __objRest(_b, ["target"]);
+ const pane2 = this.indexedPanes[target._uid];
+ Object.entries(args).forEach(([key, value]) => pane2[key] = value);
+ },
+ onPaneAdd(pane2) {
+ let index = -1;
+ Array.from(pane2.$el.parentNode.children).some((el) => {
+ if (el.className.includes("splitpanes__pane"))
+ index++;
+ return el === pane2.$el;
+ });
+ const min = parseFloat(pane2.minSize);
+ const max = parseFloat(pane2.maxSize);
+ this.panes.splice(index, 0, {
+ id: pane2._uid,
+ index,
+ min: isNaN(min) ? 0 : min,
+ max: isNaN(max) ? 100 : max,
+ size: pane2.size === null ? null : parseFloat(pane2.size),
+ givenSize: pane2.size,
+ update: pane2.update
+ });
+ this.panes.forEach((p, i) => p.index = i);
+ if (this.ready) {
+ this.$nextTick(() => {
+ this.redoSplitters();
+ this.resetPaneSizes({ addedPane: this.panes[index] });
+ this.$emit("pane-add", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });
+ });
+ }
+ },
+ onPaneRemove(pane2) {
+ const index = this.panes.findIndex((p) => p.id === pane2._uid);
+ const removed = this.panes.splice(index, 1)[0];
+ this.panes.forEach((p, i) => p.index = i);
+ this.$nextTick(() => {
+ this.redoSplitters();
+ this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });
+ this.$emit("pane-remove", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });
+ });
+ },
+ resetPaneSizes(changedPanes = {}) {
+ if (!changedPanes.addedPane && !changedPanes.removedPane)
+ this.initialPanesSizing();
+ else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))
+ this.equalizeAfterAddOrRemove(changedPanes);
+ else
+ this.equalize();
+ if (this.ready)
+ this.$emit("resized", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));
+ },
+ equalize() {
+ const equalSpace = 100 / this.panesCount;
+ let leftToAllocate = 0;
+ let ungrowable = [];
+ let unshrinkable = [];
+ this.panes.forEach((pane2) => {
+ pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);
+ leftToAllocate -= pane2.size;
+ if (pane2.size >= pane2.max)
+ ungrowable.push(pane2.id);
+ if (pane2.size <= pane2.min)
+ unshrinkable.push(pane2.id);
+ });
+ if (leftToAllocate > 0.1)
+ this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);
+ },
+ initialPanesSizing() {
+ 100 / this.panesCount;
+ let leftToAllocate = 100;
+ let ungrowable = [];
+ let unshrinkable = [];
+ let definedSizes = 0;
+ this.panes.forEach((pane2) => {
+ leftToAllocate -= pane2.size;
+ if (pane2.size !== null)
+ definedSizes++;
+ if (pane2.size >= pane2.max)
+ ungrowable.push(pane2.id);
+ if (pane2.size <= pane2.min)
+ unshrinkable.push(pane2.id);
+ });
+ let leftToAllocate2 = 100;
+ if (leftToAllocate > 0.1) {
+ this.panes.forEach((pane2) => {
+ if (pane2.size === null) {
+ pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);
+ }
+ leftToAllocate2 -= pane2.size;
+ });
+ if (leftToAllocate2 > 0.1)
+ this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);
+ }
+ },
+ equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {
+ let equalSpace = 100 / this.panesCount;
+ let leftToAllocate = 0;
+ let ungrowable = [];
+ let unshrinkable = [];
+ if (addedPane && addedPane.givenSize !== null) {
+ equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);
+ }
+ this.panes.forEach((pane2) => {
+ leftToAllocate -= pane2.size;
+ if (pane2.size >= pane2.max)
+ ungrowable.push(pane2.id);
+ if (pane2.size <= pane2.min)
+ unshrinkable.push(pane2.id);
+ });
+ if (Math.abs(leftToAllocate) < 0.1)
+ return;
+ this.panes.forEach((pane2) => {
+ if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)
+ ;
+ else
+ pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);
+ leftToAllocate -= pane2.size;
+ if (pane2.size >= pane2.max)
+ ungrowable.push(pane2.id);
+ if (pane2.size <= pane2.min)
+ unshrinkable.push(pane2.id);
+ });
+ if (leftToAllocate > 0.1)
+ this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);
+ },
+ readjustSizes(leftToAllocate, ungrowable, unshrinkable) {
+ let equalSpaceToAllocate;
+ if (leftToAllocate > 0)
+ equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);
+ else
+ equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);
+ this.panes.forEach((pane2, i) => {
+ if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {
+ const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);
+ const allocated = newPaneSize - pane2.size;
+ leftToAllocate -= allocated;
+ pane2.size = newPaneSize;
+ } else if (!unshrinkable.includes(pane2.id)) {
+ const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);
+ const allocated = newPaneSize - pane2.size;
+ leftToAllocate -= allocated;
+ pane2.size = newPaneSize;
+ }
+ pane2.update({
+ [this.horizontal ? "height" : "width"]: `${this.indexedPanes[pane2.id].size}%`
+ });
+ });
+ if (Math.abs(leftToAllocate) > 0.1) {
+ this.$nextTick(() => {
+ if (this.ready) {
+ console.warn("Splitpanes: Could not resize panes correctly due to their constraints.");
+ }
+ });
+ }
+ }
+ },
+ watch: {
+ panes: {
+ deep: true,
+ immediate: false,
+ handler() {
+ this.updatePaneComponents();
+ }
+ },
+ horizontal() {
+ this.updatePaneComponents();
+ },
+ firstSplitter() {
+ this.redoSplitters();
+ },
+ dblClickSplitter(enable) {
+ const splitters = [...this.container.querySelectorAll(".splitpanes__splitter")];
+ splitters.forEach((splitter, i) => {
+ splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;
+ });
+ }
+ },
+ beforeDestroy() {
+ this.ready = false;
+ },
+ mounted() {
+ this.container = this.$refs.container;
+ this.checkSplitpanesNodes();
+ this.redoSplitters();
+ this.resetPaneSizes();
+ this.$emit("ready");
+ this.ready = true;
+ },
+ render(h) {
+ return h("div", {
+ ref: "container",
+ class: [
+ "splitpanes",
+ `splitpanes--${this.horizontal ? "horizontal" : "vertical"}`,
+ {
+ "splitpanes--dragging": this.touch.dragging
+ }
+ ]
+ }, this.$slots.default);
+ }
+};
+let __vue2_render, __vue2_staticRenderFns;
+const __cssModules$1 = {};
+var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);
+function __vue2_injectStyles$1(context) {
+ for (let o in __cssModules$1) {
+ this[o] = __cssModules$1[o];
+ }
+}
+var splitpanes = /* @__PURE__ */ function() {
+ return __component__$1.exports;
+}();
+var render = function() {
+ var _vm = this;
+ var _h = _vm.$createElement;
+ var _c = _vm._self._c || _h;
+ return _c("div", { staticClass: "splitpanes__pane", style: _vm.style, on: { "click": function($event) {
+ return _vm.onPaneClick($event, _vm._uid);
+ } } }, [_vm._t("default")], 2);
+};
+var staticRenderFns = [];
+const __vue2_script = {
+ name: "pane",
+ inject: ["requestUpdate", "onPaneAdd", "onPaneRemove", "onPaneClick"],
+ props: {
+ size: { type: [Number, String], default: null },
+ minSize: { type: [Number, String], default: 0 },
+ maxSize: { type: [Number, String], default: 100 }
+ },
+ data: () => ({
+ style: {}
+ }),
+ mounted() {
+ this.onPaneAdd(this);
+ },
+ beforeDestroy() {
+ this.onPaneRemove(this);
+ },
+ methods: {
+ update(style) {
+ this.style = style;
+ }
+ },
+ computed: {
+ sizeNumber() {
+ return this.size || this.size === 0 ? parseFloat(this.size) : null;
+ },
+ minSizeNumber() {
+ return parseFloat(this.minSize);
+ },
+ maxSizeNumber() {
+ return parseFloat(this.maxSize);
+ }
+ },
+ watch: {
+ sizeNumber(size) {
+ this.requestUpdate({ target: this, size });
+ },
+ minSizeNumber(min) {
+ this.requestUpdate({ target: this, min });
+ },
+ maxSizeNumber(max) {
+ this.requestUpdate({ target: this, max });
+ }
+ }
+};
+const __cssModules = {};
+var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);
+function __vue2_injectStyles(context) {
+ for (let o in __cssModules) {
+ this[o] = __cssModules[o];
+ }
+}
+var pane = /* @__PURE__ */ function() {
+ return __component__.exports;
+}();
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/vue/dist/assets/NcAppContent-CpXVlHUj.css":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@nextcloud/vue/dist/assets/NcAppContent-CpXVlHUj.css ***!
+ \***************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _css_loader_dist_cjs_js_NcAppContent_CpXVlHUj_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../css-loader/dist/cjs.js!./NcAppContent-CpXVlHUj.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/NcAppContent-CpXVlHUj.css");
+
+
+
+
+
+
+
+
+
+
+
+var options = {};
+
+options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
+options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
+options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
+options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
+options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
+
+var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_NcAppContent_CpXVlHUj_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
+
+
+
+
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_NcAppContent_CpXVlHUj_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_NcAppContent_CpXVlHUj_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_NcAppContent_CpXVlHUj_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/vue/dist/assets/NcButton-BHDLon1_.css":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@nextcloud/vue/dist/assets/NcButton-BHDLon1_.css ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _css_loader_dist_cjs_js_NcButton_BHDLon1_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../css-loader/dist/cjs.js!./NcButton-BHDLon1_.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/NcButton-BHDLon1_.css");
+
+
+
+
+
+
+
+
+
+
+
+var options = {};
+
+options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
+options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
+options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
+options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
+options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
+
+var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_NcButton_BHDLon1_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
+
+
+
+
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_NcButton_BHDLon1_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_NcButton_BHDLon1_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_NcButton_BHDLon1_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
+
+
+/***/ }),
+
+/***/ "./node_modules/@nextcloud/vue/dist/assets/Tooltip-DQ4Plm4r.css":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@nextcloud/vue/dist/assets/Tooltip-DQ4Plm4r.css ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _css_loader_dist_cjs_js_Tooltip_DQ4Plm4r_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../css-loader/dist/cjs.js!./Tooltip-DQ4Plm4r.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/vue/dist/assets/Tooltip-DQ4Plm4r.css");
+
+
+
+
+
+
+
+
+
+
+
+var options = {};
+
+options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
+options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
+options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
+options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
+options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
+
+var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_Tooltip_DQ4Plm4r_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
+
+
+
+
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_Tooltip_DQ4Plm4r_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_Tooltip_DQ4Plm4r_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_Tooltip_DQ4Plm4r_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
+
+
+/***/ }),
+
+/***/ "./node_modules/splitpanes/dist/splitpanes.css":
+/*!*****************************************************!*\
+ !*** ./node_modules/splitpanes/dist/splitpanes.css ***!
+ \*****************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
+/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
+/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
+/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
+/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
+/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
+/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _css_loader_dist_cjs_js_splitpanes_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../css-loader/dist/cjs.js!./splitpanes.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/splitpanes/dist/splitpanes.css");
+
+
+
+
+
+
+
+
+
+
+
+var options = {};
+
+options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
+options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
+options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
+options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
+options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
+
+var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_splitpanes_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
+
+
+
+
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_splitpanes_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_splitpanes_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_splitpanes_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
+
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/cjs.js!./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!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss":
+/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/style-loader/dist/cjs.js!./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!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss ***!
+ \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
+/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
+/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
+/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
+/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
+/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
+/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _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_App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../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!./App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss */ "./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!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss");
+
+
+
+
+
+
+
+
+
+
+
+var options = {};
+
+options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
+options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
+options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
+options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
+options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
+
+var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_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_App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options);
+
+
+
+
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_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_App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _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_App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _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_App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
+
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
+ \****************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+var stylesInDOM = [];
+function getIndexByIdentifier(identifier) {
+ var result = -1;
+ for (var i = 0; i < stylesInDOM.length; i++) {
+ if (stylesInDOM[i].identifier === identifier) {
+ result = i;
+ break;
+ }
+ }
+ return result;
+}
+function modulesToDom(list, options) {
+ var idCountMap = {};
+ var identifiers = [];
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i];
+ var id = options.base ? item[0] + options.base : item[0];
+ var count = idCountMap[id] || 0;
+ var identifier = "".concat(id, " ").concat(count);
+ idCountMap[id] = count + 1;
+ var indexByIdentifier = getIndexByIdentifier(identifier);
+ var obj = {
+ css: item[1],
+ media: item[2],
+ sourceMap: item[3],
+ supports: item[4],
+ layer: item[5]
+ };
+ if (indexByIdentifier !== -1) {
+ stylesInDOM[indexByIdentifier].references++;
+ stylesInDOM[indexByIdentifier].updater(obj);
+ } else {
+ var updater = addElementStyle(obj, options);
+ options.byIndex = i;
+ stylesInDOM.splice(i, 0, {
+ identifier: identifier,
+ updater: updater,
+ references: 1
+ });
+ }
+ identifiers.push(identifier);
+ }
+ return identifiers;
+}
+function addElementStyle(obj, options) {
+ var api = options.domAPI(options);
+ api.update(obj);
+ var updater = function updater(newObj) {
+ if (newObj) {
+ if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
+ return;
+ }
+ api.update(obj = newObj);
+ } else {
+ api.remove();
+ }
+ };
+ return updater;
+}
+module.exports = function (list, options) {
+ options = options || {};
+ list = list || [];
+ var lastIdentifiers = modulesToDom(list, options);
+ return function update(newList) {
+ newList = newList || [];
+ for (var i = 0; i < lastIdentifiers.length; i++) {
+ var identifier = lastIdentifiers[i];
+ var index = getIndexByIdentifier(identifier);
+ stylesInDOM[index].references--;
+ }
+ var newLastIdentifiers = modulesToDom(newList, options);
+ for (var _i = 0; _i < lastIdentifiers.length; _i++) {
+ var _identifier = lastIdentifiers[_i];
+ var _index = getIndexByIdentifier(_identifier);
+ if (stylesInDOM[_index].references === 0) {
+ stylesInDOM[_index].updater();
+ stylesInDOM.splice(_index, 1);
+ }
+ }
+ lastIdentifiers = newLastIdentifiers;
+ };
+};
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
+ \********************************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+var memo = {};
+
+/* istanbul ignore next */
+function getTarget(target) {
+ if (typeof memo[target] === "undefined") {
+ var styleTarget = document.querySelector(target);
+
+ // Special case to return head of iframe instead of iframe itself
+ if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
+ try {
+ // This will throw an exception if access to iframe is blocked
+ // due to cross-origin restrictions
+ styleTarget = styleTarget.contentDocument.head;
+ } catch (e) {
+ // istanbul ignore next
+ styleTarget = null;
+ }
+ }
+ memo[target] = styleTarget;
+ }
+ return memo[target];
+}
+
+/* istanbul ignore next */
+function insertBySelector(insert, style) {
+ var target = getTarget(insert);
+ if (!target) {
+ throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
+ }
+ target.appendChild(style);
+}
+module.exports = insertBySelector;
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
+ \**********************************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/* istanbul ignore next */
+function insertStyleElement(options) {
+ var element = document.createElement("style");
+ options.setAttributes(element, options.attributes);
+ options.insert(element, options.options);
+ return element;
+}
+module.exports = insertStyleElement;
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
+ \**********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+/* istanbul ignore next */
+function setAttributesWithoutAttributes(styleElement) {
+ var nonce = true ? __webpack_require__.nc : 0;
+ if (nonce) {
+ styleElement.setAttribute("nonce", nonce);
+ }
+}
+module.exports = setAttributesWithoutAttributes;
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
+ \***************************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/* istanbul ignore next */
+function apply(styleElement, options, obj) {
+ var css = "";
+ if (obj.supports) {
+ css += "@supports (".concat(obj.supports, ") {");
+ }
+ if (obj.media) {
+ css += "@media ".concat(obj.media, " {");
+ }
+ var needLayer = typeof obj.layer !== "undefined";
+ if (needLayer) {
+ css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
+ }
+ css += obj.css;
+ if (needLayer) {
+ css += "}";
+ }
+ if (obj.media) {
+ css += "}";
+ }
+ if (obj.supports) {
+ css += "}";
+ }
+ var sourceMap = obj.sourceMap;
+ if (sourceMap && typeof btoa !== "undefined") {
+ css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
+ }
+
+ // For old IE
+ /* istanbul ignore if */
+ options.styleTagTransform(css, styleElement, options.options);
+}
+function removeStyleElement(styleElement) {
+ // istanbul ignore if
+ if (styleElement.parentNode === null) {
+ return false;
+ }
+ styleElement.parentNode.removeChild(styleElement);
+}
+
+/* istanbul ignore next */
+function domAPI(options) {
+ if (typeof document === "undefined") {
+ return {
+ update: function update() {},
+ remove: function remove() {}
+ };
+ }
+ var styleElement = options.insertStyleElement(options);
+ return {
+ update: function update(obj) {
+ apply(styleElement, options, obj);
+ },
+ remove: function remove() {
+ removeStyleElement(styleElement);
+ }
+ };
+}
+module.exports = domAPI;
+
+/***/ }),
+
+/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
+ \*********************************************************************/
+/***/ ((module) => {
+
+"use strict";
+
+
+/* istanbul ignore next */
+function styleTagTransform(css, styleElement) {
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = css;
+ } else {
+ while (styleElement.firstChild) {
+ styleElement.removeChild(styleElement.firstChild);
+ }
+ styleElement.appendChild(document.createTextNode(css));
+ }
+}
+module.exports = styleTagTransform;
+
+/***/ }),
+
+/***/ "./src/App.vue":
+/*!*********************!*\
+ !*** ./src/App.vue ***!
+ \*********************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _App_vue_vue_type_template_id_7ba5bd90_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=template&id=7ba5bd90&scoped=true */ "./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true");
+/* harmony import */ var _App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js */ "./src/App.vue?vue&type=script&lang=js");
+/* harmony import */ var _App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss */ "./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss");
+/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
+
+
+
+;
+
+
+/* normalize component */
+
+var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+ _App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"],
+ _App_vue_vue_type_template_id_7ba5bd90_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render,
+ _App_vue_vue_type_template_id_7ba5bd90_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,
+ false,
+ null,
+ "7ba5bd90",
+ null
+
+)
+
+/* hot reload */
+if (false) { var api; }
+component.options.__file = "src/App.vue"
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);
+
+/***/ }),
+
+/***/ "./src/App.vue?vue&type=script&lang=js":
+/*!*********************************************!*\
+ !*** ./src/App.vue?vue&type=script&lang=js ***!
+ \*********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js");
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
+
+/***/ }),
+
+/***/ "./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true":
+/*!***************************************************************!*\
+ !*** ./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true ***!
+ \***************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render),
+/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns)
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=template&id=7ba5bd90&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true");
+
+
+/***/ }),
+
+/***/ "./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss":
+/*!******************************************************************************!*\
+ !*** ./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss ***!
+ \******************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_style_loader_dist_cjs_js_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_App_vue_vue_type_style_index_0_id_7ba5bd90_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/style-loader/dist/cjs.js!../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!./App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./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!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=scss");
+
+
+/***/ }),
+
+/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ normalizeComponent)
+/* harmony export */ });
+/* globals __VUE_SSR_CONTEXT__ */
+
+// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
+// This module is a runtime utility for cleaner component module output and will
+// be included in the final webpack user bundle.
+
+function normalizeComponent(
+ scriptExports,
+ render,
+ staticRenderFns,
+ functionalTemplate,
+ injectStyles,
+ scopeId,
+ moduleIdentifier /* server only */,
+ shadowMode /* vue-cli only */
+) {
+ // Vue.extend constructor export interop
+ var options =
+ typeof scriptExports === 'function' ? scriptExports.options : scriptExports
+
+ // render functions
+ if (render) {
+ options.render = render
+ options.staticRenderFns = staticRenderFns
+ options._compiled = true
+ }
+
+ // functional template
+ if (functionalTemplate) {
+ options.functional = true
+ }
+
+ // scopedId
+ if (scopeId) {
+ options._scopeId = 'data-v-' + scopeId
+ }
+
+ var hook
+ if (moduleIdentifier) {
+ // server build
+ hook = function (context) {
+ // 2.3 injection
+ context =
+ context || // cached call
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+ // 2.2 with runInNewContext: true
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+ context = __VUE_SSR_CONTEXT__
+ }
+ // inject component styles
+ if (injectStyles) {
+ injectStyles.call(this, context)
+ }
+ // register component module identifier for async chunk inferrence
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier)
+ }
+ }
+ // used by ssr in case component is cached and beforeCreate
+ // never gets called
+ options._ssrRegister = hook
+ } else if (injectStyles) {
+ hook = shadowMode
+ ? function () {
+ injectStyles.call(
+ this,
+ (options.functional ? this.parent : this).$root.$options.shadowRoot
+ )
+ }
+ : injectStyles
+ }
+
+ if (hook) {
+ if (options.functional) {
+ // for template-only hot-reload because in that case the render fn doesn't
+ // go through the normalizer
+ options._injectStyles = hook
+ // register for functional component in vue file
+ var originalRender = options.render
+ options.render = function renderWithStyleInjection(h, context) {
+ hook.call(context)
+ return originalRender(h, context)
+ }
+ } else {
+ // inject component registration as beforeCreate hook
+ var existing = options.beforeCreate
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
+ }
+ }
+
+ return {
+ exports: scriptExports,
+ options: options
+ }
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/vue/dist/vue.runtime.esm.js":
+/*!**************************************************!*\
+ !*** ./node_modules/vue/dist/vue.runtime.esm.js ***!
+ \**************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ EffectScope: () => (/* binding */ EffectScope),
+/* harmony export */ computed: () => (/* binding */ computed),
+/* harmony export */ customRef: () => (/* binding */ customRef),
+/* harmony export */ "default": () => (/* binding */ Vue),
+/* harmony export */ defineAsyncComponent: () => (/* binding */ defineAsyncComponent),
+/* harmony export */ defineComponent: () => (/* binding */ defineComponent),
+/* harmony export */ del: () => (/* binding */ del),
+/* harmony export */ effectScope: () => (/* binding */ effectScope),
+/* harmony export */ getCurrentInstance: () => (/* binding */ getCurrentInstance),
+/* harmony export */ getCurrentScope: () => (/* binding */ getCurrentScope),
+/* harmony export */ h: () => (/* binding */ h),
+/* harmony export */ inject: () => (/* binding */ inject),
+/* harmony export */ isProxy: () => (/* binding */ isProxy),
+/* harmony export */ isReactive: () => (/* binding */ isReactive),
+/* harmony export */ isReadonly: () => (/* binding */ isReadonly),
+/* harmony export */ isRef: () => (/* binding */ isRef),
+/* harmony export */ isShallow: () => (/* binding */ isShallow),
+/* harmony export */ markRaw: () => (/* binding */ markRaw),
+/* harmony export */ mergeDefaults: () => (/* binding */ mergeDefaults),
+/* harmony export */ nextTick: () => (/* binding */ nextTick),
+/* harmony export */ onActivated: () => (/* binding */ onActivated),
+/* harmony export */ onBeforeMount: () => (/* binding */ onBeforeMount),
+/* harmony export */ onBeforeUnmount: () => (/* binding */ onBeforeUnmount),
+/* harmony export */ onBeforeUpdate: () => (/* binding */ onBeforeUpdate),
+/* harmony export */ onDeactivated: () => (/* binding */ onDeactivated),
+/* harmony export */ onErrorCaptured: () => (/* binding */ onErrorCaptured),
+/* harmony export */ onMounted: () => (/* binding */ onMounted),
+/* harmony export */ onRenderTracked: () => (/* binding */ onRenderTracked),
+/* harmony export */ onRenderTriggered: () => (/* binding */ onRenderTriggered),
+/* harmony export */ onScopeDispose: () => (/* binding */ onScopeDispose),
+/* harmony export */ onServerPrefetch: () => (/* binding */ onServerPrefetch),
+/* harmony export */ onUnmounted: () => (/* binding */ onUnmounted),
+/* harmony export */ onUpdated: () => (/* binding */ onUpdated),
+/* harmony export */ provide: () => (/* binding */ provide),
+/* harmony export */ proxyRefs: () => (/* binding */ proxyRefs),
+/* harmony export */ reactive: () => (/* binding */ reactive),
+/* harmony export */ readonly: () => (/* binding */ readonly),
+/* harmony export */ ref: () => (/* binding */ ref$1),
+/* harmony export */ set: () => (/* binding */ set),
+/* harmony export */ shallowReactive: () => (/* binding */ shallowReactive),
+/* harmony export */ shallowReadonly: () => (/* binding */ shallowReadonly),
+/* harmony export */ shallowRef: () => (/* binding */ shallowRef),
+/* harmony export */ toRaw: () => (/* binding */ toRaw),
+/* harmony export */ toRef: () => (/* binding */ toRef),
+/* harmony export */ toRefs: () => (/* binding */ toRefs),
+/* harmony export */ triggerRef: () => (/* binding */ triggerRef),
+/* harmony export */ unref: () => (/* binding */ unref),
+/* harmony export */ useAttrs: () => (/* binding */ useAttrs),
+/* harmony export */ useCssModule: () => (/* binding */ useCssModule),
+/* harmony export */ useCssVars: () => (/* binding */ useCssVars),
+/* harmony export */ useListeners: () => (/* binding */ useListeners),
+/* harmony export */ useSlots: () => (/* binding */ useSlots),
+/* harmony export */ version: () => (/* binding */ version),
+/* harmony export */ watch: () => (/* binding */ watch),
+/* harmony export */ watchEffect: () => (/* binding */ watchEffect),
+/* harmony export */ watchPostEffect: () => (/* binding */ watchPostEffect),
+/* harmony export */ watchSyncEffect: () => (/* binding */ watchSyncEffect)
+/* harmony export */ });
+/*!
+ * Vue.js v2.7.16
+ * (c) 2014-2023 Evan You
+ * Released under the MIT License.
+ */
+var emptyObject = Object.freeze({});
+var isArray = Array.isArray;
+// These helpers produce better VM code in JS engines due to their
+// explicitness and function inlining.
+function isUndef(v) {
+ return v === undefined || v === null;
+}
+function isDef(v) {
+ return v !== undefined && v !== null;
+}
+function isTrue(v) {
+ return v === true;
+}
+function isFalse(v) {
+ return v === false;
+}
+/**
+ * Check if value is primitive.
+ */
+function isPrimitive(value) {
+ return (typeof value === 'string' ||
+ typeof value === 'number' ||
+ // $flow-disable-line
+ typeof value === 'symbol' ||
+ typeof value === 'boolean');
+}
+function isFunction(value) {
+ return typeof value === 'function';
+}
+/**
+ * Quick object check - this is primarily used to tell
+ * objects from primitive values when we know the value
+ * is a JSON-compliant type.
+ */
+function isObject(obj) {
+ return obj !== null && typeof obj === 'object';
+}
+/**
+ * Get the raw type string of a value, e.g., [object Object].
+ */
+var _toString = Object.prototype.toString;
+function toRawType(value) {
+ return _toString.call(value).slice(8, -1);
+}
+/**
+ * Strict object type check. Only returns true
+ * for plain JavaScript objects.
+ */
+function isPlainObject(obj) {
+ return _toString.call(obj) === '[object Object]';
+}
+function isRegExp(v) {
+ return _toString.call(v) === '[object RegExp]';
+}
+/**
+ * Check if val is a valid array index.
+ */
+function isValidArrayIndex(val) {
+ var n = parseFloat(String(val));
+ return n >= 0 && Math.floor(n) === n && isFinite(val);
+}
+function isPromise(val) {
+ return (isDef(val) &&
+ typeof val.then === 'function' &&
+ typeof val.catch === 'function');
+}
+/**
+ * Convert a value to a string that is actually rendered.
+ */
+function toString(val) {
+ return val == null
+ ? ''
+ : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
+ ? JSON.stringify(val, replacer, 2)
+ : String(val);
+}
+function replacer(_key, val) {
+ // avoid circular deps from v3
+ if (val && val.__v_isRef) {
+ return val.value;
+ }
+ return val;
+}
+/**
+ * Convert an input value to a number for persistence.
+ * If the conversion fails, return original string.
+ */
+function toNumber(val) {
+ var n = parseFloat(val);
+ return isNaN(n) ? val : n;
+}
+/**
+ * Make a map and return a function for checking if a key
+ * is in that map.
+ */
+function makeMap(str, expectsLowerCase) {
+ var map = Object.create(null);
+ var list = str.split(',');
+ for (var i = 0; i < list.length; i++) {
+ map[list[i]] = true;
+ }
+ return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };
+}
+/**
+ * Check if a tag is a built-in tag.
+ */
+var isBuiltInTag = makeMap('slot,component', true);
+/**
+ * Check if an attribute is a reserved attribute.
+ */
+var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
+/**
+ * Remove an item from an array.
+ */
+function remove$2(arr, item) {
+ var len = arr.length;
+ if (len) {
+ // fast path for the only / last item
+ if (item === arr[len - 1]) {
+ arr.length = len - 1;
+ return;
+ }
+ var index = arr.indexOf(item);
+ if (index > -1) {
+ return arr.splice(index, 1);
+ }
+ }
+}
+/**
+ * Check whether an object has the property.
+ */
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
+}
+/**
+ * Create a cached version of a pure function.
+ */
+function cached(fn) {
+ var cache = Object.create(null);
+ return function cachedFn(str) {
+ var hit = cache[str];
+ return hit || (cache[str] = fn(str));
+ };
+}
+/**
+ * Camelize a hyphen-delimited string.
+ */
+var camelizeRE = /-(\w)/g;
+var camelize = cached(function (str) {
+ return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });
+});
+/**
+ * Capitalize a string.
+ */
+var capitalize = cached(function (str) {
+ return str.charAt(0).toUpperCase() + str.slice(1);
+});
+/**
+ * Hyphenate a camelCase string.
+ */
+var hyphenateRE = /\B([A-Z])/g;
+var hyphenate = cached(function (str) {
+ return str.replace(hyphenateRE, '-$1').toLowerCase();
+});
+/**
+ * Simple bind polyfill for environments that do not support it,
+ * e.g., PhantomJS 1.x. Technically, we don't need this anymore
+ * since native bind is now performant enough in most browsers.
+ * But removing it would mean breaking code that was able to run in
+ * PhantomJS 1.x, so this must be kept for backward compatibility.
+ */
+/* istanbul ignore next */
+function polyfillBind(fn, ctx) {
+ function boundFn(a) {
+ var l = arguments.length;
+ return l
+ ? l > 1
+ ? fn.apply(ctx, arguments)
+ : fn.call(ctx, a)
+ : fn.call(ctx);
+ }
+ boundFn._length = fn.length;
+ return boundFn;
+}
+function nativeBind(fn, ctx) {
+ return fn.bind(ctx);
+}
+// @ts-expect-error bind cannot be `undefined`
+var bind = Function.prototype.bind ? nativeBind : polyfillBind;
+/**
+ * Convert an Array-like object to a real Array.
+ */
+function toArray(list, start) {
+ start = start || 0;
+ var i = list.length - start;
+ var ret = new Array(i);
+ while (i--) {
+ ret[i] = list[i + start];
+ }
+ return ret;
+}
+/**
+ * Mix properties into target object.
+ */
+function extend(to, _from) {
+ for (var key in _from) {
+ to[key] = _from[key];
+ }
+ return to;
+}
+/**
+ * Merge an Array of Objects into a single Object.
+ */
+function toObject(arr) {
+ var res = {};
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i]) {
+ extend(res, arr[i]);
+ }
+ }
+ return res;
+}
+/* eslint-disable no-unused-vars */
+/**
+ * Perform no operation.
+ * Stubbing args to make Flow happy without leaving useless transpiled code
+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
+ */
+function noop(a, b, c) { }
+/**
+ * Always return false.
+ */
+var no = function (a, b, c) { return false; };
+/* eslint-enable no-unused-vars */
+/**
+ * Return the same value.
+ */
+var identity = function (_) { return _; };
+/**
+ * Check if two values are loosely equal - that is,
+ * if they are plain objects, do they have the same shape?
+ */
+function looseEqual(a, b) {
+ if (a === b)
+ return true;
+ var isObjectA = isObject(a);
+ var isObjectB = isObject(b);
+ if (isObjectA && isObjectB) {
+ try {
+ var isArrayA = Array.isArray(a);
+ var isArrayB = Array.isArray(b);
+ if (isArrayA && isArrayB) {
+ return (a.length === b.length &&
+ a.every(function (e, i) {
+ return looseEqual(e, b[i]);
+ }));
+ }
+ else if (a instanceof Date && b instanceof Date) {
+ return a.getTime() === b.getTime();
+ }
+ else if (!isArrayA && !isArrayB) {
+ var keysA = Object.keys(a);
+ var keysB = Object.keys(b);
+ return (keysA.length === keysB.length &&
+ keysA.every(function (key) {
+ return looseEqual(a[key], b[key]);
+ }));
+ }
+ else {
+ /* istanbul ignore next */
+ return false;
+ }
+ }
+ catch (e) {
+ /* istanbul ignore next */
+ return false;
+ }
+ }
+ else if (!isObjectA && !isObjectB) {
+ return String(a) === String(b);
+ }
+ else {
+ return false;
+ }
+}
+/**
+ * Return the first index at which a loosely equal value can be
+ * found in the array (if value is a plain object, the array must
+ * contain an object of the same shape), or -1 if it is not present.
+ */
+function looseIndexOf(arr, val) {
+ for (var i = 0; i < arr.length; i++) {
+ if (looseEqual(arr[i], val))
+ return i;
+ }
+ return -1;
+}
+/**
+ * Ensure a function is called only once.
+ */
+function once(fn) {
+ var called = false;
+ return function () {
+ if (!called) {
+ called = true;
+ fn.apply(this, arguments);
+ }
+ };
+}
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill
+function hasChanged(x, y) {
+ if (x === y) {
+ return x === 0 && 1 / x !== 1 / y;
+ }
+ else {
+ return x === x || y === y;
+ }
+}
+
+var SSR_ATTR = 'data-server-rendered';
+var ASSET_TYPES = ['component', 'directive', 'filter'];
+var LIFECYCLE_HOOKS = [
+ 'beforeCreate',
+ 'created',
+ 'beforeMount',
+ 'mounted',
+ 'beforeUpdate',
+ 'updated',
+ 'beforeDestroy',
+ 'destroyed',
+ 'activated',
+ 'deactivated',
+ 'errorCaptured',
+ 'serverPrefetch',
+ 'renderTracked',
+ 'renderTriggered'
+];
+
+var config = {
+ /**
+ * Option merge strategies (used in core/util/options)
+ */
+ // $flow-disable-line
+ optionMergeStrategies: Object.create(null),
+ /**
+ * Whether to suppress warnings.
+ */
+ silent: false,
+ /**
+ * Show production mode tip message on boot?
+ */
+ productionTip: "development" !== 'production',
+ /**
+ * Whether to enable devtools
+ */
+ devtools: "development" !== 'production',
+ /**
+ * Whether to record perf
+ */
+ performance: false,
+ /**
+ * Error handler for watcher errors
+ */
+ errorHandler: null,
+ /**
+ * Warn handler for watcher warns
+ */
+ warnHandler: null,
+ /**
+ * Ignore certain custom elements
+ */
+ ignoredElements: [],
+ /**
+ * Custom user key aliases for v-on
+ */
+ // $flow-disable-line
+ keyCodes: Object.create(null),
+ /**
+ * Check if a tag is reserved so that it cannot be registered as a
+ * component. This is platform-dependent and may be overwritten.
+ */
+ isReservedTag: no,
+ /**
+ * Check if an attribute is reserved so that it cannot be used as a component
+ * prop. This is platform-dependent and may be overwritten.
+ */
+ isReservedAttr: no,
+ /**
+ * Check if a tag is an unknown element.
+ * Platform-dependent.
+ */
+ isUnknownElement: no,
+ /**
+ * Get the namespace of an element
+ */
+ getTagNamespace: noop,
+ /**
+ * Parse the real tag name for the specific platform.
+ */
+ parsePlatformTagName: identity,
+ /**
+ * Check if an attribute must be bound using property, e.g. value
+ * Platform-dependent.
+ */
+ mustUseProp: no,
+ /**
+ * Perform updates asynchronously. Intended to be used by Vue Test Utils
+ * This will significantly reduce performance if set to false.
+ */
+ async: true,
+ /**
+ * Exposed for legacy reasons
+ */
+ _lifecycleHooks: LIFECYCLE_HOOKS
+};
+
+/**
+ * unicode letters used for parsing html tags, component names and property paths.
+ * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
+ * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
+ */
+var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
+/**
+ * Check if a string starts with $ or _
+ */
+function isReserved(str) {
+ var c = (str + '').charCodeAt(0);
+ return c === 0x24 || c === 0x5f;
+}
+/**
+ * Define a property.
+ */
+function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+}
+/**
+ * Parse simple path.
+ */
+var bailRE = new RegExp("[^".concat(unicodeRegExp.source, ".$_\\d]"));
+function parsePath(path) {
+ if (bailRE.test(path)) {
+ return;
+ }
+ var segments = path.split('.');
+ return function (obj) {
+ for (var i = 0; i < segments.length; i++) {
+ if (!obj)
+ return;
+ obj = obj[segments[i]];
+ }
+ return obj;
+ };
+}
+
+// can we use __proto__?
+var hasProto = '__proto__' in {};
+// Browser environment sniffing
+var inBrowser = typeof window !== 'undefined';
+var UA = inBrowser && window.navigator.userAgent.toLowerCase();
+var isIE = UA && /msie|trident/.test(UA);
+var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
+var isEdge = UA && UA.indexOf('edge/') > 0;
+UA && UA.indexOf('android') > 0;
+var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
+UA && /chrome\/\d+/.test(UA) && !isEdge;
+UA && /phantomjs/.test(UA);
+var isFF = UA && UA.match(/firefox\/(\d+)/);
+// Firefox has a "watch" function on Object.prototype...
+// @ts-expect-error firebox support
+var nativeWatch = {}.watch;
+var supportsPassive = false;
+if (inBrowser) {
+ try {
+ var opts = {};
+ Object.defineProperty(opts, 'passive', {
+ get: function () {
+ /* istanbul ignore next */
+ supportsPassive = true;
+ }
+ }); // https://github.com/facebook/flow/issues/285
+ window.addEventListener('test-passive', null, opts);
+ }
+ catch (e) { }
+}
+// this needs to be lazy-evaled because vue may be required before
+// vue-server-renderer can set VUE_ENV
+var _isServer;
+var isServerRendering = function () {
+ if (_isServer === undefined) {
+ /* istanbul ignore if */
+ if (!inBrowser && typeof __webpack_require__.g !== 'undefined') {
+ // detect presence of vue-server-renderer and avoid
+ // Webpack shimming the process
+ _isServer =
+ __webpack_require__.g['process'] && __webpack_require__.g['process'].env.VUE_ENV === 'server';
+ }
+ else {
+ _isServer = false;
+ }
+ }
+ return _isServer;
+};
+// detect devtools
+var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
+/* istanbul ignore next */
+function isNative(Ctor) {
+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
+}
+var hasSymbol = typeof Symbol !== 'undefined' &&
+ isNative(Symbol) &&
+ typeof Reflect !== 'undefined' &&
+ isNative(Reflect.ownKeys);
+var _Set; // $flow-disable-line
+/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {
+ // use native Set when available.
+ _Set = Set;
+}
+else {
+ // a non-standard Set polyfill that only works with primitive keys.
+ _Set = /** @class */ (function () {
+ function Set() {
+ this.set = Object.create(null);
+ }
+ Set.prototype.has = function (key) {
+ return this.set[key] === true;
+ };
+ Set.prototype.add = function (key) {
+ this.set[key] = true;
+ };
+ Set.prototype.clear = function () {
+ this.set = Object.create(null);
+ };
+ return Set;
+ }());
+}
+
+var currentInstance = null;
+/**
+ * This is exposed for compatibility with v3 (e.g. some functions in VueUse
+ * relies on it). Do not use this internally, just use `currentInstance`.
+ *
+ * @internal this function needs manual type declaration because it relies
+ * on previously manually authored types from Vue 2
+ */
+function getCurrentInstance() {
+ return currentInstance && { proxy: currentInstance };
+}
+/**
+ * @internal
+ */
+function setCurrentInstance(vm) {
+ if (vm === void 0) { vm = null; }
+ if (!vm)
+ currentInstance && currentInstance._scope.off();
+ currentInstance = vm;
+ vm && vm._scope.on();
+}
+
+/**
+ * @internal
+ */
+var VNode = /** @class */ (function () {
+ function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {
+ this.tag = tag;
+ this.data = data;
+ this.children = children;
+ this.text = text;
+ this.elm = elm;
+ this.ns = undefined;
+ this.context = context;
+ this.fnContext = undefined;
+ this.fnOptions = undefined;
+ this.fnScopeId = undefined;
+ this.key = data && data.key;
+ this.componentOptions = componentOptions;
+ this.componentInstance = undefined;
+ this.parent = undefined;
+ this.raw = false;
+ this.isStatic = false;
+ this.isRootInsert = true;
+ this.isComment = false;
+ this.isCloned = false;
+ this.isOnce = false;
+ this.asyncFactory = asyncFactory;
+ this.asyncMeta = undefined;
+ this.isAsyncPlaceholder = false;
+ }
+ Object.defineProperty(VNode.prototype, "child", {
+ // DEPRECATED: alias for componentInstance for backwards compat.
+ /* istanbul ignore next */
+ get: function () {
+ return this.componentInstance;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ return VNode;
+}());
+var createEmptyVNode = function (text) {
+ if (text === void 0) { text = ''; }
+ var node = new VNode();
+ node.text = text;
+ node.isComment = true;
+ return node;
+};
+function createTextVNode(val) {
+ return new VNode(undefined, undefined, undefined, String(val));
+}
+// optimized shallow clone
+// used for static nodes and slot nodes because they may be reused across
+// multiple renders, cloning them avoids errors when DOM manipulations rely
+// on their elm reference.
+function cloneVNode(vnode) {
+ var cloned = new VNode(vnode.tag, vnode.data,
+ // #7975
+ // clone children array to avoid mutating original in case of cloning
+ // a child.
+ vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);
+ cloned.ns = vnode.ns;
+ cloned.isStatic = vnode.isStatic;
+ cloned.key = vnode.key;
+ cloned.isComment = vnode.isComment;
+ cloned.fnContext = vnode.fnContext;
+ cloned.fnOptions = vnode.fnOptions;
+ cloned.fnScopeId = vnode.fnScopeId;
+ cloned.asyncMeta = vnode.asyncMeta;
+ cloned.isCloned = true;
+ return cloned;
+}
+
+/******************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+
+var __assign = function() {
+ __assign = Object.assign || function __assign(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+
+typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+ var e = new Error(message);
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+};
+
+var uid$2 = 0;
+var pendingCleanupDeps = [];
+var cleanupDeps = function () {
+ for (var i = 0; i < pendingCleanupDeps.length; i++) {
+ var dep = pendingCleanupDeps[i];
+ dep.subs = dep.subs.filter(function (s) { return s; });
+ dep._pending = false;
+ }
+ pendingCleanupDeps.length = 0;
+};
+/**
+ * A dep is an observable that can have multiple
+ * directives subscribing to it.
+ * @internal
+ */
+var Dep = /** @class */ (function () {
+ function Dep() {
+ // pending subs cleanup
+ this._pending = false;
+ this.id = uid$2++;
+ this.subs = [];
+ }
+ Dep.prototype.addSub = function (sub) {
+ this.subs.push(sub);
+ };
+ Dep.prototype.removeSub = function (sub) {
+ // #12696 deps with massive amount of subscribers are extremely slow to
+ // clean up in Chromium
+ // to workaround this, we unset the sub for now, and clear them on
+ // next scheduler flush.
+ this.subs[this.subs.indexOf(sub)] = null;
+ if (!this._pending) {
+ this._pending = true;
+ pendingCleanupDeps.push(this);
+ }
+ };
+ Dep.prototype.depend = function (info) {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ if ( true && info && Dep.target.onTrack) {
+ Dep.target.onTrack(__assign({ effect: Dep.target }, info));
+ }
+ }
+ };
+ Dep.prototype.notify = function (info) {
+ // stabilize the subscriber list first
+ var subs = this.subs.filter(function (s) { return s; });
+ if ( true && !config.async) {
+ // subs aren't sorted in scheduler if not running async
+ // we need to sort them now to make sure they fire in correct
+ // order
+ subs.sort(function (a, b) { return a.id - b.id; });
+ }
+ for (var i = 0, l = subs.length; i < l; i++) {
+ var sub = subs[i];
+ if ( true && info) {
+ sub.onTrigger &&
+ sub.onTrigger(__assign({ effect: subs[i] }, info));
+ }
+ sub.update();
+ }
+ };
+ return Dep;
+}());
+// The current target watcher being evaluated.
+// This is globally unique because only one watcher
+// can be evaluated at a time.
+Dep.target = null;
+var targetStack = [];
+function pushTarget(target) {
+ targetStack.push(target);
+ Dep.target = target;
+}
+function popTarget() {
+ targetStack.pop();
+ Dep.target = targetStack[targetStack.length - 1];
+}
+
+/*
+ * not type checking this file because flow doesn't play well with
+ * dynamically accessing methods on Array prototype
+ */
+var arrayProto = Array.prototype;
+var arrayMethods = Object.create(arrayProto);
+var methodsToPatch = [
+ 'push',
+ 'pop',
+ 'shift',
+ 'unshift',
+ 'splice',
+ 'sort',
+ 'reverse'
+];
+/**
+ * Intercept mutating methods and emit events
+ */
+methodsToPatch.forEach(function (method) {
+ // cache original method
+ var original = arrayProto[method];
+ def(arrayMethods, method, function mutator() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var result = original.apply(this, args);
+ var ob = this.__ob__;
+ var inserted;
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ }
+ if (inserted)
+ ob.observeArray(inserted);
+ // notify change
+ if (true) {
+ ob.dep.notify({
+ type: "array mutation" /* TriggerOpTypes.ARRAY_MUTATION */,
+ target: this,
+ key: method
+ });
+ }
+ else {}
+ return result;
+ });
+});
+
+var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
+var NO_INITIAL_VALUE = {};
+/**
+ * In some cases we may want to disable observation inside a component's
+ * update computation.
+ */
+var shouldObserve = true;
+function toggleObserving(value) {
+ shouldObserve = value;
+}
+// ssr mock dep
+var mockDep = {
+ notify: noop,
+ depend: noop,
+ addSub: noop,
+ removeSub: noop
+};
+/**
+ * Observer class that is attached to each observed
+ * object. Once attached, the observer converts the target
+ * object's property keys into getter/setters that
+ * collect dependencies and dispatch updates.
+ */
+var Observer = /** @class */ (function () {
+ function Observer(value, shallow, mock) {
+ if (shallow === void 0) { shallow = false; }
+ if (mock === void 0) { mock = false; }
+ this.value = value;
+ this.shallow = shallow;
+ this.mock = mock;
+ // this.value = value
+ this.dep = mock ? mockDep : new Dep();
+ this.vmCount = 0;
+ def(value, '__ob__', this);
+ if (isArray(value)) {
+ if (!mock) {
+ if (hasProto) {
+ value.__proto__ = arrayMethods;
+ /* eslint-enable no-proto */
+ }
+ else {
+ for (var i = 0, l = arrayKeys.length; i < l; i++) {
+ var key = arrayKeys[i];
+ def(value, key, arrayMethods[key]);
+ }
+ }
+ }
+ if (!shallow) {
+ this.observeArray(value);
+ }
+ }
+ else {
+ /**
+ * Walk through all properties and convert them into
+ * getter/setters. This method should only be called when
+ * value type is Object.
+ */
+ var keys = Object.keys(value);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock);
+ }
+ }
+ }
+ /**
+ * Observe a list of Array items.
+ */
+ Observer.prototype.observeArray = function (value) {
+ for (var i = 0, l = value.length; i < l; i++) {
+ observe(value[i], false, this.mock);
+ }
+ };
+ return Observer;
+}());
+// helpers
+/**
+ * Attempt to create an observer instance for a value,
+ * returns the new observer if successfully observed,
+ * or the existing observer if the value already has one.
+ */
+function observe(value, shallow, ssrMockReactivity) {
+ if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
+ return value.__ob__;
+ }
+ if (shouldObserve &&
+ (ssrMockReactivity || !isServerRendering()) &&
+ (isArray(value) || isPlainObject(value)) &&
+ Object.isExtensible(value) &&
+ !value.__v_skip /* ReactiveFlags.SKIP */ &&
+ !isRef(value) &&
+ !(value instanceof VNode)) {
+ return new Observer(value, shallow, ssrMockReactivity);
+ }
+}
+/**
+ * Define a reactive property on an Object.
+ */
+function defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow) {
+ if (observeEvenIfShallow === void 0) { observeEvenIfShallow = false; }
+ var dep = new Dep();
+ var property = Object.getOwnPropertyDescriptor(obj, key);
+ if (property && property.configurable === false) {
+ return;
+ }
+ // cater for pre-defined getter/setters
+ var getter = property && property.get;
+ var setter = property && property.set;
+ if ((!getter || setter) &&
+ (val === NO_INITIAL_VALUE || arguments.length === 2)) {
+ val = obj[key];
+ }
+ var childOb = shallow ? val && val.__ob__ : observe(val, false, mock);
+ Object.defineProperty(obj, key, {
+ enumerable: true,
+ configurable: true,
+ get: function reactiveGetter() {
+ var value = getter ? getter.call(obj) : val;
+ if (Dep.target) {
+ if (true) {
+ dep.depend({
+ target: obj,
+ type: "get" /* TrackOpTypes.GET */,
+ key: key
+ });
+ }
+ else {}
+ if (childOb) {
+ childOb.dep.depend();
+ if (isArray(value)) {
+ dependArray(value);
+ }
+ }
+ }
+ return isRef(value) && !shallow ? value.value : value;
+ },
+ set: function reactiveSetter(newVal) {
+ var value = getter ? getter.call(obj) : val;
+ if (!hasChanged(value, newVal)) {
+ return;
+ }
+ if ( true && customSetter) {
+ customSetter();
+ }
+ if (setter) {
+ setter.call(obj, newVal);
+ }
+ else if (getter) {
+ // #7981: for accessor properties without setter
+ return;
+ }
+ else if (!shallow && isRef(value) && !isRef(newVal)) {
+ value.value = newVal;
+ return;
+ }
+ else {
+ val = newVal;
+ }
+ childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock);
+ if (true) {
+ dep.notify({
+ type: "set" /* TriggerOpTypes.SET */,
+ target: obj,
+ key: key,
+ newValue: newVal,
+ oldValue: value
+ });
+ }
+ else {}
+ }
+ });
+ return dep;
+}
+function set(target, key, val) {
+ if ( true && (isUndef(target) || isPrimitive(target))) {
+ warn("Cannot set reactive property on undefined, null, or primitive value: ".concat(target));
+ }
+ if (isReadonly(target)) {
+ true && warn("Set operation on key \"".concat(key, "\" failed: target is readonly."));
+ return;
+ }
+ var ob = target.__ob__;
+ if (isArray(target) && isValidArrayIndex(key)) {
+ target.length = Math.max(target.length, key);
+ target.splice(key, 1, val);
+ // when mocking for SSR, array methods are not hijacked
+ if (ob && !ob.shallow && ob.mock) {
+ observe(val, false, true);
+ }
+ return val;
+ }
+ if (key in target && !(key in Object.prototype)) {
+ target[key] = val;
+ return val;
+ }
+ if (target._isVue || (ob && ob.vmCount)) {
+ true &&
+ warn('Avoid adding reactive properties to a Vue instance or its root $data ' +
+ 'at runtime - declare it upfront in the data option.');
+ return val;
+ }
+ if (!ob) {
+ target[key] = val;
+ return val;
+ }
+ defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);
+ if (true) {
+ ob.dep.notify({
+ type: "add" /* TriggerOpTypes.ADD */,
+ target: target,
+ key: key,
+ newValue: val,
+ oldValue: undefined
+ });
+ }
+ else {}
+ return val;
+}
+function del(target, key) {
+ if ( true && (isUndef(target) || isPrimitive(target))) {
+ warn("Cannot delete reactive property on undefined, null, or primitive value: ".concat(target));
+ }
+ if (isArray(target) && isValidArrayIndex(key)) {
+ target.splice(key, 1);
+ return;
+ }
+ var ob = target.__ob__;
+ if (target._isVue || (ob && ob.vmCount)) {
+ true &&
+ warn('Avoid deleting properties on a Vue instance or its root $data ' +
+ '- just set it to null.');
+ return;
+ }
+ if (isReadonly(target)) {
+ true &&
+ warn("Delete operation on key \"".concat(key, "\" failed: target is readonly."));
+ return;
+ }
+ if (!hasOwn(target, key)) {
+ return;
+ }
+ delete target[key];
+ if (!ob) {
+ return;
+ }
+ if (true) {
+ ob.dep.notify({
+ type: "delete" /* TriggerOpTypes.DELETE */,
+ target: target,
+ key: key
+ });
+ }
+ else {}
+}
+/**
+ * Collect dependencies on array elements when the array is touched, since
+ * we cannot intercept array element access like property getters.
+ */
+function dependArray(value) {
+ for (var e = void 0, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ if (e && e.__ob__) {
+ e.__ob__.dep.depend();
+ }
+ if (isArray(e)) {
+ dependArray(e);
+ }
+ }
+}
+
+function reactive(target) {
+ makeReactive(target, false);
+ return target;
+}
+/**
+ * Return a shallowly-reactive copy of the original object, where only the root
+ * level properties are reactive. It also does not auto-unwrap refs (even at the
+ * root level).
+ */
+function shallowReactive(target) {
+ makeReactive(target, true);
+ def(target, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
+ return target;
+}
+function makeReactive(target, shallow) {
+ // if trying to observe a readonly proxy, return the readonly version.
+ if (!isReadonly(target)) {
+ if (true) {
+ if (isArray(target)) {
+ warn("Avoid using Array as root value for ".concat(shallow ? "shallowReactive()" : "reactive()", " as it cannot be tracked in watch() or watchEffect(). Use ").concat(shallow ? "shallowRef()" : "ref()", " instead. This is a Vue-2-only limitation."));
+ }
+ var existingOb = target && target.__ob__;
+ if (existingOb && existingOb.shallow !== shallow) {
+ warn("Target is already a ".concat(existingOb.shallow ? "" : "non-", "shallow reactive object, and cannot be converted to ").concat(shallow ? "" : "non-", "shallow."));
+ }
+ }
+ var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);
+ if ( true && !ob) {
+ if (target == null || isPrimitive(target)) {
+ warn("value cannot be made reactive: ".concat(String(target)));
+ }
+ if (isCollectionType(target)) {
+ warn("Vue 2 does not support reactive collection types such as Map or Set.");
+ }
+ }
+ }
+}
+function isReactive(value) {
+ if (isReadonly(value)) {
+ return isReactive(value["__v_raw" /* ReactiveFlags.RAW */]);
+ }
+ return !!(value && value.__ob__);
+}
+function isShallow(value) {
+ return !!(value && value.__v_isShallow);
+}
+function isReadonly(value) {
+ return !!(value && value.__v_isReadonly);
+}
+function isProxy(value) {
+ return isReactive(value) || isReadonly(value);
+}
+function toRaw(observed) {
+ var raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];
+ return raw ? toRaw(raw) : observed;
+}
+function markRaw(value) {
+ // non-extensible objects won't be observed anyway
+ if (Object.isExtensible(value)) {
+ def(value, "__v_skip" /* ReactiveFlags.SKIP */, true);
+ }
+ return value;
+}
+/**
+ * @internal
+ */
+function isCollectionType(value) {
+ var type = toRawType(value);
+ return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');
+}
+
+/**
+ * @internal
+ */
+var RefFlag = "__v_isRef";
+function isRef(r) {
+ return !!(r && r.__v_isRef === true);
+}
+function ref$1(value) {
+ return createRef(value, false);
+}
+function shallowRef(value) {
+ return createRef(value, true);
+}
+function createRef(rawValue, shallow) {
+ if (isRef(rawValue)) {
+ return rawValue;
+ }
+ var ref = {};
+ def(ref, RefFlag, true);
+ def(ref, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, shallow);
+ def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));
+ return ref;
+}
+function triggerRef(ref) {
+ if ( true && !ref.dep) {
+ warn("received object is not a triggerable ref.");
+ }
+ if (true) {
+ ref.dep &&
+ ref.dep.notify({
+ type: "set" /* TriggerOpTypes.SET */,
+ target: ref,
+ key: 'value'
+ });
+ }
+ else {}
+}
+function unref(ref) {
+ return isRef(ref) ? ref.value : ref;
+}
+function proxyRefs(objectWithRefs) {
+ if (isReactive(objectWithRefs)) {
+ return objectWithRefs;
+ }
+ var proxy = {};
+ var keys = Object.keys(objectWithRefs);
+ for (var i = 0; i < keys.length; i++) {
+ proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);
+ }
+ return proxy;
+}
+function proxyWithRefUnwrap(target, source, key) {
+ Object.defineProperty(target, key, {
+ enumerable: true,
+ configurable: true,
+ get: function () {
+ var val = source[key];
+ if (isRef(val)) {
+ return val.value;
+ }
+ else {
+ var ob = val && val.__ob__;
+ if (ob)
+ ob.dep.depend();
+ return val;
+ }
+ },
+ set: function (value) {
+ var oldValue = source[key];
+ if (isRef(oldValue) && !isRef(value)) {
+ oldValue.value = value;
+ }
+ else {
+ source[key] = value;
+ }
+ }
+ });
+}
+function customRef(factory) {
+ var dep = new Dep();
+ var _a = factory(function () {
+ if (true) {
+ dep.depend({
+ target: ref,
+ type: "get" /* TrackOpTypes.GET */,
+ key: 'value'
+ });
+ }
+ else {}
+ }, function () {
+ if (true) {
+ dep.notify({
+ target: ref,
+ type: "set" /* TriggerOpTypes.SET */,
+ key: 'value'
+ });
+ }
+ else {}
+ }), get = _a.get, set = _a.set;
+ var ref = {
+ get value() {
+ return get();
+ },
+ set value(newVal) {
+ set(newVal);
+ }
+ };
+ def(ref, RefFlag, true);
+ return ref;
+}
+function toRefs(object) {
+ if ( true && !isReactive(object)) {
+ warn("toRefs() expects a reactive object but received a plain one.");
+ }
+ var ret = isArray(object) ? new Array(object.length) : {};
+ for (var key in object) {
+ ret[key] = toRef(object, key);
+ }
+ return ret;
+}
+function toRef(object, key, defaultValue) {
+ var val = object[key];
+ if (isRef(val)) {
+ return val;
+ }
+ var ref = {
+ get value() {
+ var val = object[key];
+ return val === undefined ? defaultValue : val;
+ },
+ set value(newVal) {
+ object[key] = newVal;
+ }
+ };
+ def(ref, RefFlag, true);
+ return ref;
+}
+
+var rawToReadonlyFlag = "__v_rawToReadonly";
+var rawToShallowReadonlyFlag = "__v_rawToShallowReadonly";
+function readonly(target) {
+ return createReadonly(target, false);
+}
+function createReadonly(target, shallow) {
+ if (!isPlainObject(target)) {
+ if (true) {
+ if (isArray(target)) {
+ warn("Vue 2 does not support readonly arrays.");
+ }
+ else if (isCollectionType(target)) {
+ warn("Vue 2 does not support readonly collection types such as Map or Set.");
+ }
+ else {
+ warn("value cannot be made readonly: ".concat(typeof target));
+ }
+ }
+ return target;
+ }
+ if ( true && !Object.isExtensible(target)) {
+ warn("Vue 2 does not support creating readonly proxy for non-extensible object.");
+ }
+ // already a readonly object
+ if (isReadonly(target)) {
+ return target;
+ }
+ // already has a readonly proxy
+ var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;
+ var existingProxy = target[existingFlag];
+ if (existingProxy) {
+ return existingProxy;
+ }
+ var proxy = Object.create(Object.getPrototypeOf(target));
+ def(target, existingFlag, proxy);
+ def(proxy, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, true);
+ def(proxy, "__v_raw" /* ReactiveFlags.RAW */, target);
+ if (isRef(target)) {
+ def(proxy, RefFlag, true);
+ }
+ if (shallow || isShallow(target)) {
+ def(proxy, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
+ }
+ var keys = Object.keys(target);
+ for (var i = 0; i < keys.length; i++) {
+ defineReadonlyProperty(proxy, target, keys[i], shallow);
+ }
+ return proxy;
+}
+function defineReadonlyProperty(proxy, target, key, shallow) {
+ Object.defineProperty(proxy, key, {
+ enumerable: true,
+ configurable: true,
+ get: function () {
+ var val = target[key];
+ return shallow || !isPlainObject(val) ? val : readonly(val);
+ },
+ set: function () {
+ true &&
+ warn("Set operation on key \"".concat(key, "\" failed: target is readonly."));
+ }
+ });
+}
+/**
+ * Returns a reactive-copy of the original object, where only the root level
+ * properties are readonly, and does NOT unwrap refs nor recursively convert
+ * returned properties.
+ * This is used for creating the props proxy object for stateful components.
+ */
+function shallowReadonly(target) {
+ return createReadonly(target, true);
+}
+
+function computed(getterOrOptions, debugOptions) {
+ var getter;
+ var setter;
+ var onlyGetter = isFunction(getterOrOptions);
+ if (onlyGetter) {
+ getter = getterOrOptions;
+ setter = true
+ ? function () {
+ warn('Write operation failed: computed value is readonly');
+ }
+ : 0;
+ }
+ else {
+ getter = getterOrOptions.get;
+ setter = getterOrOptions.set;
+ }
+ var watcher = isServerRendering()
+ ? null
+ : new Watcher(currentInstance, getter, noop, { lazy: true });
+ if ( true && watcher && debugOptions) {
+ watcher.onTrack = debugOptions.onTrack;
+ watcher.onTrigger = debugOptions.onTrigger;
+ }
+ var ref = {
+ // some libs rely on the presence effect for checking computed refs
+ // from normal refs, but the implementation doesn't matter
+ effect: watcher,
+ get value() {
+ if (watcher) {
+ if (watcher.dirty) {
+ watcher.evaluate();
+ }
+ if (Dep.target) {
+ if ( true && Dep.target.onTrack) {
+ Dep.target.onTrack({
+ effect: Dep.target,
+ target: ref,
+ type: "get" /* TrackOpTypes.GET */,
+ key: 'value'
+ });
+ }
+ watcher.depend();
+ }
+ return watcher.value;
+ }
+ else {
+ return getter();
+ }
+ },
+ set value(newVal) {
+ setter(newVal);
+ }
+ };
+ def(ref, RefFlag, true);
+ def(ref, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, onlyGetter);
+ return ref;
+}
+
+var WATCHER = "watcher";
+var WATCHER_CB = "".concat(WATCHER, " callback");
+var WATCHER_GETTER = "".concat(WATCHER, " getter");
+var WATCHER_CLEANUP = "".concat(WATCHER, " cleanup");
+// Simple effect.
+function watchEffect(effect, options) {
+ return doWatch(effect, null, options);
+}
+function watchPostEffect(effect, options) {
+ return doWatch(effect, null, ( true
+ ? __assign(__assign({}, options), { flush: 'post' }) : 0));
+}
+function watchSyncEffect(effect, options) {
+ return doWatch(effect, null, ( true
+ ? __assign(__assign({}, options), { flush: 'sync' }) : 0));
+}
+// initial value for watchers to trigger on undefined initial values
+var INITIAL_WATCHER_VALUE = {};
+// implementation
+function watch(source, cb, options) {
+ if ( true && typeof cb !== 'function') {
+ warn("`watch(fn, options?)` signature has been moved to a separate API. " +
+ "Use `watchEffect(fn, options?)` instead. `watch` now only " +
+ "supports `watch(source, cb, options?) signature.");
+ }
+ return doWatch(source, cb, options);
+}
+function doWatch(source, cb, _a) {
+ var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;
+ if ( true && !cb) {
+ if (immediate !== undefined) {
+ warn("watch() \"immediate\" option is only respected when using the " +
+ "watch(source, callback, options?) signature.");
+ }
+ if (deep !== undefined) {
+ warn("watch() \"deep\" option is only respected when using the " +
+ "watch(source, callback, options?) signature.");
+ }
+ }
+ var warnInvalidSource = function (s) {
+ warn("Invalid watch source: ".concat(s, ". A watch source can only be a getter/effect ") +
+ "function, a ref, a reactive object, or an array of these types.");
+ };
+ var instance = currentInstance;
+ var call = function (fn, type, args) {
+ if (args === void 0) { args = null; }
+ var res = invokeWithErrorHandling(fn, null, args, instance, type);
+ if (deep && res && res.__ob__)
+ res.__ob__.dep.depend();
+ return res;
+ };
+ var getter;
+ var forceTrigger = false;
+ var isMultiSource = false;
+ if (isRef(source)) {
+ getter = function () { return source.value; };
+ forceTrigger = isShallow(source);
+ }
+ else if (isReactive(source)) {
+ getter = function () {
+ source.__ob__.dep.depend();
+ return source;
+ };
+ deep = true;
+ }
+ else if (isArray(source)) {
+ isMultiSource = true;
+ forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });
+ getter = function () {
+ return source.map(function (s) {
+ if (isRef(s)) {
+ return s.value;
+ }
+ else if (isReactive(s)) {
+ s.__ob__.dep.depend();
+ return traverse(s);
+ }
+ else if (isFunction(s)) {
+ return call(s, WATCHER_GETTER);
+ }
+ else {
+ true && warnInvalidSource(s);
+ }
+ });
+ };
+ }
+ else if (isFunction(source)) {
+ if (cb) {
+ // getter with cb
+ getter = function () { return call(source, WATCHER_GETTER); };
+ }
+ else {
+ // no cb -> simple effect
+ getter = function () {
+ if (instance && instance._isDestroyed) {
+ return;
+ }
+ if (cleanup) {
+ cleanup();
+ }
+ return call(source, WATCHER, [onCleanup]);
+ };
+ }
+ }
+ else {
+ getter = noop;
+ true && warnInvalidSource(source);
+ }
+ if (cb && deep) {
+ var baseGetter_1 = getter;
+ getter = function () { return traverse(baseGetter_1()); };
+ }
+ var cleanup;
+ var onCleanup = function (fn) {
+ cleanup = watcher.onStop = function () {
+ call(fn, WATCHER_CLEANUP);
+ };
+ };
+ // in SSR there is no need to setup an actual effect, and it should be noop
+ // unless it's eager
+ if (isServerRendering()) {
+ // we will also not call the invalidate callback (+ runner is not set up)
+ onCleanup = noop;
+ if (!cb) {
+ getter();
+ }
+ else if (immediate) {
+ call(cb, WATCHER_CB, [
+ getter(),
+ isMultiSource ? [] : undefined,
+ onCleanup
+ ]);
+ }
+ return noop;
+ }
+ var watcher = new Watcher(currentInstance, getter, noop, {
+ lazy: true
+ });
+ watcher.noRecurse = !cb;
+ var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;
+ // overwrite default run
+ watcher.run = function () {
+ if (!watcher.active) {
+ return;
+ }
+ if (cb) {
+ // watch(source, cb)
+ var newValue = watcher.get();
+ if (deep ||
+ forceTrigger ||
+ (isMultiSource
+ ? newValue.some(function (v, i) {
+ return hasChanged(v, oldValue[i]);
+ })
+ : hasChanged(newValue, oldValue))) {
+ // cleanup before running cb again
+ if (cleanup) {
+ cleanup();
+ }
+ call(cb, WATCHER_CB, [
+ newValue,
+ // pass undefined as the old value when it's changed for the first time
+ oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,
+ onCleanup
+ ]);
+ oldValue = newValue;
+ }
+ }
+ else {
+ // watchEffect
+ watcher.get();
+ }
+ };
+ if (flush === 'sync') {
+ watcher.update = watcher.run;
+ }
+ else if (flush === 'post') {
+ watcher.post = true;
+ watcher.update = function () { return queueWatcher(watcher); };
+ }
+ else {
+ // pre
+ watcher.update = function () {
+ if (instance && instance === currentInstance && !instance._isMounted) {
+ // pre-watcher triggered before
+ var buffer = instance._preWatchers || (instance._preWatchers = []);
+ if (buffer.indexOf(watcher) < 0)
+ buffer.push(watcher);
+ }
+ else {
+ queueWatcher(watcher);
+ }
+ };
+ }
+ if (true) {
+ watcher.onTrack = onTrack;
+ watcher.onTrigger = onTrigger;
+ }
+ // initial run
+ if (cb) {
+ if (immediate) {
+ watcher.run();
+ }
+ else {
+ oldValue = watcher.get();
+ }
+ }
+ else if (flush === 'post' && instance) {
+ instance.$once('hook:mounted', function () { return watcher.get(); });
+ }
+ else {
+ watcher.get();
+ }
+ return function () {
+ watcher.teardown();
+ };
+}
+
+var activeEffectScope;
+var EffectScope = /** @class */ (function () {
+ function EffectScope(detached) {
+ if (detached === void 0) { detached = false; }
+ this.detached = detached;
+ /**
+ * @internal
+ */
+ this.active = true;
+ /**
+ * @internal
+ */
+ this.effects = [];
+ /**
+ * @internal
+ */
+ this.cleanups = [];
+ this.parent = activeEffectScope;
+ if (!detached && activeEffectScope) {
+ this.index =
+ (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
+ }
+ }
+ EffectScope.prototype.run = function (fn) {
+ if (this.active) {
+ var currentEffectScope = activeEffectScope;
+ try {
+ activeEffectScope = this;
+ return fn();
+ }
+ finally {
+ activeEffectScope = currentEffectScope;
+ }
+ }
+ else if (true) {
+ warn("cannot run an inactive effect scope.");
+ }
+ };
+ /**
+ * This should only be called on non-detached scopes
+ * @internal
+ */
+ EffectScope.prototype.on = function () {
+ activeEffectScope = this;
+ };
+ /**
+ * This should only be called on non-detached scopes
+ * @internal
+ */
+ EffectScope.prototype.off = function () {
+ activeEffectScope = this.parent;
+ };
+ EffectScope.prototype.stop = function (fromParent) {
+ if (this.active) {
+ var i = void 0, l = void 0;
+ for (i = 0, l = this.effects.length; i < l; i++) {
+ this.effects[i].teardown();
+ }
+ for (i = 0, l = this.cleanups.length; i < l; i++) {
+ this.cleanups[i]();
+ }
+ if (this.scopes) {
+ for (i = 0, l = this.scopes.length; i < l; i++) {
+ this.scopes[i].stop(true);
+ }
+ }
+ // nested scope, dereference from parent to avoid memory leaks
+ if (!this.detached && this.parent && !fromParent) {
+ // optimized O(1) removal
+ var last = this.parent.scopes.pop();
+ if (last && last !== this) {
+ this.parent.scopes[this.index] = last;
+ last.index = this.index;
+ }
+ }
+ this.parent = undefined;
+ this.active = false;
+ }
+ };
+ return EffectScope;
+}());
+function effectScope(detached) {
+ return new EffectScope(detached);
+}
+/**
+ * @internal
+ */
+function recordEffectScope(effect, scope) {
+ if (scope === void 0) { scope = activeEffectScope; }
+ if (scope && scope.active) {
+ scope.effects.push(effect);
+ }
+}
+function getCurrentScope() {
+ return activeEffectScope;
+}
+function onScopeDispose(fn) {
+ if (activeEffectScope) {
+ activeEffectScope.cleanups.push(fn);
+ }
+ else if (true) {
+ warn("onScopeDispose() is called when there is no active effect scope" +
+ " to be associated with.");
+ }
+}
+
+function provide(key, value) {
+ if (!currentInstance) {
+ if (true) {
+ warn("provide() can only be used inside setup().");
+ }
+ }
+ else {
+ // TS doesn't allow symbol as index type
+ resolveProvided(currentInstance)[key] = value;
+ }
+}
+function resolveProvided(vm) {
+ // by default an instance inherits its parent's provides object
+ // but when it needs to provide values of its own, it creates its
+ // own provides object using parent provides object as prototype.
+ // this way in `inject` we can simply look up injections from direct
+ // parent and let the prototype chain do the work.
+ var existing = vm._provided;
+ var parentProvides = vm.$parent && vm.$parent._provided;
+ if (parentProvides === existing) {
+ return (vm._provided = Object.create(parentProvides));
+ }
+ else {
+ return existing;
+ }
+}
+function inject(key, defaultValue, treatDefaultAsFactory) {
+ if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }
+ // fallback to `currentRenderingInstance` so that this can be called in
+ // a functional component
+ var instance = currentInstance;
+ if (instance) {
+ // #2400
+ // to support `app.use` plugins,
+ // fallback to appContext's `provides` if the instance is at root
+ var provides = instance.$parent && instance.$parent._provided;
+ if (provides && key in provides) {
+ // TS doesn't allow symbol as index type
+ return provides[key];
+ }
+ else if (arguments.length > 1) {
+ return treatDefaultAsFactory && isFunction(defaultValue)
+ ? defaultValue.call(instance)
+ : defaultValue;
+ }
+ else if (true) {
+ warn("injection \"".concat(String(key), "\" not found."));
+ }
+ }
+ else if (true) {
+ warn("inject() can only be used inside setup() or functional components.");
+ }
+}
+
+var normalizeEvent = cached(function (name) {
+ var passive = name.charAt(0) === '&';
+ name = passive ? name.slice(1) : name;
+ var once = name.charAt(0) === '~'; // Prefixed last, checked first
+ name = once ? name.slice(1) : name;
+ var capture = name.charAt(0) === '!';
+ name = capture ? name.slice(1) : name;
+ return {
+ name: name,
+ once: once,
+ capture: capture,
+ passive: passive
+ };
+});
+function createFnInvoker(fns, vm) {
+ function invoker() {
+ var fns = invoker.fns;
+ if (isArray(fns)) {
+ var cloned = fns.slice();
+ for (var i = 0; i < cloned.length; i++) {
+ invokeWithErrorHandling(cloned[i], null, arguments, vm, "v-on handler");
+ }
+ }
+ else {
+ // return handler return value for single handlers
+ return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler");
+ }
+ }
+ invoker.fns = fns;
+ return invoker;
+}
+function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {
+ var name, cur, old, event;
+ for (name in on) {
+ cur = on[name];
+ old = oldOn[name];
+ event = normalizeEvent(name);
+ if (isUndef(cur)) {
+ true &&
+ warn("Invalid handler for event \"".concat(event.name, "\": got ") + String(cur), vm);
+ }
+ else if (isUndef(old)) {
+ if (isUndef(cur.fns)) {
+ cur = on[name] = createFnInvoker(cur, vm);
+ }
+ if (isTrue(event.once)) {
+ cur = on[name] = createOnceHandler(event.name, cur, event.capture);
+ }
+ add(event.name, cur, event.capture, event.passive, event.params);
+ }
+ else if (cur !== old) {
+ old.fns = cur;
+ on[name] = old;
+ }
+ }
+ for (name in oldOn) {
+ if (isUndef(on[name])) {
+ event = normalizeEvent(name);
+ remove(event.name, oldOn[name], event.capture);
+ }
+ }
+}
+
+function mergeVNodeHook(def, hookKey, hook) {
+ if (def instanceof VNode) {
+ def = def.data.hook || (def.data.hook = {});
+ }
+ var invoker;
+ var oldHook = def[hookKey];
+ function wrappedHook() {
+ hook.apply(this, arguments);
+ // important: remove merged hook to ensure it's called only once
+ // and prevent memory leak
+ remove$2(invoker.fns, wrappedHook);
+ }
+ if (isUndef(oldHook)) {
+ // no existing hook
+ invoker = createFnInvoker([wrappedHook]);
+ }
+ else {
+ /* istanbul ignore if */
+ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
+ // already a merged invoker
+ invoker = oldHook;
+ invoker.fns.push(wrappedHook);
+ }
+ else {
+ // existing plain hook
+ invoker = createFnInvoker([oldHook, wrappedHook]);
+ }
+ }
+ invoker.merged = true;
+ def[hookKey] = invoker;
+}
+
+function extractPropsFromVNodeData(data, Ctor, tag) {
+ // we are only extracting raw values here.
+ // validation and default values are handled in the child
+ // component itself.
+ var propOptions = Ctor.options.props;
+ if (isUndef(propOptions)) {
+ return;
+ }
+ var res = {};
+ var attrs = data.attrs, props = data.props;
+ if (isDef(attrs) || isDef(props)) {
+ for (var key in propOptions) {
+ var altKey = hyphenate(key);
+ if (true) {
+ var keyInLowerCase = key.toLowerCase();
+ if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {
+ tip("Prop \"".concat(keyInLowerCase, "\" is passed to component ") +
+ "".concat(formatComponentName(
+ // @ts-expect-error tag is string
+ tag || Ctor), ", but the declared prop name is") +
+ " \"".concat(key, "\". ") +
+ "Note that HTML attributes are case-insensitive and camelCased " +
+ "props need to use their kebab-case equivalents when using in-DOM " +
+ "templates. You should probably use \"".concat(altKey, "\" instead of \"").concat(key, "\"."));
+ }
+ }
+ checkProp(res, props, key, altKey, true) ||
+ checkProp(res, attrs, key, altKey, false);
+ }
+ }
+ return res;
+}
+function checkProp(res, hash, key, altKey, preserve) {
+ if (isDef(hash)) {
+ if (hasOwn(hash, key)) {
+ res[key] = hash[key];
+ if (!preserve) {
+ delete hash[key];
+ }
+ return true;
+ }
+ else if (hasOwn(hash, altKey)) {
+ res[key] = hash[altKey];
+ if (!preserve) {
+ delete hash[altKey];
+ }
+ return true;
+ }
+ }
+ return false;
+}
+
+// The template compiler attempts to minimize the need for normalization by
+// statically analyzing the template at compile time.
+//
+// For plain HTML markup, normalization can be completely skipped because the
+// generated render function is guaranteed to return Array. There are
+// two cases where extra normalization is needed:
+// 1. When the children contains components - because a functional component
+// may return an Array instead of a single root. In this case, just a simple
+// normalization is needed - if any child is an Array, we flatten the whole
+// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
+// because functional components already normalize their own children.
+function simpleNormalizeChildren(children) {
+ for (var i = 0; i < children.length; i++) {
+ if (isArray(children[i])) {
+ return Array.prototype.concat.apply([], children);
+ }
+ }
+ return children;
+}
+// 2. When the children contains constructs that always generated nested Arrays,
+// e.g. , , v-for, or when the children is provided by user
+// with hand-written render functions / JSX. In such cases a full normalization
+// is needed to cater to all possible types of children values.
+function normalizeChildren(children) {
+ return isPrimitive(children)
+ ? [createTextVNode(children)]
+ : isArray(children)
+ ? normalizeArrayChildren(children)
+ : undefined;
+}
+function isTextNode(node) {
+ return isDef(node) && isDef(node.text) && isFalse(node.isComment);
+}
+function normalizeArrayChildren(children, nestedIndex) {
+ var res = [];
+ var i, c, lastIndex, last;
+ for (i = 0; i < children.length; i++) {
+ c = children[i];
+ if (isUndef(c) || typeof c === 'boolean')
+ continue;
+ lastIndex = res.length - 1;
+ last = res[lastIndex];
+ // nested
+ if (isArray(c)) {
+ if (c.length > 0) {
+ c = normalizeArrayChildren(c, "".concat(nestedIndex || '', "_").concat(i));
+ // merge adjacent text nodes
+ if (isTextNode(c[0]) && isTextNode(last)) {
+ res[lastIndex] = createTextVNode(last.text + c[0].text);
+ c.shift();
+ }
+ res.push.apply(res, c);
+ }
+ }
+ else if (isPrimitive(c)) {
+ if (isTextNode(last)) {
+ // merge adjacent text nodes
+ // this is necessary for SSR hydration because text nodes are
+ // essentially merged when rendered to HTML strings
+ res[lastIndex] = createTextVNode(last.text + c);
+ }
+ else if (c !== '') {
+ // convert primitive to vnode
+ res.push(createTextVNode(c));
+ }
+ }
+ else {
+ if (isTextNode(c) && isTextNode(last)) {
+ // merge adjacent text nodes
+ res[lastIndex] = createTextVNode(last.text + c.text);
+ }
+ else {
+ // default key for nested array children (likely generated by v-for)
+ if (isTrue(children._isVList) &&
+ isDef(c.tag) &&
+ isUndef(c.key) &&
+ isDef(nestedIndex)) {
+ c.key = "__vlist".concat(nestedIndex, "_").concat(i, "__");
+ }
+ res.push(c);
+ }
+ }
+ }
+ return res;
+}
+
+/**
+ * Runtime helper for rendering v-for lists.
+ */
+function renderList(val, render) {
+ var ret = null, i, l, keys, key;
+ if (isArray(val) || typeof val === 'string') {
+ ret = new Array(val.length);
+ for (i = 0, l = val.length; i < l; i++) {
+ ret[i] = render(val[i], i);
+ }
+ }
+ else if (typeof val === 'number') {
+ ret = new Array(val);
+ for (i = 0; i < val; i++) {
+ ret[i] = render(i + 1, i);
+ }
+ }
+ else if (isObject(val)) {
+ if (hasSymbol && val[Symbol.iterator]) {
+ ret = [];
+ var iterator = val[Symbol.iterator]();
+ var result = iterator.next();
+ while (!result.done) {
+ ret.push(render(result.value, ret.length));
+ result = iterator.next();
+ }
+ }
+ else {
+ keys = Object.keys(val);
+ ret = new Array(keys.length);
+ for (i = 0, l = keys.length; i < l; i++) {
+ key = keys[i];
+ ret[i] = render(val[key], key, i);
+ }
+ }
+ }
+ if (!isDef(ret)) {
+ ret = [];
+ }
+ ret._isVList = true;
+ return ret;
+}
+
+/**
+ * Runtime helper for rendering
+ */
+function renderSlot(name, fallbackRender, props, bindObject) {
+ var scopedSlotFn = this.$scopedSlots[name];
+ var nodes;
+ if (scopedSlotFn) {
+ // scoped slot
+ props = props || {};
+ if (bindObject) {
+ if ( true && !isObject(bindObject)) {
+ warn('slot v-bind without argument expects an Object', this);
+ }
+ props = extend(extend({}, bindObject), props);
+ }
+ nodes =
+ scopedSlotFn(props) ||
+ (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
+ }
+ else {
+ nodes =
+ this.$slots[name] ||
+ (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
+ }
+ var target = props && props.slot;
+ if (target) {
+ return this.$createElement('template', { slot: target }, nodes);
+ }
+ else {
+ return nodes;
+ }
+}
+
+/**
+ * Runtime helper for resolving filters
+ */
+function resolveFilter(id) {
+ return resolveAsset(this.$options, 'filters', id, true) || identity;
+}
+
+function isKeyNotMatch(expect, actual) {
+ if (isArray(expect)) {
+ return expect.indexOf(actual) === -1;
+ }
+ else {
+ return expect !== actual;
+ }
+}
+/**
+ * Runtime helper for checking keyCodes from config.
+ * exposed as Vue.prototype._k
+ * passing in eventKeyName as last argument separately for backwards compat
+ */
+function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {
+ var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
+ if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
+ return isKeyNotMatch(builtInKeyName, eventKeyName);
+ }
+ else if (mappedKeyCode) {
+ return isKeyNotMatch(mappedKeyCode, eventKeyCode);
+ }
+ else if (eventKeyName) {
+ return hyphenate(eventKeyName) !== key;
+ }
+ return eventKeyCode === undefined;
+}
+
+/**
+ * Runtime helper for merging v-bind="object" into a VNode's data.
+ */
+function bindObjectProps(data, tag, value, asProp, isSync) {
+ if (value) {
+ if (!isObject(value)) {
+ true &&
+ warn('v-bind without argument expects an Object or Array value', this);
+ }
+ else {
+ if (isArray(value)) {
+ value = toObject(value);
+ }
+ var hash = void 0;
+ var _loop_1 = function (key) {
+ if (key === 'class' || key === 'style' || isReservedAttribute(key)) {
+ hash = data;
+ }
+ else {
+ var type = data.attrs && data.attrs.type;
+ hash =
+ asProp || config.mustUseProp(tag, type, key)
+ ? data.domProps || (data.domProps = {})
+ : data.attrs || (data.attrs = {});
+ }
+ var camelizedKey = camelize(key);
+ var hyphenatedKey = hyphenate(key);
+ if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
+ hash[key] = value[key];
+ if (isSync) {
+ var on = data.on || (data.on = {});
+ on["update:".concat(key)] = function ($event) {
+ value[key] = $event;
+ };
+ }
+ }
+ };
+ for (var key in value) {
+ _loop_1(key);
+ }
+ }
+ }
+ return data;
+}
+
+/**
+ * Runtime helper for rendering static trees.
+ */
+function renderStatic(index, isInFor) {
+ var cached = this._staticTrees || (this._staticTrees = []);
+ var tree = cached[index];
+ // if has already-rendered static tree and not inside v-for,
+ // we can reuse the same tree.
+ if (tree && !isInFor) {
+ return tree;
+ }
+ // otherwise, render a fresh tree.
+ tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates
+ );
+ markStatic(tree, "__static__".concat(index), false);
+ return tree;
+}
+/**
+ * Runtime helper for v-once.
+ * Effectively it means marking the node as static with a unique key.
+ */
+function markOnce(tree, index, key) {
+ markStatic(tree, "__once__".concat(index).concat(key ? "_".concat(key) : ""), true);
+ return tree;
+}
+function markStatic(tree, key, isOnce) {
+ if (isArray(tree)) {
+ for (var i = 0; i < tree.length; i++) {
+ if (tree[i] && typeof tree[i] !== 'string') {
+ markStaticNode(tree[i], "".concat(key, "_").concat(i), isOnce);
+ }
+ }
+ }
+ else {
+ markStaticNode(tree, key, isOnce);
+ }
+}
+function markStaticNode(node, key, isOnce) {
+ node.isStatic = true;
+ node.key = key;
+ node.isOnce = isOnce;
+}
+
+function bindObjectListeners(data, value) {
+ if (value) {
+ if (!isPlainObject(value)) {
+ true && warn('v-on without argument expects an Object value', this);
+ }
+ else {
+ var on = (data.on = data.on ? extend({}, data.on) : {});
+ for (var key in value) {
+ var existing = on[key];
+ var ours = value[key];
+ on[key] = existing ? [].concat(existing, ours) : ours;
+ }
+ }
+ }
+ return data;
+}
+
+function resolveScopedSlots(fns, res,
+// the following are added in 2.6
+hasDynamicKeys, contentHashKey) {
+ res = res || { $stable: !hasDynamicKeys };
+ for (var i = 0; i < fns.length; i++) {
+ var slot = fns[i];
+ if (isArray(slot)) {
+ resolveScopedSlots(slot, res, hasDynamicKeys);
+ }
+ else if (slot) {
+ // marker for reverse proxying v-slot without scope on this.$slots
+ // @ts-expect-error
+ if (slot.proxy) {
+ // @ts-expect-error
+ slot.fn.proxy = true;
+ }
+ res[slot.key] = slot.fn;
+ }
+ }
+ if (contentHashKey) {
+ res.$key = contentHashKey;
+ }
+ return res;
+}
+
+// helper to process dynamic keys for dynamic arguments in v-bind and v-on.
+function bindDynamicKeys(baseObj, values) {
+ for (var i = 0; i < values.length; i += 2) {
+ var key = values[i];
+ if (typeof key === 'string' && key) {
+ baseObj[values[i]] = values[i + 1];
+ }
+ else if ( true && key !== '' && key !== null) {
+ // null is a special value for explicitly removing a binding
+ warn("Invalid value for dynamic directive argument (expected string or null): ".concat(key), this);
+ }
+ }
+ return baseObj;
+}
+// helper to dynamically append modifier runtime markers to event names.
+// ensure only append when value is already string, otherwise it will be cast
+// to string and cause the type check to miss.
+function prependModifier(value, symbol) {
+ return typeof value === 'string' ? symbol + value : value;
+}
+
+function installRenderHelpers(target) {
+ target._o = markOnce;
+ target._n = toNumber;
+ target._s = toString;
+ target._l = renderList;
+ target._t = renderSlot;
+ target._q = looseEqual;
+ target._i = looseIndexOf;
+ target._m = renderStatic;
+ target._f = resolveFilter;
+ target._k = checkKeyCodes;
+ target._b = bindObjectProps;
+ target._v = createTextVNode;
+ target._e = createEmptyVNode;
+ target._u = resolveScopedSlots;
+ target._g = bindObjectListeners;
+ target._d = bindDynamicKeys;
+ target._p = prependModifier;
+}
+
+/**
+ * Runtime helper for resolving raw children VNodes into a slot object.
+ */
+function resolveSlots(children, context) {
+ if (!children || !children.length) {
+ return {};
+ }
+ var slots = {};
+ for (var i = 0, l = children.length; i < l; i++) {
+ var child = children[i];
+ var data = child.data;
+ // remove slot attribute if the node is resolved as a Vue slot node
+ if (data && data.attrs && data.attrs.slot) {
+ delete data.attrs.slot;
+ }
+ // named slots should only be respected if the vnode was rendered in the
+ // same context.
+ if ((child.context === context || child.fnContext === context) &&
+ data &&
+ data.slot != null) {
+ var name_1 = data.slot;
+ var slot = slots[name_1] || (slots[name_1] = []);
+ if (child.tag === 'template') {
+ slot.push.apply(slot, child.children || []);
+ }
+ else {
+ slot.push(child);
+ }
+ }
+ else {
+ (slots.default || (slots.default = [])).push(child);
+ }
+ }
+ // ignore slots that contains only whitespace
+ for (var name_2 in slots) {
+ if (slots[name_2].every(isWhitespace)) {
+ delete slots[name_2];
+ }
+ }
+ return slots;
+}
+function isWhitespace(node) {
+ return (node.isComment && !node.asyncFactory) || node.text === ' ';
+}
+
+function isAsyncPlaceholder(node) {
+ // @ts-expect-error not really boolean type
+ return node.isComment && node.asyncFactory;
+}
+
+function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {
+ var res;
+ var hasNormalSlots = Object.keys(normalSlots).length > 0;
+ var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;
+ var key = scopedSlots && scopedSlots.$key;
+ if (!scopedSlots) {
+ res = {};
+ }
+ else if (scopedSlots._normalized) {
+ // fast path 1: child component re-render only, parent did not change
+ return scopedSlots._normalized;
+ }
+ else if (isStable &&
+ prevScopedSlots &&
+ prevScopedSlots !== emptyObject &&
+ key === prevScopedSlots.$key &&
+ !hasNormalSlots &&
+ !prevScopedSlots.$hasNormal) {
+ // fast path 2: stable scoped slots w/ no normal slots to proxy,
+ // only need to normalize once
+ return prevScopedSlots;
+ }
+ else {
+ res = {};
+ for (var key_1 in scopedSlots) {
+ if (scopedSlots[key_1] && key_1[0] !== '$') {
+ res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);
+ }
+ }
+ }
+ // expose normal slots on scopedSlots
+ for (var key_2 in normalSlots) {
+ if (!(key_2 in res)) {
+ res[key_2] = proxyNormalSlot(normalSlots, key_2);
+ }
+ }
+ // avoriaz seems to mock a non-extensible $scopedSlots object
+ // and when that is passed down this would cause an error
+ if (scopedSlots && Object.isExtensible(scopedSlots)) {
+ scopedSlots._normalized = res;
+ }
+ def(res, '$stable', isStable);
+ def(res, '$key', key);
+ def(res, '$hasNormal', hasNormalSlots);
+ return res;
+}
+function normalizeScopedSlot(vm, normalSlots, key, fn) {
+ var normalized = function () {
+ var cur = currentInstance;
+ setCurrentInstance(vm);
+ var res = arguments.length ? fn.apply(null, arguments) : fn({});
+ res =
+ res && typeof res === 'object' && !isArray(res)
+ ? [res] // single vnode
+ : normalizeChildren(res);
+ var vnode = res && res[0];
+ setCurrentInstance(cur);
+ return res &&
+ (!vnode ||
+ (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391
+ ? undefined
+ : res;
+ };
+ // this is a slot using the new v-slot syntax without scope. although it is
+ // compiled as a scoped slot, render fn users would expect it to be present
+ // on this.$slots because the usage is semantically a normal slot.
+ if (fn.proxy) {
+ Object.defineProperty(normalSlots, key, {
+ get: normalized,
+ enumerable: true,
+ configurable: true
+ });
+ }
+ return normalized;
+}
+function proxyNormalSlot(slots, key) {
+ return function () { return slots[key]; };
+}
+
+function initSetup(vm) {
+ var options = vm.$options;
+ var setup = options.setup;
+ if (setup) {
+ var ctx = (vm._setupContext = createSetupContext(vm));
+ setCurrentInstance(vm);
+ pushTarget();
+ var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, "setup");
+ popTarget();
+ setCurrentInstance();
+ if (isFunction(setupResult)) {
+ // render function
+ // @ts-ignore
+ options.render = setupResult;
+ }
+ else if (isObject(setupResult)) {
+ // bindings
+ if ( true && setupResult instanceof VNode) {
+ warn("setup() should not return VNodes directly - " +
+ "return a render function instead.");
+ }
+ vm._setupState = setupResult;
+ // __sfc indicates compiled bindings from