From 847fbb2d1a47623ad43d3c4f7d6551e4fb1c15b1 Mon Sep 17 00:00:00 2001 From: Marcus Nitzschke Date: Mon, 31 Oct 2022 14:19:48 +0100 Subject: [PATCH] Version bump 0.10.0 --- appinfo/info.xml | 2 +- js/openhab-main.js | 142919 +----------------------------- js/openhab-main.js.LICENSE.txt | 147 + js/openhab-main.js.map | 2 +- package.json | 2 +- 5 files changed, 153 insertions(+), 142919 deletions(-) create mode 100644 js/openhab-main.js.LICENSE.txt diff --git a/appinfo/info.xml b/appinfo/info.xml index d2d28a1..5f84f2a 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -5,7 +5,7 @@ Openhab Viewer Renders sitemaps of an Openhab instance. This app renders the available sitemaps of an Openhab server instance. This allows you to display values from your smart home in Nextcloud. - 0.9.7 + 0.10.0 agpl Marcus Nitzschke integration diff --git a/js/openhab-main.js b/js/openhab-main.js index 39e4eb3..5d21c3e 100644 --- a/js/openhab-main.js +++ b/js/openhab-main.js @@ -1,142916 +1,3 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@nextcloud/auth/dist/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@nextcloud/auth/dist/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "getRequestToken", ({ - enumerable: true, - get: function get() { - return _requesttoken.getRequestToken; - } -})); -Object.defineProperty(exports, "onRequestTokenUpdate", ({ - enumerable: true, - get: function get() { - return _requesttoken.onRequestTokenUpdate; - } -})); -Object.defineProperty(exports, "getCurrentUser", ({ - enumerable: true, - get: function get() { - return _user.getCurrentUser; - } -})); - -var _requesttoken = __webpack_require__(/*! ./requesttoken */ "./node_modules/@nextcloud/auth/dist/requesttoken.js"); - -var _user = __webpack_require__(/*! ./user */ "./node_modules/@nextcloud/auth/dist/user.js"); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/auth/dist/requesttoken.js": -/*!***********************************************************!*\ - !*** ./node_modules/@nextcloud/auth/dist/requesttoken.js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - -__webpack_require__(/*! core-js/modules/es.array.for-each */ "./node_modules/core-js/modules/es.array.for-each.js"); - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getRequestToken = getRequestToken; -exports.onRequestTokenUpdate = onRequestTokenUpdate; - -var _eventBus = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.es.js"); - -var tokenElement = document.getElementsByTagName('head')[0]; -var token = tokenElement ? tokenElement.getAttribute('data-requesttoken') : null; -var observers = []; - -function getRequestToken() { - return token; -} - -function onRequestTokenUpdate(observer) { - observers.push(observer); -} // Listen to server event and keep token in sync - - -(0, _eventBus.subscribe)('csrf-token-update', function (e) { - token = e.token; - observers.forEach(function (observer) { - try { - observer(e.token); - } catch (e) { - console.error('error updating CSRF token observer', e); - } - }); -}); -//# sourceMappingURL=requesttoken.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/auth/dist/user.js": -/*!***************************************************!*\ - !*** ./node_modules/@nextcloud/auth/dist/user.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getCurrentUser = getCurrentUser; -/// -var uidElement = document.getElementsByTagName('head')[0]; -var uid = uidElement ? uidElement.getAttribute('data-user') : null; -var displayNameElement = document.getElementsByTagName('head')[0]; -var displayName = displayNameElement ? displayNameElement.getAttribute('data-user-displayname') : null; -var isAdmin = typeof OC === 'undefined' ? false : OC.isUserAdmin(); - -function getCurrentUser() { - if (uid === null) { - return null; - } - - return { - uid: uid, - displayName: displayName, - isAdmin: isAdmin - }; -} -//# sourceMappingURL=user.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/axios/dist/index.js": -/*!*****************************************************!*\ - !*** ./node_modules/@nextcloud/axios/dist/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -__webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js"); - -var _axios = _interopRequireDefault(__webpack_require__(/*! axios */ "./node_modules/axios/index.js")); - -var _auth = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.js"); - -var _getRequestToken; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var client = _axios.default.create({ - headers: { - requesttoken: (_getRequestToken = (0, _auth.getRequestToken)()) !== null && _getRequestToken !== void 0 ? _getRequestToken : '' - } -}); - -var cancelableClient = Object.assign(client, { - CancelToken: _axios.default.CancelToken, - isCancel: _axios.default.isCancel -}); -(0, _auth.onRequestTokenUpdate)(function (token) { - return client.defaults.headers.requesttoken = token; -}); -var _default = cancelableClient; -exports["default"] = _default; -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/dist/index.js": -/*!***************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/dist/index.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -__webpack_require__(/*! core-js/modules/es.array.filter */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.filter.js"); - -__webpack_require__(/*! core-js/modules/es.array.map */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.map.js"); - -__webpack_require__(/*! core-js/modules/es.object.keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.keys.js"); - -__webpack_require__(/*! core-js/modules/es.string.starts-with */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.string.starts-with.js"); - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getBuilder = getBuilder; -exports.clearAll = clearAll; -exports.clearNonPersistent = clearNonPersistent; - -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 }; } - -function getBuilder(appId) { - return new _storagebuilder.default(appId); -} - -function clearStorage(storage, pred) { - Object.keys(storage).filter(function (k) { - return pred ? pred(k) : true; - }).map(storage.removeItem.bind(storage)); -} - -function clearAll() { - var storages = [window.sessionStorage, window.localStorage]; - storages.map(function (s) { - return clearStorage(s); - }); -} - -function clearNonPersistent() { - var storages = [window.sessionStorage, window.localStorage]; - storages.map(function (s) { - return clearStorage(s, function (k) { - return !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, __webpack_require__) => { - -"use strict"; - - -__webpack_require__(/*! core-js/modules/es.array.concat */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.concat.js"); - -__webpack_require__(/*! core-js/modules/es.array.filter */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.filter.js"); - -__webpack_require__(/*! core-js/modules/es.array.map */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.map.js"); - -__webpack_require__(/*! core-js/modules/es.object.keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.keys.js"); - -__webpack_require__(/*! core-js/modules/es.string.starts-with */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.string.starts-with.js"); - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var ScopedStorage = -/*#__PURE__*/ -function () { - function ScopedStorage(scope, wrapped, persistent) { - _classCallCheck(this, ScopedStorage); - - _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; - } - - _createClass(ScopedStorage, [{ - key: "scopeKey", - value: function scopeKey(key) { - return "".concat(this.scope).concat(key); - } - }, { - key: "setItem", - value: function setItem(key, value) { - this.wrapped.setItem(this.scopeKey(key), value); - } - }, { - key: "getItem", - value: function getItem(key) { - return this.wrapped.getItem(this.scopeKey(key)); - } - }, { - key: "removeItem", - value: function removeItem(key) { - this.wrapped.removeItem(this.scopeKey(key)); - } - }, { - key: "clear", - value: function clear() { - var _this = this; - - Object.keys(this.wrapped).filter(function (key) { - return key.startsWith(_this.scope); - }).map(this.wrapped.removeItem.bind(this.wrapped)); - } - }]); - - return ScopedStorage; -}(); - -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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var StorageBuilder = -/*#__PURE__*/ -function () { - function StorageBuilder(appId) { - _classCallCheck(this, StorageBuilder); - - _defineProperty(this, "appId", void 0); - - _defineProperty(this, "persisted", false); - - _defineProperty(this, "clearedOnLogout", false); - - this.appId = appId; - } - - _createClass(StorageBuilder, [{ - key: "persist", - value: function persist() { - var _persist = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - this.persisted = _persist; - return this; - } - }, { - key: "clearOnLogout", - value: function clearOnLogout() { - var clear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - this.clearedOnLogout = clear; - return this; - } - }, { - key: "build", - value: function build() { - return new _scopedstorage.default(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout); - } - }]); - - return StorageBuilder; -}(); - -exports["default"] = StorageBuilder; -//# sourceMappingURL=storagebuilder.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/a-function.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/a-function.js ***! - \**********************************************************************************************/ -/***/ ((module) => { - -module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/an-object.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/an-object.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); - -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-includes.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-includes.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js"); -var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js"); -var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-absolute-index.js"); - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -module.exports = { - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-iteration.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-iteration.js ***! - \***************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var bind = __webpack_require__(/*! ../internals/bind-context */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/bind-context.js"); -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/indexed-object.js"); -var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js"); -var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js"); -var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-create.js"); - -var push = [].push; - -// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push.call(target, value); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; - -module.exports = { - // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.github.io/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6) -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js": -/*!********************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js ***! - \********************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js"); -var V8_VERSION = __webpack_require__(/*! ../internals/v8-version */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/v8-version.js"); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-create.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-create.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); -var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-array.js"); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js"); - -var SPECIES = wellKnownSymbol('species'); - -// `ArraySpeciesCreate` abstract operation -// https://tc39.github.io/ecma262/#sec-arrayspeciescreate -module.exports = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/bind-context.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/bind-context.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/a-function.js"); - -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js ***! - \***********************************************************************************************/ -/***/ ((module) => { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/copy-constructor-properties.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/copy-constructor-properties.js ***! - \***************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var has = __webpack_require__(/*! ../internals/has */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js"); -var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/own-keys.js"); -var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js"); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js"); - -module.exports = function (target, source) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/correct-is-regexp-logic.js": -/*!***********************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/correct-is-regexp-logic.js ***! - \***********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js"); - -var MATCH = wellKnownSymbol('match'); - -module.exports = function (METHOD_NAME) { - var regexp = /./; - try { - '/./'[METHOD_NAME](regexp); - } catch (e) { - try { - regexp[MATCH] = false; - return '/./'[METHOD_NAME](regexp); - } catch (f) { /* empty */ } - } return false; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js": -/*!******************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js ***! - \******************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js"); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js"); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js"); - -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js": -/*!**************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js ***! - \**************************************************************************************************************/ -/***/ ((module) => { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property.js ***! - \***************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js"); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js"); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js"); - -module.exports = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); - -// Thank's IE8 for his funny defineProperty -module.exports = !fails(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/document-create-element.js": -/*!***********************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/document-create-element.js ***! - \***********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); - -var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/enum-bug-keys.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/enum-bug-keys.js ***! - \*************************************************************************************************/ -/***/ ((module) => { - -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js").f); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js"); -var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/redefine.js"); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/set-global.js"); -var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/copy-constructor-properties.js"); -var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-forced.js"); - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js ***! - \*****************************************************************************************/ -/***/ ((module) => { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-built-in.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-built-in.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var path = __webpack_require__(/*! ../internals/path */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/path.js"); -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || - // eslint-disable-next-line no-new-func - Function('return this')(); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js ***! - \***************************************************************************************/ -/***/ ((module) => { - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/hidden-keys.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/hidden-keys.js ***! - \***********************************************************************************************/ -/***/ ((module) => { - -module.exports = {}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ie8-dom-define.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ie8-dom-define.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js"); -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/document-create-element.js"); - -// Thank's IE8 for his funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/indexed-object.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/indexed-object.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); -var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js"); - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/inspect-source.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/inspect-source.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-store.js"); - -var functionToString = Function.toString; - -// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper -if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; -} - -module.exports = store.inspectSource; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/internal-state.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/internal-state.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-weak-map.js"); -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js"); -var objectHas = __webpack_require__(/*! ../internals/has */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js"); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-key.js"); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/hidden-keys.js"); - -var WeakMap = global.WeakMap; -var set, get, has; - -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); -}; - -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; - -if (NATIVE_WEAK_MAP) { - var store = new WeakMap(); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return objectHas(it, STATE); - }; -} - -module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-array.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-array.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js"); - -// `IsArray` abstract operation -// https://tc39.github.io/ecma262/#sec-isarray -module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-forced.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-forced.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); - -var replacement = /#|\.prototype\./; - -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; -}; - -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; - -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; - -module.exports = isForced; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js ***! - \*********************************************************************************************/ -/***/ ((module) => { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-pure.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-pure.js ***! - \*******************************************************************************************/ -/***/ ((module) => { - -module.exports = false; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-regexp.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-regexp.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); -var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js"); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js"); - -var MATCH = wellKnownSymbol('match'); - -// `IsRegExp` abstract operation -// https://tc39.github.io/ecma262/#sec-isregexp -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-symbol.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-symbol.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); - -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-weak-map.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-weak-map.js ***! - \***************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/inspect-source.js"); - -var WeakMap = global.WeakMap; - -module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/not-a-regexp.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/not-a-regexp.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-regexp.js"); - -module.exports = function (it) { - if (isRegExp(it)) { - throw TypeError("The method doesn't accept regular expressions"); - } return it; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js": -/*!**********************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js ***! - \**********************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js"); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ie8-dom-define.js"); -var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/an-object.js"); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js"); - -var nativeDefineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.github.io/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js": -/*!**********************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js"); -var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-property-is-enumerable.js"); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js"); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js"); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js"); -var has = __webpack_require__(/*! ../internals/has */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js"); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ie8-dom-define.js"); - -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-names.js": -/*!*****************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-names.js ***! - \*****************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys-internal.js"); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/enum-bug-keys.js"); - -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - -// `Object.getOwnPropertyNames` method -// https://tc39.github.io/ecma262/#sec-object.getownpropertynames -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-symbols.js": -/*!*******************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-symbols.js ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys-internal.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys-internal.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var has = __webpack_require__(/*! ../internals/has */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js"); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js"); -var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-includes.js").indexOf); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/hidden-keys.js"); - -module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys-internal.js"); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/enum-bug-keys.js"); - -// `Object.keys` method -// https://tc39.github.io/ecma262/#sec-object.keys -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-property-is-enumerable.js": -/*!*****************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-property-is-enumerable.js ***! - \*****************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -var nativePropertyIsEnumerable = {}.propertyIsEnumerable; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); - -// `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable -exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; -} : nativePropertyIsEnumerable; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/own-keys.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/own-keys.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-built-in.js"); -var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-names.js"); -var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-symbols.js"); -var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/an-object.js"); - -// all object keys, includes non-enumerable and symbols -module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/path.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/path.js ***! - \****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); - -module.exports = global; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/redefine.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/redefine.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js"); -var has = __webpack_require__(/*! ../internals/has */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js"); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/set-global.js"); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/inspect-source.js"); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/internal-state.js"); - -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); - -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - if (O === global) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js": -/*!************************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js ***! - \************************************************************************************************************/ -/***/ ((module) => { - -// `RequireObjectCoercible` abstract operation -// https://tc39.github.io/ecma262/#sec-requireobjectcoercible -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/set-global.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/set-global.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js"); - -module.exports = function (key, value) { - try { - createNonEnumerableProperty(global, key, value); - } catch (error) { - global[key] = value; - } return value; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-key.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-key.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared.js"); -var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/uid.js"); - -var keys = shared('keys'); - -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-store.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-store.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/set-global.js"); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-pure.js"); -var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-store.js"); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.6.1', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2019 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-absolute-index.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-absolute-index.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-integer.js"); - -var max = Math.max; -var min = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/indexed-object.js"); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js"); - -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-integer.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-integer.js ***! - \**********************************************************************************************/ -/***/ ((module) => { - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.github.io/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-integer.js"); - -var min = Math.min; - -// `ToLength` abstract operation -// https://tc39.github.io/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js"); - -// `ToObject` abstract operation -// https://tc39.github.io/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); - -// `ToPrimitive` abstract operation -// https://tc39.github.io/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/uid.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/uid.js ***! - \***************************************************************************************/ -/***/ ((module) => { - -var id = 0; -var postfix = Math.random(); - -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/use-symbol-as-uid.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/use-symbol-as-uid.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-symbol.js"); - -module.exports = NATIVE_SYMBOL - // eslint-disable-next-line no-undef - && !Symbol.sham - // eslint-disable-next-line no-undef - && typeof Symbol.iterator == 'symbol'; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/user-agent.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/user-agent.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-built-in.js"); - -module.exports = getBuiltIn('navigator', 'userAgent') || ''; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/v8-version.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/v8-version.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var userAgent = __webpack_require__(/*! ../internals/user-agent */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/user-agent.js"); - -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -module.exports = version && +version; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var global = __webpack_require__(/*! ../internals/global */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js"); -var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared.js"); -var has = __webpack_require__(/*! ../internals/has */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js"); -var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/uid.js"); -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-symbol.js"); -var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/use-symbol-as-uid.js"); - -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; -}; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.concat.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.concat.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js"); -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); -var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-array.js"); -var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js"); -var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js"); -var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js"); -var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property.js"); -var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-create.js"); -var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js"); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js"); -var V8_VERSION = __webpack_require__(/*! ../internals/v8-version */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/v8-version.js"); - -var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; - -// We can't use this feature detection in V8 since it causes -// deoptimization and serious performance degradation -// https://github.com/zloirock/core-js/issues/679 -var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; -}); - -var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - -var isConcatSpreadable = function (O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); -}; - -var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; - -// `Array.prototype.concat` method -// https://tc39.github.io/ecma262/#sec-array.prototype.concat -// with adding support of @@isConcatSpreadable and @@species -$({ target: 'Array', proto: true, forced: FORCED }, { - concat: function concat(arg) { // eslint-disable-line no-unused-vars - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.filter.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.filter.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js"); -var $filter = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-iteration.js").filter); -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); -var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js"); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); -// Edge 14- issue -var USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () { - [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; }); -}); - -// `Array.prototype.filter` method -// https://tc39.github.io/ecma262/#sec-array.prototype.filter -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, { - filter: function filter(callbackfn /* , thisArg */) { - return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.map.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.map.js ***! - \**********************************************************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js"); -var $map = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-iteration.js").map); -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); -var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js"); - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); -// FF49- issue -var USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () { - [].map.call({ length: -1, 0: 1 }, function (it) { throw it; }); -}); - -// `Array.prototype.map` method -// https://tc39.github.io/ecma262/#sec-array.prototype.map -// with adding support of @@species -$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, { - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.keys.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.keys.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js"); -var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js"); -var nativeKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys.js"); -var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js"); - -var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); - -// `Object.keys` method -// https://tc39.github.io/ecma262/#sec-object.keys -$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { - keys: function keys(it) { - return nativeKeys(toObject(it)); - } -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.string.starts-with.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.string.starts-with.js ***! - \*******************************************************************************************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js"); -var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js").f); -var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js"); -var notARegExp = __webpack_require__(/*! ../internals/not-a-regexp */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/not-a-regexp.js"); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js"); -var correctIsRegExpLogic = __webpack_require__(/*! ../internals/correct-is-regexp-logic */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/correct-is-regexp-logic.js"); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-pure.js"); - -var nativeStartsWith = ''.startsWith; -var min = Math.min; - -var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); -// https://github.com/zloirock/core-js/pull/702 -var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); - return descriptor && !descriptor.writable; -}(); - -// `String.prototype.startsWith` method -// https://tc39.github.io/ecma262/#sec-string.prototype.startswith -$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { - startsWith: function startsWith(searchString /* , position = 0 */) { - var that = String(requireObjectCoercible(this)); - notARegExp(searchString); - var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return nativeStartsWith - ? nativeStartsWith.call(that, search, index) - : that.slice(index, index + search.length) === search; - } -}); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/calendar-js/dist/index.esm.js": -/*!***************************************************************!*\ - !*** ./node_modules/@nextcloud/calendar-js/dist/index.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 */ "AbstractComponent": () => (/* binding */ AbstractComponent), -/* harmony export */ "AbstractParser": () => (/* binding */ AbstractParser), -/* harmony export */ "AbstractRecurringComponent": () => (/* binding */ AbstractRecurringComponent), -/* harmony export */ "AbstractValue": () => (/* binding */ AbstractValue), -/* harmony export */ "AlarmComponent": () => (/* binding */ AlarmComponent), -/* harmony export */ "AttachmentProperty": () => (/* binding */ AttachmentProperty), -/* harmony export */ "AttendeeProperty": () => (/* binding */ AttendeeProperty), -/* harmony export */ "BinaryValue": () => (/* binding */ BinaryValue), -/* harmony export */ "CalendarComponent": () => (/* binding */ CalendarComponent), -/* harmony export */ "ConferenceProperty": () => (/* binding */ ConferenceProperty), -/* harmony export */ "DateTimeValue": () => (/* binding */ DateTimeValue), -/* harmony export */ "DurationValue": () => (/* binding */ DurationValue), -/* harmony export */ "EventComponent": () => (/* binding */ EventComponent), -/* harmony export */ "ExpectedICalJSError": () => (/* binding */ ExpectedICalJSError), -/* harmony export */ "FreeBusyComponent": () => (/* binding */ FreeBusyComponent), -/* harmony export */ "FreeBusyProperty": () => (/* binding */ FreeBusyProperty), -/* harmony export */ "GeoProperty": () => (/* binding */ GeoProperty), -/* harmony export */ "ICalendarParser": () => (/* binding */ ICalendarParser), -/* harmony export */ "IllegalValueError": () => (/* binding */ IllegalValueError), -/* harmony export */ "ImageProperty": () => (/* binding */ ImageProperty), -/* harmony export */ "JournalComponent": () => (/* binding */ JournalComponent), -/* harmony export */ "ModificationNotAllowedError": () => (/* binding */ ModificationNotAllowedError), -/* harmony export */ "Parameter": () => (/* binding */ Parameter), -/* harmony export */ "ParserManager": () => (/* binding */ ParserManager), -/* harmony export */ "PeriodValue": () => (/* binding */ PeriodValue), -/* harmony export */ "Property": () => (/* binding */ Property), -/* harmony export */ "RecurValue": () => (/* binding */ RecurValue), -/* harmony export */ "RecurrenceManager": () => (/* binding */ RecurrenceManager), -/* harmony export */ "RecurringWithoutDtStartError": () => (/* binding */ RecurringWithoutDtStartError), -/* harmony export */ "RelationProperty": () => (/* binding */ RelationProperty), -/* harmony export */ "RequestStatusProperty": () => (/* binding */ RequestStatusProperty), -/* harmony export */ "TextProperty": () => (/* binding */ TextProperty), -/* harmony export */ "Timezone": () => (/* binding */ Timezone), -/* harmony export */ "TimezoneAdapter": () => (/* binding */ TimezoneAdapter), -/* harmony export */ "TimezoneComponent": () => (/* binding */ TimezoneComponent), -/* harmony export */ "TimezoneManager": () => (/* binding */ TimezoneManager), -/* harmony export */ "ToDoComponent": () => (/* binding */ ToDoComponent), -/* harmony export */ "TriggerProperty": () => (/* binding */ TriggerProperty), -/* harmony export */ "UTCOffsetValue": () => (/* binding */ UTCOffsetValue), -/* harmony export */ "UnknownICALTypeError": () => (/* binding */ UnknownICALTypeError), -/* harmony export */ "createEvent": () => (/* binding */ createEvent), -/* harmony export */ "createFreeBusyRequest": () => (/* binding */ createFreeBusyRequest), -/* harmony export */ "getConstructorForICALType": () => (/* binding */ getConstructorForICALType), -/* harmony export */ "getConstructorForPropertyName": () => (/* binding */ getConstructorForPropertyName), -/* harmony export */ "getParserManager": () => (/* binding */ getParserManager), -/* harmony export */ "getReadableTimezoneName": () => (/* binding */ getReadableTimezoneName), -/* harmony export */ "getSortedTimezoneList": () => (/* binding */ getSortedTimezoneList), -/* harmony export */ "getTimezoneManager": () => (/* binding */ getTimezoneManager), -/* harmony export */ "isOlsonTimezone": () => (/* binding */ isOlsonTimezone), -/* harmony export */ "parseICSAndGetAllOccurrencesBetween": () => (/* binding */ parseICSAndGetAllOccurrencesBetween), -/* harmony export */ "setConfig": () => (/* binding */ setConfig) -/* harmony export */ }); -/* harmony import */ var ical_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ical.js */ "./node_modules/ical.js/build/ical.js"); -/* harmony import */ var ical_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(ical_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ "./node_modules/uuid/dist/esm-browser/v4.js"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * @class AbstractParser - * @classdesc - */ -class AbstractParser { - /** - * @constructor - * - * @param {Object=} options Object of options - * @param {Boolean=} options.extractGlobalProperties Whether or not to preserve properties from the VCALENDAR component (defaults to false) - * @param {Boolean=} options.removeRSVPForAttendees Whether or not to remove RSVP from attendees (defaults to false) - * @param {Boolean=} options.includeTimezones Whether or not to include timezones (defaults to false) - * @param {Boolean=} options.preserveMethod Whether or not to preserve the iCalendar method (defaults to false) - * @param {Boolean=} options.processFreeBusy Whether or not to process VFreeBusy components (defaults to false) - */ - constructor(options = {}) { - if (new.target === AbstractParser) { - throw new TypeError('Cannot instantiate abstract class AbstractParser'); - } - /** - * Options for the parser - * - * @type {{removeRSVPForAttendees: Boolean}} - * @private - */ - - - this._options = Object.assign({}, options); - /** - * A name extracted from the calendar-data - * - * @type {String|null} - * @protected - */ - - this._name = null; - /** - * A color extracted from the calendar-data - * - * @type {String|null} - * @protected - */ - - this._color = null; - /** - * Gets the url that this icalendar file can be updated from - * - * @type {String} - * @protected - */ - - this._sourceURL = null; - /** - * Gets the update interval if this icalendar file can be updated from a source - * - * @type {String} - * @protected - */ - - this._refreshInterval = null; - /** - * Gets the default timezone of this calendar - * - * @type {String} - * @protected - */ - - this._calendarTimezone = null; - /** - * Error count during parsing - * - * @type {Array} - * @protected - */ - - this._errors = []; - } - /** - * Gets the name extracted from the calendar-data - * - * @returns {String|null} - */ - - - getName() { - return this._name; - } - /** - * Gets the color extracted from the calendar-data - * - * @returns {String|null} - */ - - - getColor() { - return this._color; - } - /** - * Gets whether this import can be converted into a webcal subscription - * - * @returns {boolean} - */ - - - offersWebcalFeed() { - return this._sourceURL !== null; - } - /** - * Gets the url pointing to the webcal source - * - * @returns {String|null} - */ - - - getSourceURL() { - return this._sourceURL; - } - /** - * Gets the recommended refresh rate to update this subscription - * - * @returns {String|null} - */ - - - getRefreshInterval() { - return this._refreshInterval; - } - /** - * Gets the default timezone of this calendar - * - * @returns {String} - */ - - - getCalendarTimezone() { - return this._calendarTimezone; - } - /** - * {String|Object} data - * - * @param {any} data The data to parse - * @throws TypeError - */ - - - parse(data) { - throw new TypeError('Abstract method not implemented by subclass'); - } - /** - * Returns one CalendarComponent at a time - */ - - - *getItemIterator() { - // eslint-disable-line require-yield - throw new TypeError('Abstract method not implemented by subclass'); - } - /** - * Get an array of all items - * - * @returns {CalendarComponent[]} - */ - - - getAllItems() { - return Array.from(this.getItemIterator()); - } - /** - * Returns a boolean whether or not the parsed data contains vevents - * - * @returns {boolean} - */ - - - containsVEvents() { - return false; - } - /** - * Returns a boolean whether or not the parsed data contains vjournals - * - * @returns {boolean} - */ - - - containsVJournals() { - return false; - } - /** - * Returns a boolean whether or not the parsed data contains vtodos - * - * @returns {boolean} - */ - - - containsVTodos() { - return false; - } - /** - * Returns a boolean whether or not the parsed data contains vfreebusys - * - * @returns {boolean} - */ - - - containsVFreeBusy() { - return false; - } - /** - * Returns a boolean whether - * - * @returns {boolean} - */ - - - hasErrors() { - return this._errors.length !== 0; - } - /** - * Get a list of all errors that occurred - * - * @returns {*[]} - */ - - - getErrorList() { - return this._errors.slice(); - } - /** - * Returns the number of calendar-objects in parser - * - * @returns {number} - */ - - - getItemCount() { - return 0; - } - /** - * Gets an option provided - * - * @param {String} name The name of the option to get - * @param {*} defaultValue The default value to return if option not provided - * @returns {any} - * @protected - */ - - - _getOption(name, defaultValue) { - return Object.prototype.hasOwnProperty.call(this._options, name) ? this._options[name] : defaultValue; - } - /** - * Return list of supported mime types - * - * @static - */ - - - static getMimeTypes() { - throw new TypeError('Abstract method not implemented by subclass'); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -class ModificationNotAllowedError extends Error {} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -function lockableTrait(baseClass) { - /** - * @class LockableTrait - */ - return class extends baseClass { - /** - * Constructor - */ - constructor(...args) { - super(...args); - /** - * Indicator whether this value was locked for changes - * - * @type {boolean} - * @private - */ - - this._mutable = true; - } - /** - * Returns whether or not this object is locked - * - * @returns {boolean} - */ - - - isLocked() { - return !this._mutable; - } - /** - * Marks this object is immutable - * locks it against further modification - */ - - - lock() { - this._mutable = false; - } - /** - * Marks this object as mutable - * allowing further modification - */ - - - unlock() { - this._mutable = true; - } - /** - * Check if modifications are allowed - * - * @throws {ModificationNotAllowedError} if this object is locked for modification - * @protected - */ - - - _modify() { - if (!this._mutable) { - throw new ModificationNotAllowedError(); - } - } - /** - * Check if modification of content is allowed - * - * @throws {ModificationNotAllowedError} if this object is locked for modification - * @protected - */ - - - _modifyContent() { - this._modify(); - } - - }; -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -class ExpectedICalJSError extends Error {} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * Turns the entire string lowercase - * - * @param {String} str The string to turn lowercase - * @returns {string} - */ -function lc(str) { - return str.toLowerCase(); -} -/** - * Turns the entire string uppercase - * - * @param {String} str The string to turn uppercase - * @returns {string} - */ - -function uc(str) { - return str.toUpperCase(); -} -/** - * Capitalizes the string - * - * @param {String} str The string of which the first character will be turned uppercase - * @returns {string} - */ - -function ucFirst(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} -/** - * Makes sure that a string starts with a certain other string - * This is mostly used in the attendeeProperty to assure the uri starts with mailto: - * - * @param {String} str The string to check for the prefix and prepend if necessary - * @param {String} startWith The prefix to be added if necessary - * @returns {string} - */ - -function startStringWith(str, startWith) { - if (!str.startsWith(startWith)) { - str = startWith + str; - } - - return str; -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * @type {Map} - */ -const GLOBAL_CONFIG = new Map(); -/** - * Sets a new config key - * - * @param {String} key The config-key to set - * @param {*} value The value to set for given config-key - */ - -function setConfig(key, value) { - GLOBAL_CONFIG.set(key, value); -} -/** - * gets value of a config key - * - * @param {String} key The config-key to get - * @param {*} defaultValue Default value of config does not exist - * @returns {*} - */ - -function getConfig(key, defaultValue) { - return GLOBAL_CONFIG.get(key) || defaultValue; -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * creates a new ICAL.Component object - * - * @param {string} componentName The name of the component to create - * @returns {ICAL.Component} - */ - -function createComponent(componentName) { - return new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Component)(lc(componentName)); -} -/** - * creates a new ICAL.Property object - * - * @param {string} propertyName The name of the property to create - * @returns {ICAL.Property} - */ - -function createProperty(propertyName) { - return new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Property)(lc(propertyName)); -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -function observerTrait(baseClass) { - /** - * @class ObserverTrait - */ - return class extends baseClass { - /** - * Constructor - */ - constructor(...args) { - super(...args); - /** - * List of subscribers - * - * @type {Function[]} - * @private - */ - - this._subscribers = []; - } - /** - * Adds a new subscriber - * - * @param {Function} handler - Handler to be called when modification happens - */ - - - subscribe(handler) { - this._subscribers.push(handler); - } - /** - * Removes a subscriber - * - * @param {Function} handler - Handler to be no longer called when modification happens - */ - - - unsubscribe(handler) { - const index = this._subscribers.indexOf(handler); - - if (index === -1) { - return; - } - - this._subscribers.splice(index, 1); - } - /** - * Notify all subscribed handlers - * - * @protected - */ - - - _notifySubscribers(...args) { - for (const handler of this._subscribers) { - handler(...args); - } - } - - }; -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class Parameter - * @classdesc This class represents a property parameters as defined in RFC 5545 Section 3.2 - * - * @url https://tools.ietf.org/html/rfc5545#section-3.2 - * @url - */ - -class Parameter extends observerTrait(lockableTrait(class {})) { - /** - * Constructor - * - * @param {string} name The name of the parameter - * @param {string|Array|null} value The value of the parameter - */ - constructor(name, value = null) { - super(); - /** - * Name of the parameter - * - * @type {string} - * @private - */ - - this._name = uc(name); - /** - * Value of the parameter - * - * @type {string|Array|null} - * @private - */ - - this._value = value; - } - /** - * Get parameter name - * - * @readonly - * @returns {String} - */ - - - get name() { - return this._name; - } - /** - * Get parameter value - * - * @returns {String|Array} - */ - - - get value() { - return this._value; - } - /** - * Set new parameter value - * - * @throws {ModificationNotAllowedError} if parameter is locked for modification - * @param {String|Array} value The new value to set - */ - - - set value(value) { - this._modifyContent(); - - this._value = value; - } - /** - * Gets the first value of this parameter - * - * @returns {String|null} - */ - - - getFirstValue() { - if (!this.isMultiValue()) { - return this.value; - } else { - if (this.value.length > 0) { - return this.value[0]; - } - } - - return null; - } - /** - * Gets an iterator for all values - */ - - - *getValueIterator() { - if (this.isMultiValue()) { - yield* this.value.slice()[Symbol.iterator](); - } else { - yield this.value; - } - } - /** - * Returns whether or not the value is a multivalue - * - * @returns {Boolean} - */ - - - isMultiValue() { - return Array.isArray(this._value); - } - /** - * Creates a copy of this parameter - * - * @returns {Parameter} - */ - - - clone() { - const parameter = new this.constructor(this._name); - - if (this.isMultiValue()) { - // only copy array values, don't copy array reference - parameter.value = this._value.slice(); - } else { - parameter.value = this._value; - } // cloned parameters are always mutable - - - return parameter; - } - /** - * @inheritDoc - */ - - - _modifyContent() { - super._modifyContent(); - - this._notifySubscribers(); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class AbstractValue - * @classdesc BaseClass for all values - */ - -class AbstractValue extends observerTrait(lockableTrait(class {})) { - /** - * Constructor - * - * @param {ICAL.Binary|ICAL.Duration|ICAL.Period|ICAL.Recur|ICAL.Time|ICAL.UtcOffset} icalValue The ICAL.JS object to wrap - */ - constructor(icalValue) { - if (new.target === AbstractValue) { - throw new TypeError('Cannot instantiate abstract class AbstractValue'); - } - - super(); - /** - * Wrapped ICAL.js value - * - * @type {ICAL.Binary|ICAL.Duration|ICAL.Period|ICAL.Recur|ICAL.Time|ICAL.UtcOffset} - */ - - this._innerValue = icalValue; - } - /** - * Gets wrapped ICAL.JS object - * - * @returns {*} - */ - - - toICALJs() { - return this._innerValue; - } - /** - * @inheritDoc - */ - - - _modifyContent() { - super._modifyContent(); - - this._notifySubscribers(); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class BinaryValue - * @classdesc Wrapper for ICAL.Binary - * - * @url https://tools.ietf.org/html/rfc5545#section-3.1.3 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/binary.js - */ - -class BinaryValue extends AbstractValue { - /** - * Sets the raw b64 encoded value - * - * @returns {String} - */ - get rawValue() { - return this._innerValue.value; - } - /** - * Gets the raw b64 encoded value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {String} value - The new raw value - */ - - - set rawValue(value) { - this._modifyContent(); - - this._innerValue.value = value; - } - /** - * Gets the decoded value - * - * @returns {String} - */ - - - get value() { - return this._innerValue.decodeValue(); - } - /** - * Sets the decoded Value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {String} decodedValue - The new encoded value - */ - - - set value(decodedValue) { - this._modifyContent(); - - this._innerValue.setEncodedValue(decodedValue); - } - /** - * clones this value - * - * @returns {BinaryValue} - */ - - - clone() { - return BinaryValue.fromRawValue(this._innerValue.value); - } - /** - * Create a new BinaryValue object from an ICAL.Binary object - * - * @param {ICAL.Binary} icalValue - The ICAL.Binary object - * @returns {BinaryValue} - */ - - - static fromICALJs(icalValue) { - return new BinaryValue(icalValue); - } - /** - * Create a new BinaryValue object from a raw b64 encoded value - * - * @param {String} rawValue - The raw value - * @returns {BinaryValue} - */ - - - static fromRawValue(rawValue) { - const icalBinary = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Binary)(rawValue); - return BinaryValue.fromICALJs(icalBinary); - } - /** - * Create a new BinaryValue object from decoded value - * - * @param {String} decodedValue - The encoded value - * @returns {BinaryValue} - */ - - - static fromDecodedValue(decodedValue) { - const icalBinary = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Binary)(); - icalBinary.setEncodedValue(decodedValue); - return BinaryValue.fromICALJs(icalBinary); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class DurationValue - * @classdesc Wrapper for ICAL.Duration - * - * @url https://tools.ietf.org/html/rfc5545#section-3.3.6 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/duration.js - */ - -class DurationValue extends AbstractValue { - /** - * Gets the weeks of the stored duration-value - * - * @returns {Number} - */ - get weeks() { - return this._innerValue.weeks; - } - /** - * Sets the weeks of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if value is negative - * @param {Number} weeks Amount of weeks - */ - - - set weeks(weeks) { - this._modifyContent(); - - if (weeks < 0) { - throw new TypeError('Weeks cannot be negative, use isNegative instead'); - } - - this._innerValue.weeks = weeks; - } - /** - * Gets the days of the stored duration-value - * - * @returns {Number} - */ - - - get days() { - return this._innerValue.days; - } - /** - * Sets the days of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if value is negative - * @param {Number} days Amount of days - */ - - - set days(days) { - this._modifyContent(); - - if (days < 0) { - throw new TypeError('Days cannot be negative, use isNegative instead'); - } - - this._innerValue.days = days; - } - /** - * Gets the hours of the stored duration-value - * - * @returns {Number} - */ - - - get hours() { - return this._innerValue.hours; - } - /** - * Sets the weeks of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if value is negative - * @param {Number} hours Amount of hours - */ - - - set hours(hours) { - this._modifyContent(); - - if (hours < 0) { - throw new TypeError('Hours cannot be negative, use isNegative instead'); - } - - this._innerValue.hours = hours; - } - /** - * Gets the minutes of the stored duration-value - * - * @returns {Number} - */ - - - get minutes() { - return this._innerValue.minutes; - } - /** - * Sets the minutes of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if value is negative - * @param {Number} minutes Amount of minutes - */ - - - set minutes(minutes) { - this._modifyContent(); - - if (minutes < 0) { - throw new TypeError('Minutes cannot be negative, use isNegative instead'); - } - - this._innerValue.minutes = minutes; - } - /** - * Gets the seconds of the stored duration-value - * - * @returns {Number} - */ - - - get seconds() { - return this._innerValue.seconds; - } - /** - * Sets the seconds of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if value is negative - * @param {Number} seconds Amount of seconds - */ - - - set seconds(seconds) { - this._modifyContent(); - - if (seconds < 0) { - throw new TypeError('Seconds cannot be negative, use isNegative instead'); - } - - this._innerValue.seconds = seconds; - } - /** - * Gets the negative-indicator of the stored duration-value - * - * @returns {Boolean} - */ - - - get isNegative() { - return this._innerValue.isNegative; - } - /** - * Gets the negative-indicator of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Boolean} isNegative Whether or not the duration is negative - */ - - - set isNegative(isNegative) { - this._modifyContent(); - - this._innerValue.isNegative = !!isNegative; - } - /** - * Gets the amount of total seconds of the stored duration-value - * - * @returns {*|Number} - */ - - - get totalSeconds() { - return this._innerValue.toSeconds(); - } - /** - * Sets the amount of total seconds of the stored duration-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} totalSeconds The total amounts of seconds to set - */ - - - set totalSeconds(totalSeconds) { - this._modifyContent(); - - this._innerValue.fromSeconds(totalSeconds); - } - /** - * Compares this duration to another one - * - * @param {DurationValue} otherDuration The duration to compare to - * @returns {Number} -1, 0 or 1 for less/equal/greater - */ - - - compare(otherDuration) { - return this._innerValue.compare(otherDuration.toICALJs()); - } - /** - * Adds the value of another duration to this one - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {DurationValue} otherDuration The duration to add - */ - - - addDuration(otherDuration) { - this._modifyContent(); - - this.totalSeconds += otherDuration.totalSeconds; - - this._innerValue.normalize(); - } - /** - * Subtract the value of another duration from this one - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {DurationValue} otherDuration The duration to subtract - */ - - - subtractDuration(otherDuration) { - this._modifyContent(); - - this.totalSeconds -= otherDuration.totalSeconds; - - this._innerValue.normalize(); - } - /** - * clones this value - * - * @returns {DurationValue} - */ - - - clone() { - return DurationValue.fromICALJs(this._innerValue.clone()); - } - /** - * Create a new DurationValue object from an ICAL.Duration object - * - * @param {ICAL.Duration} icalValue The ical.js duration value - * @returns {DurationValue} - */ - - - static fromICALJs(icalValue) { - return new DurationValue(icalValue); - } - /** - * Create a new DurationValue object from a number of seconds - * - * @param {Number} seconds Total amount of seconds - * @returns {DurationValue} - */ - - - static fromSeconds(seconds) { - const icalDuration = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Duration.fromSeconds(seconds); - return new DurationValue(icalDuration); - } - /** - * Create a new DurationValue object from data - * - * @param {Object} data The destructuring object - * @param {Number=} data.weeks Number of weeks to set - * @param {Number=} data.days Number of days to set - * @param {Number=} data.hours Number of hours to set - * @param {Number=} data.minutes Number of minutes to set - * @param {Number=} data.seconds Number of seconds to set - * @param {Boolean=} data.isNegative Whether or not duration is negative - * @returns {DurationValue} - */ - - - static fromData(data) { - const icalDuration = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Duration.fromData(data); - return new DurationValue(icalDuration); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class DateTimeValue - * @classdesc Wrapper for ICAL.Time - * - * @url https://tools.ietf.org/html/rfc5545#section-3.3.4 - * @url https://tools.ietf.org/html/rfc5545#section-3.3.5 - * @url https://tools.ietf.org/html/rfc5545#section-3.3.12 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/time.js - */ - -class DateTimeValue extends AbstractValue { - /** - * Gets the year of the stored date-time-value - * - * @returns {Number} - */ - get year() { - return this._innerValue.year; - } - /** - * Sets the year of the stored date-time-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} year Number of years to set - */ - - - set year(year) { - this._modifyContent(); - - this._innerValue.year = year; - } - /** - * Gets the month of the stored date-time-value - * - * @returns {Number} - */ - - - get month() { - return this._innerValue.month; - } - /** - * Sets the month of the stored date-time-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} month Number of months to set - */ - - - set month(month) { - this._modifyContent(); - - if (month < 1 || month > 12) { - throw new TypeError('Month out of range'); - } - - this._innerValue.month = month; - } - /** - * Gets the day of the stored date-time-value - * - * @returns {Number} - */ - - - get day() { - return this._innerValue.day; - } - /** - * Sets the day of the stored date-time-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if out of range - * @param {Number} day Number of days to set - */ - - - set day(day) { - this._modifyContent(); - - if (day < 1 || day > 31) { - throw new TypeError('Day out of range'); - } - - this._innerValue.day = day; - } - /** - * Gets the hour of the stored date-time-value - * - * @returns {Number} - */ - - - get hour() { - return this._innerValue.hour; - } - /** - * Sets the hour of the stored date-time-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if out of range - * @param {Number} hour Number of hours to set - */ - - - set hour(hour) { - this._modifyContent(); - - if (hour < 0 || hour > 23) { - throw new TypeError('Hour out of range'); - } - - this._innerValue.hour = hour; - } - /** - * Gets the minute of the stored date-time-value - * - * @returns {Number} - */ - - - get minute() { - return this._innerValue.minute; - } - /** - * Sets the minute of the stored date-time-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if out of range - * @param {Number} minute Number of minutes to set - */ - - - set minute(minute) { - this._modifyContent(); - - if (minute < 0 || minute > 59) { - throw new TypeError('Minute out of range'); - } - - this._innerValue.minute = minute; - } - /** - * Gets the second of the stored date-time-value - * - * @returns {Number} - */ - - - get second() { - return this._innerValue.second; - } - /** - * Sets the second of the stored date-time-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if out of range - * @param {Number} second Number of seconds to set - */ - - - set second(second) { - this._modifyContent(); - - if (second < 0 || second > 59) { - throw new TypeError('Second out of range'); - } - - this._innerValue.second = second; - } - /** - * Gets the timezone of this date-time-value - * - * @returns {String|null} - */ - - - get timezoneId() { - // If zone.tzid is set and it's not 'floating' nor 'UTC', then it's a proper - // timezone that we also have a timezone id for - if (this._innerValue.zone.tzid && this._innerValue.zone.tzid !== 'floating' && this._innerValue.zone.tzid === 'UTC') { - return this._innerValue.zone.tzid; - } // If there is a timezone set, but we didn't have a zone.tzid in the previous if, - // this means that the tzid does not have a definition stored along it. - // we will keep this information anyway to not lose it - - - if (this._innerValue.timezone) { - return this._innerValue.timezone; - } // this is the case when it's floating / UTC - - - return this._innerValue.zone.tzid || null; - } - /** - * Gets whether this date-time-value is a date or date-time - * - * @returns {boolean} - */ - - - get isDate() { - return this._innerValue.isDate; - } - /** - * Sets whether this date-time-value is a date or date-time - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {boolean} isDate Whether this is a date or date-time value - */ - - - set isDate(isDate) { - this._modifyContent(); - - this._innerValue.isDate = !!isDate; - - if (isDate) { - this._innerValue.hour = 0; - this._innerValue.minute = 0; - this._innerValue.second = 0; - } - } - /** - * Gets the unix-time - * - * @returns {Number} - */ - - - get unixTime() { - return this._innerValue.toUnixTime(); - } - /** - * returns vanilla javascript date object - * - * @returns {Date} - */ - - - get jsDate() { - return this._innerValue.toJSDate(); - } - /** - * Adds a duration to this date-time-value - * - * @param {DurationValue} duration The duration to ad - */ - - - addDuration(duration) { - this._innerValue.addDuration(duration.toICALJs()); - } - /** - * Subtract another date excluding timezones - * - * @param {DateTimeValue} other The date-time value to subtract - * @returns {DurationValue} - */ - - - subtractDateWithoutTimezone(other) { - const icalDuration = this._innerValue.subtractDate(other.toICALJs()); - - return DurationValue.fromICALJs(icalDuration); - } - /** - * Subtract another date, taking timezones into account - * - * @param {DateTimeValue} other The date-time value to subtract - * @returns {DurationValue} - */ - - - subtractDateWithTimezone(other) { - const icalDuration = this._innerValue.subtractDateTz(other.toICALJs()); - - return DurationValue.fromICALJs(icalDuration); - } - /** - * Compares this DateTimeValue object with another one - * - * @param {DateTimeValue} other The date-time to compare to - * @returns {Number} -1, 0 or 1 for less/equal/greater - */ - - - compare(other) { - return this._innerValue.compare(other.toICALJs()); - } - /** - * Compares only the date part in a given timezone - * - * @param {DateTimeValue} other The date-time to compare to - * @param {Timezone} timezone The timezone to compare in - * @returns {Number} -1, 0 or 1 for less/equal/greater - */ - - - compareDateOnlyInGivenTimezone(other, timezone) { - return this._innerValue.compareDateOnlyTz(other.toICALJs(), timezone.toICALTimezone()); - } - /** - * Returns a clone of this object which was converted to a different timezone - * - * @param {Timezone} timezone TimezoneId to convert to - * @returns {DateTimeValue} - */ - - - getInTimezone(timezone) { - const clonedICALTime = this._innerValue.convertToZone(timezone.toICALTimezone()); - - return DateTimeValue.fromICALJs(clonedICALTime); - } - /** - * Get the inner ICAL.Timezone - * - * @returns {ICAL.Timezone} - * @package - */ - - - getICALTimezone() { - return this._innerValue.zone; - } - /** - * Returns a clone of this object which was converted to a different timezone - * - * @param {ICAL.Timezone} timezone TimezoneId to convert to - * @returns {DateTimeValue} - * @package - */ - - - getInICALTimezone(timezone) { - const clonedICALTime = this._innerValue.convertToZone(timezone); - - return DateTimeValue.fromICALJs(clonedICALTime); - } - /** - * Returns a clone of this object which was converted to UTC - * - * @returns {DateTimeValue} - */ - - - getInUTC() { - const clonedICALTime = this._innerValue.convertToZone((ical_js__WEBPACK_IMPORTED_MODULE_0___default().Timezone.utcTimezone)); - - return DateTimeValue.fromICALJs(clonedICALTime); - } - /** - * This silently replaces the inner timezone without converting the actual time - * - * @param {ICAL.Timezone} timezone The timezone to replace with - * @package - */ - - - silentlyReplaceTimezone(timezone) { - this._modify(); - - this._innerValue = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)({ - year: this.year, - month: this.month, - day: this.day, - hour: this.hour, - minute: this.minute, - second: this.second, - isDate: this.isDate, - timezone - }); - } - /** - * Replaces the inner timezone without converting the actual time - * - * @param {Timezone} timezone The timezone to replace with - */ - - - replaceTimezone(timezone) { - this._modifyContent(); - - this._innerValue = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.fromData({ - year: this.year, - month: this.month, - day: this.day, - hour: this.hour, - minute: this.minute, - second: this.second, - isDate: this.isDate - }, timezone.toICALTimezone()); - } - /** - * Calculates the UTC offset of the date-time-value in its timezone - * - * @returns {Number} - */ - - - utcOffset() { - return this._innerValue.utcOffset(); - } - /** - * Check if this is an event with floating time - * - * @returns {boolean} - */ - - - isFloatingTime() { - return this._innerValue.zone.tzid === 'floating'; - } - /** - * clones this value - * - * @returns {DateTimeValue} - */ - - - clone() { - return DateTimeValue.fromICALJs(this._innerValue.clone()); - } - /** - * Create a new DateTimeValue object from an ICAL.Time object - * - * @param {ICAL.Time} icalValue The ical.js Date value to initialise from - * @returns {DateTimeValue} - */ - - - static fromICALJs(icalValue) { - return new DateTimeValue(icalValue); - } - /** - * Creates a new DateTimeValue object based on a vanilla javascript object - * - * @param {Date} jsDate The JavaScript date to initialise from - * @param {Boolean=} useUTC Whether or not to treat it as UTC - * @returns {DateTimeValue} - */ - - - static fromJSDate(jsDate, useUTC = false) { - const icalValue = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.fromJSDate(jsDate, useUTC); - return DateTimeValue.fromICALJs(icalValue); - } - /** - * Creates a new DateTimeValue object based on simple parameters - * - * @param {Object} data The destructuring object - * @param {Number=} data.year Amount of years to set - * @param {Number=} data.month Amount of month to set (1-based) - * @param {Number=} data.day Amount of days to set - * @param {Number=} data.hour Amount of hours to set - * @param {Number=} data.minute Amount of minutes to set - * @param {Number=} data.second Amount of seconds to set - * @param {Boolean=} data.isDate Whether this is a date or date-time - * @param {Timezone=} timezone The timezone of the DateTimeValue - * @returns {DateTimeValue} - */ - - - static fromData(data, timezone) { - const icalValue = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.fromData(data, timezone ? timezone.toICALTimezone() : undefined); - return DateTimeValue.fromICALJs(icalValue); - } - -} -DateTimeValue.SUNDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.SUNDAY); -DateTimeValue.MONDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.MONDAY); -DateTimeValue.TUESDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.TUESDAY); -DateTimeValue.WEDNESDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.WEDNESDAY); -DateTimeValue.THURSDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.THURSDAY); -DateTimeValue.FRIDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.FRIDAY); -DateTimeValue.SATURDAY = (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.SATURDAY); -DateTimeValue.DEFAULT_WEEK_START = DateTimeValue.MONDAY; - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class PeriodValue - * @classdesc Wrapper for ICAL.Period - * - * @url https://tools.ietf.org/html/rfc5545#section-3.3.9 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/period.js - */ - -class PeriodValue extends AbstractValue { - /** - * @inheritDoc - */ - constructor(...args) { - super(...args); - /** - * DateTimeValue object for start - * - * @type {DateTimeValue} - * @private - */ - - this._start = DateTimeValue.fromICALJs(this._innerValue.start); - /** - * DateTimeValue object for end - * - * @type {DateTimeValue|null} - * @private - */ - - this._end = null; - /** - * DurationValue object for duration - * - * @type {DurationValue|null} - * @private - */ - - this._duration = null; - } - /** - * Gets the start of the period-value - * - * @returns {DateTimeValue} - */ - - - get start() { - return this._start; - } - /** - * Sets the start of the period-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {DateTimeValue} start The start of the period - */ - - - set start(start) { - this._modifyContent(); - - this._start = start; - this._innerValue.start = start.toICALJs(); - } - /** - * Gets the end of the period-value - * - * @returns {DateTimeValue} - */ - - - get end() { - if (!this._end) { - if (this._duration) { - this._duration.lock(); - - this._duration = null; - } - - this._innerValue.end = this._innerValue.getEnd(); - this._end = DateTimeValue.fromICALJs(this._innerValue.end); - this._innerValue.duration = null; - - if (this.isLocked()) { - this._end.lock(); - } - } - - return this._end; - } - /** - * Sets the end of the period-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {DateTimeValue} end The end of the period - */ - - - set end(end) { - this._modifyContent(); - - this._innerValue.duration = null; - this._innerValue.end = end.toICALJs(); - this._end = end; - } - /** - * Gets the duration of the period-value - * The value is automatically locked. - * If you want to edit the value, clone it and it as new duration - * - * @returns {DurationValue} - */ - - - get duration() { - if (!this._duration) { - if (this._end) { - this._end.lock(); - - this._end = null; - } - - this._innerValue.duration = this._innerValue.getDuration(); - this._duration = DurationValue.fromICALJs(this._innerValue.duration); - this._innerValue.end = null; - - if (this.isLocked()) { - this._duration.lock(); - } - } - - return this._duration; - } - /** - * Sets the duration of the period-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {DurationValue} duration The duration to set - */ - - - set duration(duration) { - this._modifyContent(); - - this._innerValue.end = null; - this._innerValue.duration = duration.toICALJs(); - this._duration = duration; - } - /** - * @inheritDoc - */ - - - lock() { - super.lock(); - this.start.lock(); - - if (this._end) { - this._end.lock(); - } - - if (this._duration) { - this._duration.lock(); - } - } - /** - * @inheritDoc - */ - - - unlock() { - super.unlock(); - this.start.unlock(); - - if (this._end) { - this._end.unlock(); - } - - if (this._duration) { - this._duration.unlock(); - } - } - /** - * clones this value - * - * @returns {PeriodValue} - */ - - - clone() { - return PeriodValue.fromICALJs(this._innerValue.clone()); - } - /** - * Create a new PeriodValue object from a ICAL.Period object - * - * @param {ICAL.Period} icalValue The ical.js period value to initialise from - * @returns {PeriodValue} - */ - - - static fromICALJs(icalValue) { - return new PeriodValue(icalValue); - } - /** - * Create a new PeriodValue object from start and end - * - * @param {Object} data The destructuring object - * @param {DateTimeValue} data.start The start of the period - * @param {DateTimeValue} data.end The end of the period - * @returns {PeriodValue} - */ - - - static fromDataWithEnd(data) { - const icalPeriod = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Period.fromData({ - start: data.start.toICALJs(), - end: data.end.toICALJs() - }); - return PeriodValue.fromICALJs(icalPeriod); - } - /** - * Create a new PeriodValue object from start and duration - * - * @param {Object} data The destructuring object - * @param {DateTimeValue} data.start The start of the period - * @param {DurationValue} data.duration The duration of the period - * @returns {PeriodValue} - */ - - - static fromDataWithDuration(data) { - const icalPeriod = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Period.fromData({ - start: data.start.toICALJs(), - duration: data.duration.toICALJs() - }); - return PeriodValue.fromICALJs(icalPeriod); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const ALLOWED_FREQ = ['SECONDLY', 'MINUTELY', 'HOURLY', 'DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']; -/** - * @class RecurValue - * @classdesc Wrapper for ICAL.Recur - * - * @url https://tools.ietf.org/html/rfc5545#section-3.3.10 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/recur.js - */ - -class RecurValue extends AbstractValue { - /** - * Constructor - * - * @param {ICAL.Recur} icalValue The ical.js rrule value - * @param {DateTimeValue?} until The Until date - */ - constructor(icalValue, until) { - super(icalValue); - /** - * DateTimeValue object for Until - * - * @type {DateTimeValue} - * @private - */ - - this._until = until; - } - /** - * Gets the stored interval of this recurrence rule - * - * @returns {Number} - */ - - - get interval() { - return this._innerValue.interval; - } - /** - * Sets the stored interval of this recurrence rule - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} interval New Interval to set - */ - - - set interval(interval) { - this._modifyContent(); - - this._innerValue.interval = parseInt(interval, 10); - } - /** - * Gets the weekstart used to calculate the recurrence expansion - * - * @returns {Number} - */ - - - get weekStart() { - return this._innerValue.wkst; - } - /** - * Sets the weekstart used to calculate the recurrence expansion - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if weekstart out of range - * @param {Number} weekStart New start of week to set - */ - - - set weekStart(weekStart) { - this._modifyContent(); - - if (weekStart < DateTimeValue.SUNDAY || weekStart > DateTimeValue.SATURDAY) { - throw new TypeError('Weekstart out of range'); - } - - this._innerValue.wkst = weekStart; - } - /** - * Gets the until value if set - * The value is automatically locked. - * If you want to edit the value, clone it and it as new until - * - * @returns {null|DateTimeValue} - */ - - - get until() { - if (!this._until && this._innerValue.until) { - this._until = DateTimeValue.fromICALJs(this._innerValue.until); - } - - return this._until; - } - /** - * Sets the until value, automatically removes count - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {DateTimeValue} until New until date to set - */ - - - set until(until) { - this._modifyContent(); - - if (this._until) { - this._until.lock(); - } - - this._until = until; - this._innerValue.count = null; - this._innerValue.until = until.toICALJs(); - } - /** - * Gets the count value if set - * - * @returns {null|Number} - */ - - - get count() { - return this._innerValue.count; - } - /** - * Sets the count value, automatically removes until - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} count New occurrence limit to set - */ - - - set count(count) { - this._modifyContent(); - - if (this._until) { - this._until.lock(); - - this._until = null; - } - - this._innerValue.until = null; - this._innerValue.count = parseInt(count, 10); - } - /** - * Gets the frequency of the recurrence rule - * - * @returns {String} see - */ - - - get frequency() { - return this._innerValue.freq; - } - /** - * Sets the frequency of the recurrence rule - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if frequency is unknown - * @param {String} freq New frequency to set - */ - - - set frequency(freq) { - this._modifyContent(); - - if (!ALLOWED_FREQ.includes(freq)) { - throw new TypeError('Unknown frequency'); - } - - this._innerValue.freq = freq; - } - /** - * Modifies this recurrence-value to unset count and until - */ - - - setToInfinite() { - this._modifyContent(); - - if (this._until) { - this._until.lock(); - - this._until = null; - } - - this._innerValue.until = null; - this._innerValue.count = null; - } - /** - * Checks whether the stored rule is finite - * - * @returns {Boolean} - */ - - - isFinite() { - return this._innerValue.isFinite(); - } - /** - * Checks whether the recurrence rule is limited by count - * - * @returns {Boolean} - */ - - - isByCount() { - return this._innerValue.isByCount(); - } - /** - * Adds a part to a component to the recurrence-rule - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {String} componentName The name of the recurrence-component to add - * @param {String|Number} value The value to add - */ - - - addComponent(componentName, value) { - this._modifyContent(); - - this._innerValue.addComponent(componentName, value); - } - /** - * Sets / overwrites a component to the recurrence-rule - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {String} componentName The name of the component to set - * @param {Number[]|String[]} value The value to set - */ - - - setComponent(componentName, value) { - this._modifyContent(); - - if (value.length === 0) { - delete this._innerValue.parts[componentName.toUpperCase()]; - } else { - this._innerValue.setComponent(componentName, value); - } - } - /** - * Removes all parts of a component - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {String} componentName The name of the component to remove - */ - - - removeComponent(componentName) { - delete this._innerValue.parts[uc(componentName)]; - } - /** - * Gets all parts of a component - * - * @param {String} componentName The name of the component to get - * @returns {Array} - */ - - - getComponent(componentName) { - return this._innerValue.getComponent(componentName); - } - /** - * Checks if this recurrence rule is valid according to RFC 5545 - * - * @returns {boolean} - */ - - - isRuleValid() { - return true; - } - /** - * @inheritDoc - */ - - - lock() { - super.lock(); - - if (this._until) { - this._until.lock(); - } - } - /** - * @inheritDoc - */ - - - unlock() { - super.unlock(); - - if (this._until) { - this._until.unlock(); - } - } - /** - * clones this value - * - * @returns {RecurValue} - */ - - - clone() { - return RecurValue.fromICALJs(this._innerValue.clone()); - } - /** - * Create a new RecurValue object from a ICAL.Recur object - * - * @param {ICAL.Recur} icalValue The ICAL.JS Recur value - * @param {DateTimeValue?} until The Until date - * @returns {RecurValue} - */ - - - static fromICALJs(icalValue, until = null) { - return new RecurValue(icalValue, until); - } - /** - * Create a new RecurValue object from a data object - * - * @param {Object} data The destructuring object - * @param {String=} data.freq FREQ part of RRULE - * @param {Number=} data.interval INTERVAL part of RRULE - * @param {Number=} data.wkst WEEKSTART part of RRULE - * @param {DateTimeValue=} data.until UNTIL part of RRULE - * @param {Number=} data.count COUNT part of RRULE - * @param {Number[]=} data.bysecond BYSECOND part of RRULE - * @param {Number[]=} data.byminute BYMINUTE part of RRULE - * @param {Number[]=} data.byhour BYHOUR part of RRULE - * @param {String[]=} data.byday BYDAY part of RRULE - * @param {Number[]=} data.bymonthday BYMONTHDAY part of RRULE - * @param {Number[]=} data.byyearday BYYEARDAY part of RRULE - * @param {Number[]=} data.byweekno BYWEEKNO part of RRULE - * @param {Number[]=} data.bymonth BYMONTH part of RRULE - * @param {Number[]=} data.bysetpos BYSETPOS part of RRULE - * @returns {RecurValue} - */ - - - static fromData(data) { - let until = null; - - if (data.until) { - until = data.until; - data.until = data.until.toICALJs(); - } - - const icalRecur = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Recur.fromData(data); - return RecurValue.fromICALJs(icalRecur, until); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class UTCOffsetValue - * @classdesc Wrapper for ICAL.UtcOffset - * - * @url https://tools.ietf.org/html/rfc5545#section-3.3.14 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/utc_offset.js - */ - -class UTCOffsetValue extends AbstractValue { - /** - * Gets the hour part of the offset-value - * - * @returns {Number} - */ - get hours() { - return this._innerValue.hours; - } - /** - * Sets the hour part of the offset-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} hours - New hours to set - */ - - - set hours(hours) { - this._modifyContent(); - - this._innerValue.hours = hours; - } - /** - * Gets the minute part of the offset-value - * - * @returns {Number} - */ - - - get minutes() { - return this._innerValue.minutes; - } - /** - * Sets the minute part of the offset-value - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} minutes - New minutes to set - */ - - - set minutes(minutes) { - this._modifyContent(); - - this._innerValue.minutes = minutes; - } - /** - * Gets the factor - * - * @returns {Number} - */ - - - get factor() { - return this._innerValue.factor; - } - /** - * Sets the factor - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @throws {TypeError} if factor is neither 1 nor -1 - * @param {Number} factor - New factor to set, 1 for positive, -1 for negative - */ - - - set factor(factor) { - this._modifyContent(); - - if (factor !== 1 && factor !== -1) { - throw new TypeError('Factor may only be set to 1 or -1'); - } - - this._innerValue.factor = factor; - } - /** - * Gets the total amount of seconds - * - * @returns {Number} - */ - - - get totalSeconds() { - return this._innerValue.toSeconds(); - } - /** - * Sets the total amount of seconds - * - * @throws {ModificationNotAllowedError} if value is locked for modification - * @param {Number} totalSeconds - New number of total seconds to set - */ - - - set totalSeconds(totalSeconds) { - this._modifyContent(); - - this._innerValue.fromSeconds(totalSeconds); - } - /** - * Compares this UTCOffset to another one - * - * @param {UTCOffsetValue} other - The other UTCOffsetValue to compare with - * @returns {Number} -1, 0 or 1 for less/equal/greater - */ - - - compare(other) { - return this._innerValue.compare(other.toICALJs()); - } - /** - * Clones this value - * - * @returns {UTCOffsetValue} - */ - - - clone() { - return UTCOffsetValue.fromICALJs(this._innerValue.clone()); - } - /** - * Create a new UTCOffsetValue object from a ICAL.UTCOffset object - * - * @param {ICAL.UtcOffset} icalValue - The ICAL.UtcOffset object to initialize this object from - * @returns {UTCOffsetValue} - */ - - - static fromICALJs(icalValue) { - return new UTCOffsetValue(icalValue); - } - /** - * Create a new UTCOffsetValue object from a data object - * - * @param {Object} data - Object with data to create UTCOffsetValue object from - * @param {Number=} data.hours - The number of hours to set - * @param {Number=} data.minutes - The number of minutes to set - * @param {Number=} data.factor - The factor to use, 1 for positive, -1 for negative - * @returns {UTCOffsetValue} - */ - - - static fromData(data) { - const icalUTCOffset = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().UtcOffset)(); - icalUTCOffset.fromData(data); - return UTCOffsetValue.fromICALJs(icalUTCOffset); - } - /** - * Create a new UTCOffsetValue object from an amount of seconds - *w - * @param {Number} seconds - The total number of seconds to create the UTCOffsetValue object from - * @returns {UTCOffsetValue} - */ - - - static fromSeconds(seconds) { - const icalUTCOffset = ical_js__WEBPACK_IMPORTED_MODULE_0___default().UtcOffset.fromSeconds(seconds); - return UTCOffsetValue.fromICALJs(icalUTCOffset); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -class UnknownICALTypeError extends Error {} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @author Richard Steinmetz - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * - * @param {String} icaltype The icaltype to get a Value constructor for - * @returns {RecurValue|PeriodValue|BinaryValue|DurationValue|UTCOffsetValue|DateTimeValue} - */ - -function getConstructorForICALType(icaltype) { - switch (lc(icaltype)) { - case 'binary': - return BinaryValue; - - case 'date': - case 'date-time': - return DateTimeValue; - - case 'duration': - return DurationValue; - - case 'period': - return PeriodValue; - - case 'recur': - return RecurValue; - - case 'utc-offset': - return UTCOffsetValue; - - default: - throw new UnknownICALTypeError(); - } -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class Property - * @classdesc This class represents a property as defined in RFC 5545 Section 3.5 - * - * @url https://tools.ietf.org/html/rfc5545#section-3.5 - * @url https://github.com/mozilla-comm/ical.js/blob/master/lib/ical/property.js - */ - -class Property extends observerTrait(lockableTrait(class {})) { - /** - * Constructor - * - * @param {String} name The name of the property - * @param {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} value The value of the property - * @param {Parameter[]|[String][]} parameters Array of parameters - * @param {CalendarComponent|null} root The root of the calendar-document - * @param {AbstractComponent|null} parent The parent-element of this property - */ - constructor(name, value = null, parameters = [], root = null, parent = null) { - super(); - /** - * Name of the property - * - * @type {String} - * @protected - */ - - this._name = uc(name); - /** - * Value of the property - * - * @type {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} - * @protected - */ - - this._value = value; - /** - * List of parameters associated with this parameter - * - * @type {Map} - */ - - this._parameters = new Map(); - /** - * Root node of ical document - * - * @type {CalendarComponent|null} - * @protected - */ - - this._root = root; - /** - * Parent node - * - * @type {AbstractComponent|null} - * @protected - */ - - this._parent = parent; - - this._setParametersFromConstructor(parameters); - - if (value instanceof AbstractValue) { - value.subscribe(() => this._notifySubscribers()); - } - } - /** - * Get property name - * - * @readonly - * @returns {String} - */ - - - get name() { - return this._name; - } - /** - * Get parameter value - * - * @returns {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} - */ - - - get value() { - return this._value; - } - /** - * Set new parameter value - * - * @param {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} value The value of the property - * @throws {ModificationNotAllowedError} if property is locked for modification - */ - - - set value(value) { - this._modifyContent(); - - this._value = value; - - if (value instanceof AbstractValue) { - value.subscribe(() => this._notifySubscribers()); - } - } - /** - * Gets the root of this property - * - * @returns {CalendarComponent|null} - */ - - - get root() { - return this._root; - } - /** - * Sets the root of this property - * - * @param {CalendarComponent|null} root The root of the calendar-document - * @throws {ModificationNotAllowedError} if property is locked for modification - */ - - - set root(root) { - this._modify(); - - this._root = root; - } - /** - * Gets the direct parent element of this property - * - * @returns {AbstractComponent} - */ - - - get parent() { - return this._parent; - } - /** - * Sets the direct parent element of this property - * - * @param {AbstractComponent|null} parent The parent element of this property - * @throws {ModificationNotAllowedError} if property is locked for modification - */ - - - set parent(parent) { - this._modify(); - - this._parent = parent; - } - /** - * Gets the first value of this property - * - * @returns {null|String|Number|AbstractValue} - */ - - - getFirstValue() { - if (!this.isMultiValue()) { - return this.value; - } else { - if (this.value.length > 0) { - return this.value[0]; - } - } - - return null; - } - /** - * Gets an iterator over all values - */ - - - *getValueIterator() { - if (this.isMultiValue()) { - yield* this.value.slice()[Symbol.iterator](); - } else { - yield this.value; - } - } - /** - * Adds a value to the multi-value property - * - * @param {String|AbstractValue} value Value to add - */ - - - addValue(value) { - if (!this.isMultiValue()) { - throw new TypeError('This is not a multivalue property'); - } - - this._modifyContent(); - - this.value.push(value); - } - /** - * Checks if a value is inside this multi-value property - * - * @param {String|AbstractValue} value Value to check for - * @returns {Boolean} - */ - - - hasValue(value) { - if (!this.isMultiValue()) { - throw new TypeError('This is not a multivalue property'); - } - - return this.value.includes(value); - } - /** - * Removes a value from this multi-value property - * - * @param {String|AbstractValue} value Value to remove - */ - - - removeValue(value) { - if (!this.hasValue(value)) { - return; - } - - this._modifyContent(); - - const index = this.value.indexOf(value); - this.value.splice(index, 1); - } - /** - * Sets a parameter on this property - * - * @param {Parameter} parameter The parameter to set - * @throws {ModificationNotAllowedError} if property is locked for modification - */ - - - setParameter(parameter) { - this._modify(); - - this._parameters.set(parameter.name, parameter); - - parameter.subscribe(() => this._notifySubscribers()); - } - /** - * Gets a parameter on this property by its name - * - * @param {String} parameterName Name of the parameter to get - * @returns {Parameter} - */ - - - getParameter(parameterName) { - return this._parameters.get(uc(parameterName)); - } - /** - * Gets an iterator over all available parameters - */ - - - *getParametersIterator() { - yield* this._parameters.values(); - } - /** - * Get first value of a parameter - * - * @param {String} parameterName Name of the parameter - * @returns {null|String} - */ - - - getParameterFirstValue(parameterName) { - const parameter = this.getParameter(parameterName); - - if (parameter instanceof Parameter) { - if (parameter.isMultiValue()) { - return parameter.value[0]; - } else { - return parameter.value; - } - } - - return null; - } - /** - * Returns whether a parameter exists on this property - * - * @param {String} parameterName Name of the parameter - * @returns {boolean} - */ - - - hasParameter(parameterName) { - return this._parameters.has(uc(parameterName)); - } - /** - * Deletes a parameter on this property - * - * @param {String} parameterName Name of the parameter - * @throws {ModificationNotAllowedError} if property is locked for modification - */ - - - deleteParameter(parameterName) { - this._modify(); - - this._parameters.delete(uc(parameterName)); - } - /** - * update a parameter if it exists, - * create a new one if it doesn't - * - * @param {String} parameterName Name of the parameter - * @param {string|Array|null} value Value to set - * @throws {ModificationNotAllowedError} if property is locked for modification - */ - - - updateParameterIfExist(parameterName, value) { - this._modify(); - - if (this.hasParameter(parameterName)) { - const parameter = this.getParameter(parameterName); - parameter.value = value; - } else { - const parameter = new Parameter(uc(parameterName), value); - this.setParameter(parameter); - } - } - /** - * Returns whether or not the value is a multivalue - * - * @returns {Boolean} - */ - - - isMultiValue() { - return Array.isArray(this._value); - } - /** - * Returns whether or not this valus is decorated - * - * @returns {boolean} - */ - - - isDecoratedValue() { - if (this.isMultiValue()) { - return this._value[0] instanceof AbstractValue; - } else { - return this._value instanceof AbstractValue; - } - } - /** - * Marks this parameter is immutable - * locks it against further modification - */ - - - lock() { - super.lock(); - - for (const parameter of this.getParametersIterator()) { - parameter.lock(); - } - - if (this.isDecoratedValue()) { - for (const value of this.getValueIterator()) { - value.lock(); - } - } - } - /** - * Marks this parameter as mutable - * allowing further modification - */ - - - unlock() { - super.unlock(); - - for (const parameter of this.getParametersIterator()) { - parameter.unlock(); - } - - if (this.isDecoratedValue()) { - for (const value of this.getValueIterator()) { - value.unlock(); - } - } - } - /** - * Creates a copy of this parameter - * - * @returns {Property} - */ - - - clone() { - const parameters = []; - - for (const parameter of this.getParametersIterator()) { - parameters.push(parameter.clone()); - } - - return new this.constructor(this.name, this._cloneValue(), parameters, this.root, this.parent); - } - /** - * Copies the values of this property - * - * @returns {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} - * @protected - */ - - - _cloneValue() { - if (this.isDecoratedValue()) { - if (this.isMultiValue()) { - return this._value.map(val => val.clone()); - } else { - return this._value.clone(); - } - } else { - if (this.isMultiValue()) { - // only copy array values, don't copy array reference - return this._value.slice(); - } else { - return this._value; - } - } - } - /** - * Sets parameters from the constructor - * - * @param {Parameter[]|[String][]} parameters Array of parameters to set - * @private - */ - - - _setParametersFromConstructor(parameters) { - parameters.forEach(parameter => { - if (!(parameter instanceof Parameter)) { - parameter = new Parameter(parameter[0], parameter[1]); - } - - this.setParameter(parameter); - }); - } - /** - * Creates a new Component based on an ical object - * - * @param {ICAL.Property} icalProperty The ical.js property to initialise from - * @param {CalendarComponent=} root The root of the calendar-document - * @param {AbstractComponent=} parent The parent element of this property - * @returns {Property} - */ - - - static fromICALJs(icalProperty, root = null, parent = null) { - if (!(icalProperty instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Property))) { - throw new ExpectedICalJSError(); - } - - let value; - - if (icalProperty.isDecorated) { - const constructor = getConstructorForICALType(icalProperty.getFirstValue().icaltype); - - if (icalProperty.isMultiValue) { - value = icalProperty.getValues().map(val => constructor.fromICALJs(val)); - } else { - value = constructor.fromICALJs(icalProperty.getFirstValue()); - } - } else { - if (icalProperty.isMultiValue) { - value = icalProperty.getValues(); - } else { - value = icalProperty.getFirstValue(); - } - } - - const parameters = []; - const paramNames = Object.keys(Object.assign({}, icalProperty.toJSON()[1])); - paramNames.forEach(paramName => { - // Timezone id is handled by DateTimeValue - if (uc(paramName) === 'TZID') { - return; - } - - parameters.push([paramName, icalProperty.getParameter(paramName)]); - }); - return new this(icalProperty.name, value, parameters, root, parent); - } - /** - * Returns an ICAL.js property based on this Property - * - * @returns {ICAL.Property} - */ - - - toICALJs() { - const icalProperty = createProperty(lc(this.name)); - - if (this.isMultiValue()) { - if (this.isDecoratedValue()) { - icalProperty.setValues(this.value.map(val => val.toICALJs())); - } else { - icalProperty.setValues(this.value); - } - } else { - if (this.isDecoratedValue()) { - icalProperty.setValue(this.value.toICALJs()); - } else { - icalProperty.setValue(this.value); - } - } - - for (const parameter of this.getParametersIterator()) { - icalProperty.setParameter(lc(parameter.name), parameter.value); - } - - const firstValue = this.getFirstValue(); - - if (firstValue instanceof DateTimeValue && firstValue.timezoneId !== 'floating' && firstValue.timezoneId !== 'UTC' && !firstValue.isDate) { - icalProperty.setParameter('tzid', firstValue.timezoneId); - } - - return icalProperty; - } - /** - * @inheritDoc - */ - - - _modifyContent() { - super._modifyContent(); - - this._notifySubscribers(); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class AttachmentProperty - * @classdesc This class represents an attachment property as defined in RFC 5545 Section 3.8.1.1 - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.1 - */ - -class AttachmentProperty extends Property { - /** - * Gets the format-type of this attachment - * - * @returns {String} - */ - get formatType() { - return this.getParameterFirstValue('FMTTYPE'); - } - /** - * Sets the format-type of this attachment - * - * @param {String} fmtType Mime-type of attachment - */ - - - set formatType(fmtType) { - this.updateParameterIfExist('FMTTYPE', fmtType); - } - /** - * Gets the uri of this attachment - * - * @returns {String|null} - */ - - - get uri() { - if (this._value instanceof BinaryValue) { - return null; - } - - return this._value; - } - /** - * Sets the uri of this attachment - * - * @param {String} uri Link to attachment if applicable - */ - - - set uri(uri) { - this.value = uri; - } - /** - * Gets the encoding of this attachment - * - * @returns {string|null} - */ - - - get encoding() { - if (this._value instanceof BinaryValue) { - return 'BASE64'; - } - - return null; - } - /** - * Gets the data stored in this attachment - * - * @returns {String|null} - */ - - - get data() { - if (this._value instanceof BinaryValue) { - return this._value.value; - } - - return null; - } - /** - * Sets the data stored in this attachment - * - * @param {String} data The data of the attachment - */ - - - set data(data) { - if (this.value instanceof BinaryValue) { - this.value.value = data; - } else { - this.value = BinaryValue.fromDecodedValue(data); - } - } - /** - * @inheritDoc - */ - - - toICALJs() { - const icalProperty = super.toICALJs(); - - if (this._value instanceof BinaryValue && this.getParameterFirstValue('ENCODING') !== 'BASE64') { - icalProperty.setParameter('ENCODING', 'BASE64'); - } - - return icalProperty; - } - /** - * Creates a new AttachmentProperty based on data - * - * @param {String} data The data of the attachment - * @param {String=} formatType The mime-type of the data - * @returns {AttachmentProperty} - */ - - - static fromData(data, formatType = null) { - const binaryValue = BinaryValue.fromDecodedValue(data); - const property = new AttachmentProperty('ATTACH', binaryValue); - - if (formatType) { - property.formatType = formatType; - } - - return property; - } - /** - * Creates a new AttachmentProperty based on a link - * - * @param {String} uri The URI for the attachment - * @param {String=} formatType The mime-type of the uri - * @returns {AttachmentProperty} - */ - - - static fromLink(uri, formatType = null) { - const property = new AttachmentProperty('ATTACH', uri); - - if (formatType) { - property.formatType = formatType; - } - - return property; - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class AttendeeProperty - * @classdesc This class represents an attendee property as defined in RFC 5545 Section 3.8.4.1 - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - */ - -class AttendeeProperty extends Property { - /** - * Returns the role of the attendee. - * - * @returns {string} - */ - get role() { - const allowed = ['CHAIR', 'REQ-PARTICIPANT', 'OPT-PARTICIPANT', 'NON-PARTICIPANT']; - const defaultValue = 'REQ-PARTICIPANT'; - - if (this.hasParameter('ROLE')) { - const value = this.getParameterFirstValue('ROLE'); - - if (allowed.includes(value)) { - return value; - } - } - - return defaultValue; - } - /** - * Sets new role of the attendee - * - * @param {String} role The role of the attendee (e.g. CHAIR, REQ-PARTICIPANT) - */ - - - set role(role) { - this.updateParameterIfExist('ROLE', role); - } - /** - * Returns the calendar-user-type of an attendee - * - * @returns {string} - */ - - - get userType() { - const allowed = ['INDIVIDUAL', 'GROUP', 'RESOURCE', 'ROOM', 'UNKNOWN']; - - if (!this.hasParameter('CUTYPE')) { - return 'INDIVIDUAL'; - } else { - const value = this.getParameterFirstValue('CUTYPE'); - - if (allowed.includes(value)) { - return value; - } - - return 'UNKNOWN'; - } - } - /** - * Sets new calendar-user-type of attendee - * - * @param {String} userType The type of user (e.g. INDIVIDUAL, GROUP) - */ - - - set userType(userType) { - this.updateParameterIfExist('CUTYPE', userType); - } - /** - * Returns the "Répondez s'il vous plaît" value for attendee - * - * @returns {boolean} - */ - - - get rsvp() { - if (!this.hasParameter('RSVP')) { - return false; - } else { - const value = this.getParameterFirstValue('RSVP'); - return uc(value) === 'TRUE'; - } - } - /** - * Updates the "Répondez s'il vous plaît" value for attendee - * - * @param {boolean} rsvp Whether or not to send out an invitation - */ - - - set rsvp(rsvp) { - this.updateParameterIfExist('RSVP', rsvp ? 'TRUE' : 'FALSE'); - } - /** - * Returns the common-name of the attendee - * - * @returns {string|null} - */ - - - get commonName() { - return this.getParameterFirstValue('CN'); - } - /** - * Sets a new common-name of the attendee - * - * @param {string} commonName The display name of the attendee - */ - - - set commonName(commonName) { - this.updateParameterIfExist('CN', commonName); - } - /** - * Returns the participation-status of the attendee - * - * @returns {string} - */ - - - get participationStatus() { - let vobjectType; - - if (this.parent) { - vobjectType = this.parent.name; - } else { - // let's assume we are inside an event - // if we don't know better - vobjectType = 'VEVENT'; - } - - const allowed = { - VEVENT: ['NEEDS-ACTION', 'ACCEPTED', 'DECLINED', 'TENTATIVE', 'DELEGATED'], - VJOURNAL: ['NEEDS-ACTION', 'ACCEPTED', 'DECLINED'], - VTODO: ['NEEDS-ACTION', 'ACCEPTED', 'DECLINED', 'TENTATIVE', 'DELEGATED', 'COMPLETED', 'IN-PROCESS'] - }; - - if (!this.hasParameter('PARTSTAT')) { - return 'NEEDS-ACTION'; - } else { - const value = this.getParameterFirstValue('PARTSTAT'); - - if (allowed[vobjectType].includes(value)) { - return value; - } - - return 'NEEDS-ACTION'; - } - } - /** - * Sets a new participation-status of the attendee - * - * @param {String} participationStatus The participation status (e.g. ACCEPTED, DECLINED) - */ - - - set participationStatus(participationStatus) { - this.updateParameterIfExist('PARTSTAT', participationStatus); - } - /** - * Gets this attendee's language - * - * @returns {String} - */ - - - get language() { - return this.getParameterFirstValue('LANGUAGE'); - } - /** - * Sets this attendee's language - * This can be used to influence the language of the invitation email - * - * @param {String} language The preferred language of the attendee - */ - - - set language(language) { - this.updateParameterIfExist('LANGUAGE', language); - } - /** - * Gets the email of the attendee - * - * @returns {String} - */ - - - get email() { - return this.value; - } - /** - * Sets the email address of the attendee - * - * @param {String} email The e-email address of the attendee - */ - - - set email(email) { - this.value = startStringWith(email, 'mailto:'); - } - /** - * Is this attendee the organizer? - * - * @returns {boolean} - */ - - - isOrganizer() { - return this._name === 'ORGANIZER'; - } - /** - * Creates a new AttendeeProperty from name and email - * - * @param {String} name The display name - * @param {String} email The email address - * @param {Boolean=} isOrganizer Whether this is the organizer or an attendee - * @returns {AttendeeProperty} - */ - - - static fromNameAndEMail(name, email, isOrganizer = false) { - const propertyName = isOrganizer ? 'ORGANIZER' : 'ATTENDEE'; - email = startStringWith(email, 'mailto:'); - return new AttendeeProperty(propertyName, email, [['CN', name]]); - } - /** - * Creates a new AttendeeProperty from name, email, role, userType and rsvp - * - * @param {String} name The display name - * @param {String} email The email address - * @param {String} role The role - * @param {String} userType The type of user - * @param {Boolean} rsvp Whether to send out an invitation - * @param {Boolean=} isOrganizer Whether this is the organizer or an attendee - * @returns {AttendeeProperty} - */ - - - static fromNameEMailRoleUserTypeAndRSVP(name, email, role, userType, rsvp, isOrganizer = false) { - const propertyName = isOrganizer ? 'ORGANIZER' : 'ATTENDEE'; - email = startStringWith(email, 'mailto:'); - return new AttendeeProperty(propertyName, email, [['CN', name], ['ROLE', role], ['CUTYPE', userType], ['RSVP', rsvp ? 'TRUE' : 'FALSE']]); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -(ical_js__WEBPACK_IMPORTED_MODULE_0___default().design.icalendar.property.conference) = { - defaultType: 'uri' -}; -(ical_js__WEBPACK_IMPORTED_MODULE_0___default().design.icalendar.param.feature) = { - valueType: 'cal-address', - multiValue: ',' -}; -/** - * @class ConferenceProperty - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - */ - -class ConferenceProperty extends Property { - /** - * Iterator that iterates over all supported features - * of the conference system - */ - *getFeatureIterator() { - if (!this.hasParameter('FEATURE')) { - return; - } - - const parameter = this.getParameter('FEATURE'); - yield* parameter.getValueIterator(); - } - /** - * Lists all supported features of the conference system - * - * @returns {String[]} - */ - - - listAllFeatures() { - if (!this.hasParameter('FEATURE')) { - return []; - } - - return this.getParameter('FEATURE').value.slice(); - } - /** - * Adds a supported feature to the conference system - * - * @param {String} featureToAdd Feature to add - */ - - - addFeature(featureToAdd) { - this._modify(); - - if (!this.hasParameter('FEATURE')) { - this.updateParameterIfExist('FEATURE', [featureToAdd]); - } else { - if (this.hasFeature(featureToAdd)) { - return; - } - - const parameter = this.getParameter('FEATURE'); - parameter.value.push(featureToAdd); - } - } - /** - * Removes a supported feature - * - * @param {String} feature The feature to remove - */ - - - removeFeature(feature) { - this._modify(); - - if (!this.hasFeature(feature)) { - return; - } - - const parameter = this.getParameter('FEATURE'); - const index = parameter.value.indexOf(feature); - parameter.value.splice(index, 1); - } - /** - * Removes all supported features from this conference system - */ - - - clearAllFeatures() { - this.deleteParameter('FEATURE'); - } - /** - * Check if this conference system supports a feature - * - * @param {String} feature The feature to check - * @returns {boolean} - */ - - - hasFeature(feature) { - if (!this.hasParameter('FEATURE')) { - return false; - } - - const parameter = this.getParameter('FEATURE'); - - if (!Array.isArray(parameter.value)) { - return false; - } - - return parameter.value.includes(feature); - } - /** - * Gets label for the conference system - * - * @returns {String} - */ - - - get label() { - return this.getParameterFirstValue('LABEL'); - } - /** - * Updates the label for the conference system - * - * @param {String} label The label to set - */ - - - set label(label) { - this.updateParameterIfExist('LABEL', label); - } - /** - * Gets the uri for this conference system - */ - - - get uri() { - return this.value; - } - /** - * Sets the uri for this conference system - * - * @param {String} uri The URI to set - */ - - - set uri(uri) { - this.value = uri; - } - /** - * @inheritDoc - */ - - - toICALJs() { - const icalProperty = super.toICALJs(); - icalProperty.setParameter('value', 'URI'); - return icalProperty; - } - /** - * Creates a new ConferenceProperty based on URI, label and features - * - * @param {String} uri URI of the Conference - * @param {String=} label Label of the conference - * @param {String[]=} features Features of the conference - * @returns {ConferenceProperty} - */ - - - static fromURILabelAndFeatures(uri, label = null, features = null) { - const property = new ConferenceProperty('CONFERENCE', uri); - - if (label) { - property.updateParameterIfExist('label', label); - } - - if (features) { - property.updateParameterIfExist('feature', features); - } - - return property; - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class FreeBusyProperty - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.6 - */ - -class FreeBusyProperty extends Property { - /** - * Gets the type of this FreeBusyProperty - * - * @returns {String} - */ - get type() { - const allowed = ['FREE', 'BUSY', 'BUSY-UNAVAILABLE', 'BUSY-TENTATIVE']; - const defaultValue = 'BUSY'; - - if (this.hasParameter('FBTYPE')) { - const value = this.getParameterFirstValue('FBTYPE'); - - if (allowed.includes(value)) { - return value; - } - } - - return defaultValue; - } - /** - * Sets the type of this FreeBusyProperty - * - * @param {String} type The type of information (e.g. FREE, BUSY, etc.) - */ - - - set type(type) { - this.updateParameterIfExist('FBTYPE', type); - } - /** - * Creates a new FreeBusyProperty based on period and type - * - * @param {PeriodValue} period The period for FreeBusy Information - * @param {String} type The type of the period - * @returns {FreeBusyProperty} - */ - - - static fromPeriodAndType(period, type) { - return new FreeBusyProperty('FREEBUSY', period, [['fbtype', type]]); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class GeoProperty - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6 - */ - -class GeoProperty extends Property { - /** - * @inheritDoc - */ - constructor(name, value = [0, 0], parameters = [], root = null, parent = null) { - super(name, value, parameters, root, parent); - } - /** - * Gets the latitude stored in this property - * - * @returns {Number} - */ - - - get latitude() { - return this._value[0]; - } - /** - * Sets the latitude stored in this property - * - * @param {String|Number} lat Latitude - */ - - - set latitude(lat) { - this._modifyContent(); - - if (typeof lat !== 'number') { - lat = parseFloat(lat); - } - - this._value[0] = lat; - } - /** - * Gets the longitude stored in this property - */ - - - get longitude() { - return this._value[1]; - } - /** - * Sets the longitude stored in this property - * - * @param {String|Number} long Longitude - */ - - - set longitude(long) { - this._modifyContent(); - - if (typeof long !== 'number') { - long = parseFloat(long); - } - - this._value[1] = long; - } - /** - * @inheritDoc - * - * TODO: this is an ugly hack right now. - * As soon as the value is an array, we assume it's multivalue - * but GEO is a (the one and only besides request-status) structured value and is also - * stored inside an array. - * - * Calling icalProperty.setValues will throw an error - */ - - - toICALJs() { - const icalProperty = createProperty(lc(this.name)); - icalProperty.setValue(this.value); - - this._parameters.forEach(parameter => { - icalProperty.setParameter(lc(parameter.name), parameter.value); - }); - - return icalProperty; - } - /** - * Creates a new GeoProperty based on a latitude and a longitude value - * - * @param {Number} lat Latitude - * @param {Number} long Longitude - * @returns {GeoProperty} - */ - - - static fromPosition(lat, long) { - return new GeoProperty('GEO', [lat, long]); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ImageProperty - * - * @url https://tools.ietf.org/html/rfc7986#section-5.10 - */ - -class ImageProperty extends AttachmentProperty { - /** - * Gets the image-type - */ - get display() { - return this.getParameterFirstValue('DISPLAY') || 'BADGE'; - } - /** - * Gets the image-type - * - * @param {String} display The display-type image is optimized for - */ - - - set display(display) { - this.updateParameterIfExist('DISPLAY', display); - } - /** - * Creates a new ImageProperty based on data - * - * @param {String} data The data of the image - * @param {String=} display The display-type it's optimized for - * @param {String=} formatType The mime-type of the image - * @returns {ImageProperty} - */ - - - static fromData(data, display = null, formatType = null) { - const binaryValue = BinaryValue.fromDecodedValue(data); - const property = new ImageProperty('IMAGE', binaryValue); - - if (display) { - property.display = display; - } - - if (formatType) { - property.formatType = formatType; - } - - return property; - } - /** - * Creates a new ImageProperty based on a link - * - * @param {String} uri The uri of the image - * @param {String=} display The display-type it's optimized for - * @param {String=} formatType The mime-type of the image - * @returns {ImageProperty} - */ - - - static fromLink(uri, display = null, formatType = null) { - const property = new ImageProperty('IMAGE', uri); - - if (display) { - property.display = display; - } - - if (formatType) { - property.formatType = formatType; - } - - return property; - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class RelationProperty - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.5 - */ - -class RelationProperty extends Property { - /** - * Get's the relation-type of this related-to property - * - * @returns {String} - */ - get relationType() { - const allowed = ['PARENT', 'CHILD', 'SIBLING']; - const defaultValue = 'PARENT'; - - if (!this.hasParameter('RELTYPE')) { - return defaultValue; - } else { - const value = this.getParameterFirstValue('RELTYPE'); - - if (allowed.includes(value)) { - return value; - } - - return defaultValue; - } - } - /** - * Sets a new relation type - * - * @param {String} relationType The type of relation (e.g. SIBLING, PARENT, etc.) - */ - - - set relationType(relationType) { - this.updateParameterIfExist('RELTYPE', relationType); - } - /** - * Gets Id of related object - * - * @returns {String} - */ - - - get relatedId() { - return this.value; - } - /** - * Sets a new related id - * - * @param {String} relatedId The Id of the related document - */ - - - set relatedId(relatedId) { - this.value = relatedId; - } - /** - * Creates a new RELATED-TO property based on a relation-type and id - * - * @param {String} relType The type of the relation (e.g. SIBLING, CHILD) - * @param {String} relId The Id of the related document - * @returns {RelationProperty} - */ - - - static fromRelTypeAndId(relType, relId) { - return new RelationProperty('RELATED-TO', relId, [['RELTYPE', relType]]); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class RequestStatusProperty - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.8.3 - */ - -class RequestStatusProperty extends Property { - /** - * @inheritDoc - */ - constructor(name, value = ['1', 'Pending'], parameters = [], root = null, parent = null) { - super(name, value, parameters, root, parent); - } - /** - * Gets the status code of the request status - * - * @returns {Number} - */ - - - get statusCode() { - return parseFloat(this.value[0]); - } - /** - * Sets the status code of the request status - * - * @param {Number} statusCode The statusCode of the request - */ - - - set statusCode(statusCode) { - this._modifyContent(); - - this.value[0] = statusCode.toString(); // This makes sure 2.0 is actually saved as 2.0, not 2 - - if (statusCode === Math.floor(statusCode)) { - this.value[0] += '.0'; - } - } - /** - * Gets the status message of the request status - * - * @returns {string} - */ - - - get statusMessage() { - return this.value[1]; - } - /** - * Sets the status message of the request status - * - * @param {String} statusMessage The message of the request - */ - - - set statusMessage(statusMessage) { - this._modifyContent(); - - this.value[1] = statusMessage; - } - /** - * Gets the exception data of the request status if available - * - * @returns {null|String} - */ - - - get exceptionData() { - if (!this.value[2]) { - return null; - } - - return this.value[2]; - } - /** - * Sets the exception dtat of the request status - * - * @param {String} exceptionData The additional exception-data - */ - - - set exceptionData(exceptionData) { - this._modifyContent(); - - this.value[2] = exceptionData; - } - /** - * Check if request is pending - * - * @returns {boolean} - */ - - - isPending() { - return this.statusCode >= 1 && this.statusCode < 2; - } - /** - * Check if request was successful - * - * @returns {boolean} - */ - - - isSuccessful() { - return this.statusCode >= 2 && this.statusCode < 3; - } - /** - * Check if a client error occurred - * - * @returns {boolean} - */ - - - isClientError() { - return this.statusCode >= 3 && this.statusCode < 4; - } - /** - * Check if a scheduling error occurred - * - * @returns {boolean} - */ - - - isSchedulingError() { - return this.statusCode >= 4 && this.statusCode < 5; - } - /** - * @inheritDoc - * - * TODO: this is an ugly hack right now. - * As soon as the value is an array, we assume it's multivalue - * but REQUEST-STATUS is a (the one and only besides GEO) structured value and is also - * stored inside an array. - * - * Calling icalProperty.setValues will throw an error - */ - - - toICALJs() { - const icalProperty = createProperty(lc(this.name)); - icalProperty.setValue(this.value); - - this._parameters.forEach(parameter => { - icalProperty.setParameter(lc(parameter.name), parameter.value); - }); - - return icalProperty; - } - /** - * Creates a new RequestStatusProperty from a code and a status message - * - * @param {Number} code The status-code of the request - * @param {String} message The message of the request - * @returns {RequestStatusProperty} - */ - - - static fromCodeAndMessage(code, message) { - return new RequestStatusProperty('REQUEST-STATUS', [code.toString(), message]); - } - -} // All request statuses registered in RFC 5546 - -RequestStatusProperty.SUCCESS = [2.0, 'Success']; -RequestStatusProperty.SUCCESS_FALLBACK = [2.1, 'Success, but fallback taken on one or more property values.']; -RequestStatusProperty.SUCCESS_PROP_IGNORED = [2.2, 'Success; invalid property ignored.']; -RequestStatusProperty.SUCCESS_PROPPARAM_IGNORED = [2.3, 'Success; invalid property parameter ignored.']; -RequestStatusProperty.SUCCESS_NONSTANDARD_PROP_IGNORED = [2.4, 'Success; unknown, non-standard property ignored.']; -RequestStatusProperty.SUCCESS_NONSTANDARD_PROPPARAM_IGNORED = [2.5, 'Success; unknown, non-standard property value ignored.']; -RequestStatusProperty.SUCCESS_COMP_IGNORED = [2.6, 'Success; invalid calendar component ignored.']; -RequestStatusProperty.SUCCESS_FORWARDED = [2.7, 'Success; request forwarded to Calendar User.']; -RequestStatusProperty.SUCCESS_REPEATING_IGNORED = [2.8, 'Success; repeating event ignored. Scheduled as a single component.']; -RequestStatusProperty.SUCCESS_TRUNCATED_END = [2.9, 'Success; truncated end date time to date boundary.']; -RequestStatusProperty.SUCCESS_REPEATING_VTODO_IGNORED = [2.10, 'Success; repeating VTODO ignored. Scheduled as a single VTODO.']; -RequestStatusProperty.SUCCESS_UNBOUND_RRULE_CLIPPED = [2.11, 'Success; unbounded RRULE clipped at some finite number of instances.']; -RequestStatusProperty.CLIENT_INVALID_PROPNAME = [3.0, 'Invalid property name.']; -RequestStatusProperty.CLIENT_INVALID_PROPVALUE = [3.1, 'Invalid property value.']; -RequestStatusProperty.CLIENT_INVALID_PROPPARAM = [3.2, 'Invalid property parameter.']; -RequestStatusProperty.CLIENT_INVALID_PROPPARAMVALUE = [3.3, 'Invalid property parameter value.']; -RequestStatusProperty.CLIENT_INVALUD_CALENDAR_COMP_SEQ = [3.4, 'Invalid calendar component sequence.']; -RequestStatusProperty.CLIENT_INVALID_DATE_TIME = [3.5, 'Invalid date or time.']; -RequestStatusProperty.CLIENT_INVALID_RRULE = [3.6, 'Invalid rule.']; -RequestStatusProperty.CLIENT_INVALID_CU = [3.7, 'Invalid Calendar User.']; -RequestStatusProperty.CLIENT_NO_AUTHORITY = [3.8, 'No authority.']; -RequestStatusProperty.CLIENT_UNSUPPORTED_VERSION = [3.9, 'Unsupported version.']; -RequestStatusProperty.CLIENT_TOO_LARGE = [3.10, 'Request entity too large.']; -RequestStatusProperty.CLIENT_REQUIRED_COMP_OR_PROP_MISSING = [3.11, 'Required component or property missing.']; -RequestStatusProperty.CLIENT_UNKNOWN_COMP_OR_PROP = [3.12, 'Unknown component or property found.']; -RequestStatusProperty.CLIENT_UNSUPPORTED_COMP_OR_PROP = [3.13, 'Unsupported component or property found.']; -RequestStatusProperty.CLIENT_UNSUPPORTED_CAPABILITY = [3.14, 'Unsupported capability.']; -RequestStatusProperty.SCHEDULING_EVENT_CONFLICT = [4.0, 'Event conflict. Date/time is busy.']; -RequestStatusProperty.SERVER_REQUEST_NOT_SUPPORTED = [5.0, 'Request not supported.']; -RequestStatusProperty.SERVER_SERVICE_UNAVAILABLE = [5.1, 'Service unavailable.']; -RequestStatusProperty.SERVER_INVALID_CALENDAR_SERVICE = [5.2, 'Invalid calendar service.']; -RequestStatusProperty.SERVER_NO_SCHEDULING_FOR_USER = [5.3, 'No scheduling support for user.']; - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class TextProperty - * @classdesc - */ - -class TextProperty extends Property { - /** - * Gets the alternate text - * - * @returns {String} - */ - get alternateText() { - return this.getParameterFirstValue('ALTREP'); - } - /** - * Sets the alternate text - * - * @param {String} altRep The alternative text - */ - - - set alternateText(altRep) { - this.updateParameterIfExist('ALTREP', altRep); - } - /** - * Gets language of this property - * - * @returns {String} - */ - - - get language() { - return this.getParameterFirstValue('LANGUAGE'); - } - /** - * Sets language of this property - * - * @param {String} language The language of the text - */ - - - set language(language) { - this.updateParameterIfExist('LANGUAGE', language); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class TriggerProperty - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.3 - */ - -class TriggerProperty extends Property { - /** - * Gets the related parameter - * - * @returns {String} - */ - get related() { - if (!this.hasParameter('RELATED')) { - return 'START'; - } - - return this.getParameterFirstValue('RELATED'); - } - /** - * Sets the related parameter - * - * @param {String} related Either START or END - */ - - - set related(related) { - this.updateParameterIfExist('RELATED', related); - } - /** - * Gets the value of this trigger - * (If you override the setter, you also have to override the getter or - * it will simply be undefined) - * - * @returns {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]} - */ - - - get value() { - return super.value; - } - /** - * Set the value of this trigger - * - * @param {DurationValue|DateTimeValue} value The time of trigger - */ - - - set value(value) { - super.value = value; // If it's not a duration, remove related parameter - - if (value instanceof DateTimeValue) { - this.deleteParameter('RELATED'); - super.value = value.getInUTC(); - } - } - /** - * Gets whether this alarm trigger is relative - * - * @returns {boolean} - */ - - - isRelative() { - return this.getFirstValue() instanceof DurationValue; - } - /** - * Creates a new absolute trigger - * - * @param {DateTimeValue} alarmTime Time to create Trigger from - * @returns {TriggerProperty} - */ - - - static fromAbsolute(alarmTime) { - return new TriggerProperty('TRIGGER', alarmTime); - } - /** - * Creates a new relative trigger - * - * @param {DurationValue} alarmOffset Duration to create Trigger from - * @param {Boolean=} relatedToStart Related to Start or end? - * @returns {TriggerProperty} - */ - - - static fromRelativeAndRelated(alarmOffset, relatedToStart = true) { - return new TriggerProperty('TRIGGER', alarmOffset, [['RELATED', relatedToStart ? 'START' : 'END']]); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @author Richard Steinmetz - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * - * @param {String} propName Name of the prop to get constructor for - * @returns {AttendeeProperty|GeoProperty|ConferenceProperty|Property|AttachmentProperty|ImageProperty|RelationProperty|RequestStatusProperty} - */ - -function getConstructorForPropertyName(propName) { - switch (uc(propName)) { - case 'ATTACH': - return AttachmentProperty; - - case 'ATTENDEE': - case 'ORGANIZER': - return AttendeeProperty; - - case 'CONFERENCE': - return ConferenceProperty; - - case 'FREEBUSY': - return FreeBusyProperty; - - case 'GEO': - return GeoProperty; - - case 'IMAGE': - return ImageProperty; - - case 'RELATED-TO': - return RelationProperty; - - case 'REQUEST-STATUS': - return RequestStatusProperty; - - case 'TRIGGER': - return TriggerProperty; - - case 'COMMENT': - case 'CONTACT': - case 'DESCRIPTION': - case 'LOCATION': - case 'SUMMARY': - return TextProperty; - - default: - return Property; - } -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class AbstractComponent - */ - -class AbstractComponent extends observerTrait(lockableTrait(class {})) { - /** - * Constructor - * - * @param {String} name - Name of component - * @param {Property[]} properties - Array of properties stored inside the component - * @param {AbstractComponent[]} components - Array of subcomponents stored inside this component - * @param {CalendarComponent|null} root - The root of this calendar document - * @param {AbstractComponent|null} parent - The parent component of this element - */ - constructor(name, properties = [], components = [], root = null, parent = null) { - super(); - /** - * Name of component - * - * @type {String} - * @private - */ - - this._name = uc(name); - /** - * All properties in this component - * - * @type {Map} - * @private - */ - - this._properties = new Map(); - /** - * All subcomponents of this component - * - * @type {Map} - * @private - */ - - this._components = new Map(); - /** - * Root node of ical document - * - * @type {CalendarComponent|null} - * @private - */ - - this._root = root; - /** - * Parent node - * - * @type {AbstractComponent|null} - * @private - */ - - this._parent = parent; - - this._setPropertiesFromConstructor(properties); - - this._setComponentsFromConstructor(components); - } - /** - * Get the component's name - * - * @returns {String} - */ - - - get name() { - return this._name; - } - /** - * Gets the root of this calendar-document - * - * @returns {CalendarComponent} - */ - - - get root() { - return this._root; - } - /** - * Sets the root of this calendar-document - * - * @param {CalendarComponent} root The new root element - */ - - - set root(root) { - this._modify(); - - this._root = root; - - for (const property of this.getPropertyIterator()) { - property.root = root; - } - - for (const component of this.getComponentIterator()) { - component.root = root; - } - } - /** - * Gets the parent component - * - * @returns {AbstractComponent} - */ - - - get parent() { - return this._parent; - } - /** - * Sets the parent component - * - * @param {AbstractComponent} parent The new parent element - */ - - - set parent(parent) { - this._modify(); - - this._parent = parent; - } - /** - * Gets the first property that matches the given propertyName - * - * @param {String} propertyName Name of the property to get - * @returns {Property|null} - */ - - - getFirstProperty(propertyName) { - if (!this._properties.has(uc(propertyName))) { - return null; - } - - return this._properties.get(uc(propertyName))[0]; - } - /** - * Gets the first value of the first property matching that name - * - * @param {String} propertyName Name of the property to get first value of - * @returns {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} - */ - - - getFirstPropertyFirstValue(propertyName) { - const property = this.getFirstProperty(propertyName); - - if (!property) { - return null; - } - - return property.getFirstValue(); - } - /** - * update a property if it exists, - * create a new one if it doesn't - * - * @param {String} propertyName Name of the property to update / create - * @param {String|Number|AbstractValue|String[]|Number[]|AbstractValue[]|null} value The value to set - */ - - - updatePropertyWithValue(propertyName, value) { - this._modify(); - - const property = this.getFirstProperty(propertyName); - - if (property) { - property.value = value; - } else { - const constructor = getConstructorForPropertyName(propertyName); - const newProperty = new constructor(propertyName, value, [], this, this.root); - this.addProperty(newProperty); - } - } - /** - * Returns iterator for all properties of a given propertyName - * or if no propertyName was given over all available properties - * - * @param {String=} propertyName Name of the property to get an iterator for - */ - - - *getPropertyIterator(propertyName = null) { - if (propertyName) { - if (!this.hasProperty(propertyName)) { - return; - } // this._properties.get() returns an array - // [Symbol.iterator]() creates an iterator from that array - - - yield* this._properties.get(uc(propertyName)).slice()[Symbol.iterator](); - } else { - for (const key of this._properties.keys()) { - yield* this.getPropertyIterator(key); - } - } - } - /** - * Get all properties by name that match the given LANG parameter - * - * @param {String} propertyName The name of the property - * @param {String|null} lang The lang to query - * @private - */ - - - *_getAllOfPropertyByLang(propertyName, lang) { - for (const property of this.getPropertyIterator(propertyName)) { - // getParameterFirstValue will return null if language not set, so no language parameter will match lang=null - if (property.getParameterFirstValue('LANGUAGE') === lang) { - yield property; - } - } - } - /** - * Get the first property by name that matches the given LANG parameter - * - * @param {String} propertyName The name of the property - * @param {String|null} lang The lang to query - * @returns {Property|null} - * @private - */ - - - _getFirstOfPropertyByLang(propertyName, lang) { - const iterator = this._getAllOfPropertyByLang(propertyName, lang); - - return iterator.next().value || null; - } - /** - * Adds a property - * - * @param {Property} property The property to add - * @returns {boolean} - */ - - - addProperty(property) { - this._modify(); - - property.root = this.root; - property.parent = this; - - if (this._properties.has(property.name)) { - const arr = this._properties.get(property.name); - - if (arr.indexOf(property) !== -1) { - // If the property is already part of this component, - // return false to indicate an error - return false; - } - - arr.push(property); - } else { - this._properties.set(property.name, [property]); - } - - property.subscribe(() => this._notifySubscribers()); - return true; - } - /** - * Checks if this component has a property of the given name - * - * @param {String} propertyName The name of the property - * @returns {boolean} - */ - - - hasProperty(propertyName) { - return this._properties.has(uc(propertyName)); - } - /** - * Removes the given property from this component - * - * @param {Property} property The property to delete - * @returns {boolean} - */ - - - deleteProperty(property) { - this._modify(); - - if (!this._properties.has(property.name)) { - return false; - } - - const arr = this._properties.get(property.name); - - const index = arr.indexOf(property); - - if (index === -1) { - return false; - } - - if (index !== -1 && arr.length === 1) { - // If this is the last property of the given name, - // remove the entire array from _properties - // This is required for hasProperty to work properly - this._properties.delete(property.name); - } else { - arr.splice(index, 1); - } - - return true; - } - /** - * Removes all properties of a given name - * - * @param {String} propertyName The name of the property - * @returns {boolean} - */ - - - deleteAllProperties(propertyName) { - this._modify(); - - return this._properties.delete(uc(propertyName)); - } - /** - * Gets the first component of a given name - * - * @param {String} componentName The name of the component - * @returns {AbstractComponent|null} - */ - - - getFirstComponent(componentName) { - if (!this.hasComponent(componentName)) { - return null; - } - - return this._components.get(uc(componentName))[0]; - } - /** - * Returns iterator for all components of a given componentName - * or if no componentName was given over all available components - * - * @param {String=} componentName The name of the component - */ - - - *getComponentIterator(componentName) { - if (componentName) { - if (!this.hasComponent(componentName)) { - return; - } // this._components.get() returns an array - // [Symbol.iterator]() creates an iterator from that array - - - yield* this._components.get(uc(componentName)).slice()[Symbol.iterator](); - } else { - for (const key of this._components.keys()) { - yield* this.getComponentIterator(key); - } - } - } - /** - * Adds a new component to this component - * - * @param {AbstractComponent} component The component to add - * @returns {Boolean} - */ - - - addComponent(component) { - this._modify(); - - component.root = this.root; - component.parent = this; - - if (this._components.has(component.name)) { - const arr = this._components.get(component.name); - - if (arr.indexOf(component) !== -1) { - // If the property is already part of this component, - // return false to indicate an error - return false; - } - - arr.push(component); - } else { - this._components.set(component.name, [component]); - } - - component.subscribe(() => this._notifySubscribers()); - return true; - } - /** - * Checks if this component has a component of the given name - * - * @param {String} componentName The name of the component - * @returns {boolean} - */ - - - hasComponent(componentName) { - return this._components.has(uc(componentName)); - } - /** - * Removes the given component from this component - * - * @param {AbstractComponent} component The component to delete - * @returns {boolean} - */ - - - deleteComponent(component) { - this._modify(); - - if (!this._components.has(component.name)) { - return false; - } - - const arr = this._components.get(component.name); - - const index = arr.indexOf(component); - - if (index === -1) { - return false; - } - - if (index !== -1 && arr.length === 1) { - // If this is the last component of the given name, - // remove the entire array from _components - // This is required for hasComponent to work properly - this._components.delete(component.name); - } else { - arr.splice(index, 1); - } - - return true; - } - /** - * Removes all components of a given name - * - * @param {String} componentName The name of the component - * @returns {boolean} - */ - - - deleteAllComponents(componentName) { - this._modify(); - - return this._components.delete(uc(componentName)); - } - /** - * Marks this parameter is immutable - * locks it against further modification - */ - - - lock() { - super.lock(); - - for (const property of this.getPropertyIterator()) { - property.lock(); - } - - for (const component of this.getComponentIterator()) { - component.lock(); - } - } - /** - * Marks this parameter as mutable - * allowing further modification - */ - - - unlock() { - super.unlock(); - - for (const property of this.getPropertyIterator()) { - property.unlock(); - } - - for (const component of this.getComponentIterator()) { - component.unlock(); - } - } - /** - * Creates a copy of this parameter - * - * @returns {AbstractComponent} - */ - - - clone() { - const properties = []; - - for (const property of this.getPropertyIterator()) { - properties.push(property.clone()); - } - - const components = []; - - for (const component of this.getComponentIterator()) { - components.push(component.clone()); - } - - return new this.constructor(this.name, properties, components, this.root, this.parent); - } - /** - * Adds properties from constructor to this._properties - * - * @param {Property[]} properties Array of properties - * @private - */ - - - _setPropertiesFromConstructor(properties) { - for (let property of properties) { - if (Array.isArray(property)) { - const constructor = getConstructorForPropertyName(property[0]); - property = new constructor(property[0], property[1]); - } - - this.addProperty(property); - } - } - /** - * Adds components from constructor to this._components - * - * @param {AbstractComponent[]} components Array of components - * @private - */ - - - _setComponentsFromConstructor(components) { - for (const component of components) { - this.addComponent(component); - } - } - /** - * Creates a new Component based on an ical object - * - * @param {ICAL.Component} icalValue The ical.js component to initialise from - * @param {CalendarComponent=} root The root of the Calendar Document - * @param {AbstractComponent=} parent The parent element of this component - * @returns {AbstractComponent} - */ - - - static fromICALJs(icalValue, root = null, parent = null) { - if (!(icalValue instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Component))) { - throw new ExpectedICalJSError(); - } - - const name = icalValue.name; - const newComponent = new this(name, [], [], root, parent); - - for (const icalProp of icalValue.getAllProperties()) { - const constructor = getConstructorForPropertyName(icalProp.name); - const property = constructor.fromICALJs(icalProp, root, newComponent); - newComponent.addProperty(property); - } - - for (const icalComp of icalValue.getAllSubcomponents()) { - const constructor = this._getConstructorForComponentName(icalComp.name); - - const component = constructor.fromICALJs(icalComp, root, newComponent); - newComponent.addComponent(component); - } - - return newComponent; - } - /** - * Gets a constructor for a give component name - * - * @param {String} componentName The name of the component - * @returns {AbstractComponent} - * @protected - */ - - - static _getConstructorForComponentName(componentName) { - return AbstractComponent; - } - /** - * turns this Component into an ICAL.js component - * - * @returns {ICAL.Component} - */ - - - toICALJs() { - const component = createComponent(lc(this.name)); - - for (const prop of this.getPropertyIterator()) { - component.addProperty(prop.toICALJs()); - } - - for (const comp of this.getComponentIterator()) { - component.addSubcomponent(comp.toICALJs()); - } - - return component; - } - -} -/** - * Advertise properties that may at most occur once - * - * Properties, which may at most occur once, get a simple getter and setter - * - * @param {Object} prototype The object's prototype - * @param {Object} options The options for advertising properties - * @param {Boolean} advertiseValueOnly Whether to advertise the value only or the entire property - */ - -function advertiseSingleOccurrenceProperty(prototype, options, advertiseValueOnly = true) { - options = getDefaultOncePropConfig(options); - Object.defineProperty(prototype, options.name, { - get() { - const value = this.getFirstPropertyFirstValue(options.iCalendarName); - - if (!value) { - return options.defaultValue; - } else { - if (Array.isArray(options.allowedValues) && !options.allowedValues.includes(value)) { - return options.unknownValue; - } - - return value; - } - }, - - set(value) { - this._modify(); - - if (value === null) { - this.deleteAllProperties(options.iCalendarName); - return; - } - - if (Array.isArray(options.allowedValues) && !options.allowedValues.includes(value)) { - throw new TypeError('Illegal value'); - } - - this.updatePropertyWithValue(options.iCalendarName, value); - } - - }); -} -/** - * Advertise properties that may occur more than once - * - * Properties, which may occur more than once, won't get simple getter / setter, - * but rather a more advanced set of get{name}Iterator, get{name}List, add{name}, - * remove{name} and clearAll{name} methods - * - * @param {Object} prototype The object's prototype - * @param {Object} options The options for advertising properties - */ - -function advertiseMultipleOccurrenceProperty(prototype, options) { - options = getDefaultMultiplePropConfig(options); - - prototype['get' + ucFirst(options.name) + 'Iterator'] = function* () { - yield* this.getPropertyIterator(options.iCalendarName); - }; - - prototype['get' + ucFirst(options.name) + 'List'] = function () { - return Array.from(this['get' + ucFirst(options.name) + 'Iterator']()); - }; - - prototype['remove' + ucFirst(options.name)] = function (property) { - this.deleteProperty(property); - }; - - prototype['clearAll' + ucFirst(options.pluralName)] = function () { - this.deleteAllProperties(options.iCalendarName); - }; -} -/** - * advertises a multi-value string property enabling simple access by language - * This is used for: - * - CATEGORIES - * - RESOURCES - * - * @param {Object} prototype The object's prototype - * @param {Object} options The options for advertising properties - */ - -function advertiseMultiValueStringPropertySeparatedByLang(prototype, options) { - options = getDefaultMultiplePropConfig(options); - - prototype['get' + ucFirst(options.name) + 'Iterator'] = function* (lang = null) { - for (const property of this._getAllOfPropertyByLang(options.iCalendarName, lang)) { - yield* property.getValueIterator(); - } - }; - - prototype['get' + ucFirst(options.name) + 'List'] = function (lang = null) { - return Array.from(this['get' + ucFirst(options.name) + 'Iterator'](lang)); - }; - - prototype['add' + ucFirst(options.name)] = function (value, lang = null) { - const property = this._getFirstOfPropertyByLang(options.iCalendarName, lang); - - if (property) { - property.addValue(value); - } else { - const newProperty = new Property(options.iCalendarName, [value]); - - if (lang) { - const languageParameter = new Parameter('LANGUAGE', lang); - newProperty.setParameter(languageParameter); - } - - this.addProperty(newProperty); - } - }; - - prototype['remove' + ucFirst(options.name)] = function (value, lang = null) { - for (const property of this._getAllOfPropertyByLang(options.iCalendarName, lang)) { - if (property.isMultiValue() && property.hasValue(value)) { - if (property.value.length === 1) { - this.deleteProperty(property); - return true; - } - - property.removeValue(value); - return true; - } - } - - return false; - }; - - prototype['clearAll' + ucFirst(options.pluralName)] = function (lang = null) { - for (const property of this._getAllOfPropertyByLang(options.iCalendarName, lang)) { - this.deleteProperty(property); - } - }; -} -/** - * advertise a component - * - * @param {Object} prototype The object's prototype - * @param {Object} options The options for advertising components - */ - -function advertiseComponent(prototype, options) { - options = getDefaultMultipleCompConfig(options); - - prototype['get' + ucFirst(options.name) + 'Iterator'] = function* () { - yield* this.getComponentIterator(options.iCalendarName); - }; - - prototype['get' + ucFirst(options.name) + 'List'] = function () { - return Array.from(this['get' + ucFirst(options.name) + 'Iterator']()); - }; - - prototype['remove' + ucFirst(options.name)] = function (component) { - this.deleteComponent(component); - }; - - prototype['clearAll' + ucFirst(options.pluralName)] = function () { - this.deleteAllComponents(options.iCalendarName); - }; -} -/** - * Fill up the options object for advertiseProperty - * - * @param {Object|String} options The options object - * @param {String} options.name Advertised name of the property - * @param {String=} options.iCalendarName The iCalendar name of the property - * @param {String[]=} options.allowedValues A list of allowed values - * @param {String|Number=} options.defaultValue The default value if unset - * @param {String|Number=} options.unknownValue The fallback value if unknown value - * @returns {Object} - */ - -function getDefaultOncePropConfig(options) { - if (typeof options === 'string') { - options = { - name: options - }; - } - - return Object.assign({}, { - iCalendarName: uc(options.name), - pluralName: options.name + 's', - allowedValues: null, - defaultValue: null, - unknownValue: null - }, options); -} -/** - * Fill up the options object for advertiseProperty - * - * @param {Object|String} options The options object - * @param {String} options.name Advertised name of property - * @param {String=} options.iCalendarName The iCalendar name of the property - * @param {Boolean=} options.customAddMethod Whether or not to use a custom add method - * @returns {Object} - */ - - -function getDefaultMultiplePropConfig(options) { - if (typeof options === 'string') { - options = { - name: options - }; - } - - return Object.assign({}, { - iCalendarName: uc(options.name), - pluralName: options.name + 's' - }, options); -} -/** - * Fill up the options object for advertiseComponent - * - * @param {Object|String} options Options destructuring object - * @param {String} options.name Advertised name of component - * @param {String=} options.iCalendarName The iCalendar name of the component - * @param {Boolean=} options.customAddMethod Whether or not to use a custom add method - * @returns {Object} - */ - - -function getDefaultMultipleCompConfig(options) { - if (typeof options === 'string') { - options = { - name: options - }; - } - - return Object.assign({}, { - iCalendarName: 'V' + uc(options.name), - pluralName: options.name + 's' - }, options); -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * Gets a new DateObject set to now - * - * @returns {Date} - */ -function dateFactory() { - return new Date(); -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -class RecurringWithoutDtStartError extends Error {} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class RecurrenceHelper - * @classdesc - * - * TODO: This needs caching - */ - -class RecurrenceManager { - /** - * Constructor - * - * @param {AbstractRecurringComponent} masterItem The master-item of the recurrence-set - */ - constructor(masterItem) { - /** - * - * @type {AbstractRecurringComponent} - * @private - */ - this._masterItem = masterItem; - /** - * Set of Recurrence exception items - * - * Number is the unix time representation of the recurrence ID - * - * @type {Map} - * @private - */ - - this._recurrenceExceptionItems = new Map(); - /** - * A sorted index of recurrence ids with range - * - * @type {Number[]} - * @private - */ - - this._rangeRecurrenceExceptionItemsIndex = []; - /** - * Cached difference of dtstart and recurrenceId for recurrence exceptions with range - * - * @type {Map} - * @private - */ - - this._rangeRecurrenceExceptionItemsDiffCache = new Map(); - /** - * Set of Recurrence exception items that have a RANGE of THISANDFUTURE - * - * Number is the unix time representation of the recurrence ID - * - * @type {Map} - * @private - */ - - this._rangeRecurrenceExceptionItems = new Map(); - } - /** - * - * @returns {AbstractRecurringComponent} - */ - - - get masterItem() { - return this._masterItem; - } - /** - * - * @param {AbstractRecurringComponent} masterItem The master-item of the recurrence-set - */ - - - set masterItem(masterItem) { - this._masterItem = masterItem; - } - /** - * Gets an iterator over all registered recurrence exceptions of this calendar-document - */ - - - *getRecurrenceExceptionIterator() { - yield* this._recurrenceExceptionItems.values(); - } - /** - * Gets a list of all registered recurrence-exceptions of this calendar-document - * - * @returns {AbstractRecurringComponent[]} - */ - - - getRecurrenceExceptionList() { - return Array.from(this.getRecurrenceExceptionIterator()); - } - /** - * Checks if there is a recurrence Exception for a given recurrenceId - * - * @param {DateTimeValue|Number} recurrenceId The recurrenceId to check - * @returns {boolean} - */ - - - hasRecurrenceExceptionForId(recurrenceId) { - if (recurrenceId instanceof DateTimeValue) { - recurrenceId = recurrenceId.unixTime; - } else if (recurrenceId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)) { - recurrenceId = recurrenceId.toUnixTime(); - } - - return this._recurrenceExceptionItems.has(recurrenceId); - } - /** - * Gets the recurrence exception for a given recurrence Id - * - * @param {DateTimeValue|Number} recurrenceId The recurrenceId to get - * @returns {AbstractRecurringComponent|null} - */ - - - getRecurrenceException(recurrenceId) { - if (recurrenceId instanceof DateTimeValue) { - recurrenceId = recurrenceId.unixTime; - } else if (recurrenceId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)) { - recurrenceId = recurrenceId.toUnixTime(); - } - - return this._recurrenceExceptionItems.get(recurrenceId) || null; - } - /** - * Check if there is a recurrence-exception with a range for a given recurrence-id - * - * @param {DateTimeValue|Number} recurrenceId The recurrenceId to check - * @returns {boolean} - */ - - - hasRangeRecurrenceExceptionForId(recurrenceId) { - if (recurrenceId instanceof DateTimeValue) { - recurrenceId = recurrenceId.unixTime; - } else if (recurrenceId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)) { - recurrenceId = recurrenceId.toUnixTime(); - } - - if (this._rangeRecurrenceExceptionItemsIndex.length === 0) { - return false; - } - - return this._rangeRecurrenceExceptionItemsIndex[0] < recurrenceId; - } - /** - * Get recurrence-exception with range that's affecting the given recurrence-id - * - * @param {DateTimeValue|Number} recurrenceId The recurrenceId to get - * @returns {AbstractRecurringComponent|null} - */ - - - getRangeRecurrenceExceptionForId(recurrenceId) { - if (recurrenceId instanceof DateTimeValue) { - recurrenceId = recurrenceId.unixTime; - } else if (recurrenceId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)) { - recurrenceId = recurrenceId.toUnixTime(); - } - - const index = ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.binsearchInsert(this._rangeRecurrenceExceptionItemsIndex, recurrenceId, (a, b) => a - b); - - if (index === 0) { - return null; - } - - const key = this._rangeRecurrenceExceptionItemsIndex[index - 1]; - return this._rangeRecurrenceExceptionItems.get(key); - } - /** - * Gets the difference between recurrence-id and start - * Mostly needed to handle recurrence-exceptions with range - * - * @param {DateTimeValue|Number} recurrenceId The recurrenceId to get - * @returns {DurationValue|null} - */ - - - getRangeRecurrenceExceptionDiff(recurrenceId) { - if (recurrenceId instanceof DateTimeValue) { - recurrenceId = recurrenceId.unixTime; - } else if (recurrenceId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)) { - recurrenceId = recurrenceId.toUnixTime(); - } - - if (this._rangeRecurrenceExceptionItemsDiffCache.has(recurrenceId)) { - return this._rangeRecurrenceExceptionItemsDiffCache.get(recurrenceId); - } - - const recurrenceException = this.getRangeRecurrenceExceptionForId(recurrenceId); - - if (!recurrenceException) { - return null; - } - - const originalRecurrenceId = recurrenceException.recurrenceId; - const originalModifiedStart = recurrenceException.startDate; - const difference = originalModifiedStart.subtractDateWithTimezone(originalRecurrenceId); - difference.lock(); - - this._rangeRecurrenceExceptionItemsDiffCache.set(recurrenceId, difference); - - return difference; - } - /** - * Adds a new recurrence-exception to this calendar-document - * - * @param {AbstractRecurringComponent} recurrenceExceptionItem The recurrence-exception-item to relate to recurrence-set - */ - - - relateRecurrenceException(recurrenceExceptionItem) { - this._modify(); - - const key = this._getRecurrenceIdKey(recurrenceExceptionItem); - - this._recurrenceExceptionItems.set(key, recurrenceExceptionItem); - - if (recurrenceExceptionItem.modifiesFuture()) { - this._rangeRecurrenceExceptionItems.set(key, recurrenceExceptionItem); - - const index = ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.binsearchInsert(this._rangeRecurrenceExceptionItemsIndex, key, (a, b) => a - b); - - this._rangeRecurrenceExceptionItemsIndex.splice(index, 0, key); - } - - recurrenceExceptionItem.recurrenceManager = this; - } - /** - * Removes a recurrence exception by the item itself - * - * @param {AbstractRecurringComponent} recurrenceExceptionItem The recurrence-exception remove - */ - - - removeRecurrenceException(recurrenceExceptionItem) { - const key = this._getRecurrenceIdKey(recurrenceExceptionItem); - - this.removeRecurrenceExceptionByRecurrenceId(key); - } - /** - * Removes a recurrence exception by it's unix-time - * - * @param {Number} recurrenceId The recurrence-exception to remove - */ - - - removeRecurrenceExceptionByRecurrenceId(recurrenceId) { - this._modify(); - - this._recurrenceExceptionItems.delete(recurrenceId); - - this._rangeRecurrenceExceptionItems.delete(recurrenceId); - - this._rangeRecurrenceExceptionItemsDiffCache.delete(recurrenceId); - - const index = this._rangeRecurrenceExceptionItemsIndex.indexOf(recurrenceId); - - if (index !== -1) { - this._rangeRecurrenceExceptionItemsIndex.splice(index, 1); - } - } - /** - * - * @param {AbstractRecurringComponent} recurrenceExceptionItem Object to get key from - * @returns {Number} - * @private - */ - - - _getRecurrenceIdKey(recurrenceExceptionItem) { - return recurrenceExceptionItem.recurrenceId.unixTime; - } - /** - * Gets an iterator over all recurrence rules - */ - - - *getRecurrenceRuleIterator() { - for (const property of this._masterItem.getPropertyIterator('RRULE')) { - yield property.getFirstValue(); - } - } - /** - * Gets a list of all recurrence rules - * - * @returns {RecurValue[]} - */ - - - getRecurrenceRuleList() { - return Array.from(this.getRecurrenceRuleIterator()); - } - /** - * Adds a new recurrence rule - * - * @param {RecurValue} recurrenceRule The RRULE to add - */ - - - addRecurrenceRule(recurrenceRule) { - this._modify(); - - this.resetCache(); - const property = new Property('RRULE', recurrenceRule); - - this._masterItem.addProperty(property); - } - /** - * Removes a recurrence rule - * - * @param {RecurValue} recurrenceRule The RRULE to remove - */ - - - removeRecurrenceRule(recurrenceRule) { - this._modify(); - - this.resetCache(); - - for (const property of this._masterItem.getPropertyIterator('RRULE')) { - if (property.getFirstValue() === recurrenceRule) { - this._masterItem.deleteProperty(property); - } - } - } - /** - * Removes all recurrence rules - */ - - - clearAllRecurrenceRules() { - this._modify(); - - this.resetCache(); - - this._masterItem.deleteAllProperties('RRULE'); - } - /** - * Gets an iterator over all recurrence - * - * @param {boolean} isNegative Whether or not to get EXDATES - * @param {String} valueType Limit type of EXDATES - */ - - - *getRecurrenceDateIterator(isNegative = false, valueType = null) { - for (const property of this._getPropertiesForRecurrenceDate(isNegative, valueType)) { - yield* property.getValueIterator(); - } - } - /** - * - * @param {boolean} isNegative Whether or not to get EXDATES - * @param {String} valueType Limit type of EXDATES - * @returns {(DateTimeValue|PeriodValue)[]} - */ - - - listAllRecurrenceDates(isNegative = false, valueType = null) { - return Array.from(this.getRecurrenceDateIterator(isNegative, valueType)); - } - /** - * This adds a new recurrence-date value. - * It automatically adds it to the first property of the same value-type - * or creates a new one if necessary - * - * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @param {DateTimeValue|PeriodValue} value EXDATE to add - */ - - - addRecurrenceDate(isNegative = false, value) { - this._modify(); - - this.resetCache(); // Only add DateTime Value if its of the same timezone - - let timezoneId = null; - - if (value instanceof DateTimeValue && !value.isDate) { - timezoneId = value.timezoneId; - } - - const valueType = this._getValueTypeByValue(value); - - const iterator = this._getPropertiesForRecurrenceDate(isNegative, valueType, timezoneId); - - const first = iterator.next.value; - - if (first instanceof Property) { - const propertyValue = first.value; - propertyValue.push(value); - this.masterItem.markPropertyAsDirty(isNegative ? 'EXDATE' : 'RDATE'); - } else { - const propertyName = this._getPropertyNameByIsNegative(isNegative); - - const property = new Property(propertyName, value); - - this._masterItem.addProperty(property); - } - } - /** - * Checks if a recurrenceID is an RDATE or EXDATE - * - * @param {Boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @param {DateTimeValue} recurrenceId Recurrence-Id to check - * @returns {boolean} - */ - - - hasRecurrenceDate(isNegative = false, recurrenceId) { - for (let value of this.getRecurrenceDateIterator(isNegative)) { - if (value instanceof PeriodValue) { - value = value.start; - } - - if (value.compare(recurrenceId) === 0) { - return true; - } - } - - return false; - } - /** - * - * @param {Boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @param {DateTimeValue} recurrenceId Recurrence-Id to get - * @returns {null|DateTimeValue|PeriodValue} - */ - - - getRecurrenceDate(isNegative = false, recurrenceId) { - for (const value of this.getRecurrenceDateIterator(isNegative)) { - let valueToCheck = value; - - if (valueToCheck instanceof PeriodValue) { - valueToCheck = valueToCheck.start; - } - - if (valueToCheck.compare(recurrenceId) === 0) { - return value; - } - } - - return null; - } - /** - * This deletes a recurrence-date value from this recurrence-set - * - * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @param {DateTimeValue|PeriodValue} value The EXDATE/RDATE to remove - */ - - - removeRecurrenceDate(isNegative = false, value) { - this._modify(); - - this.resetCache(); - - const valueType = this._getValueTypeByValue(value); - - for (const property of this._getPropertiesForRecurrenceDate(isNegative, valueType)) { - for (const valueToCheck of property.getValueIterator()) { - if (value === valueToCheck) { - const allValues = property.value; - - if (allValues.length === 1) { - this.masterItem.deleteProperty(property); - continue; - } - - const index = allValues.indexOf(value); - allValues.splice(index, 1); - this.masterItem.markPropertyAsDirty(isNegative ? 'EXDATE' : 'RDATE'); - } - } - } - } - /** - * Clears all recurrence-date information - * - * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @param {String} valueType The type of RDATEs/EXDATEs to remove - */ - - - clearAllRecurrenceDates(isNegative = false, valueType = null) { - this._modify(); - - this.resetCache(); - - for (const property of this._getPropertiesForRecurrenceDate(isNegative, valueType)) { - this._masterItem.deleteProperty(property); - } - } - /** - * Gets the property name for recurrence dates based on the isNegative boolean - * - * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @returns {string} - * @private - */ - - - _getPropertyNameByIsNegative(isNegative) { - return isNegative ? 'EXDATE' : 'RDATE'; - } - /** - * Gets the value type based on the provided value - * - * @param {PeriodValue|DateTimeValue} value The value to get type of property from - * @returns {string} - * @private - */ - - - _getValueTypeByValue(value) { - if (value instanceof PeriodValue) { - return 'PERIOD'; - } else if (value.isDate) { - return 'DATE'; - } else { - return 'DATETIME'; - } - } - /** - * - * @param {boolean} isNegative Whether we are dealing with an EXDATE or RDATE - * @param {String|null} valueType The type of values to get - * @param {ICAL.Timezone=} timezoneId Filter by timezone - * @private - */ - - - *_getPropertiesForRecurrenceDate(isNegative, valueType, timezoneId = null) { - const propertyName = this._getPropertyNameByIsNegative(isNegative); - - for (const property of this._masterItem.getPropertyIterator(propertyName)) { - if (valueType === null) { - yield property; - } else if (uc(valueType) === 'PERIOD' && property.getFirstValue() instanceof PeriodValue) { - yield property; - } else if (uc(valueType) === 'DATE' && property.getFirstValue().isDate) { - yield property; - } else if (uc(valueType) === 'DATETIME' && !property.getFirstValue().isDate) { - if (timezoneId === null || property.getFirstValue().timezoneId === timezoneId) { - yield property; - } - } - } - } - /** - * Checks if the entire set of recurrence rules is finite - * - * @returns {boolean} - */ - - - isFinite() { - return this.getRecurrenceRuleList().every(rule => rule.isFinite()); - } - /** - * @returns {boolean} - */ - - - isEmptyRecurrenceSet() { - return this._getRecurExpansionObject().next() === undefined; - } - /** - * Gets the occurrence at the exact given recurrenceId - * - * @param {DateTimeValue} recurrenceId RecurrenceId to get - * @returns {AbstractRecurringComponent|null} - */ - - - getOccurrenceAtExactly(recurrenceId) { - if (!this.masterItem.isRecurring()) { - if (this.masterItem.getReferenceRecurrenceId().compare(recurrenceId) === 0) { - return this.masterItem; - } - - return null; - } - - const iterator = this._getRecurExpansionObject(); - - const icalRecurrenceId = recurrenceId.toICALJs(); - let next; - - while (next = iterator.next()) { - if (next.compare(icalRecurrenceId) === 0) { - // It's a match 🔥 - return this._getOccurrenceAtRecurrenceId(DateTimeValue.fromICALJs(next)); - } - - if (next.compare(icalRecurrenceId) === 1) { - // We hit an occurrence in the future, return null - return null; - } - } - - return null; - } - /** - * Gets the closest occurrence to the given recurrenceId. - * That's either the closest in the future, or in case the - * recurrence-set ends before recurrenceId, the last one - * - * This function works solely on the basis of recurrence-ids. - * It ignores the actual date of recurrence-exceptions. - * Ideally we should fix it and provide a similar implementation - * like getAllOccurrencesBetweenIterator, but for now it's the - * accepted behavior. - * - * @param {DateTimeValue} recurrenceId RecurrenceId to get - * @returns {AbstractRecurringComponent} - */ - - - getClosestOccurrence(recurrenceId) { - if (!this.masterItem.isRecurring()) { - return this.masterItem; - } - - const iterator = this._getRecurExpansionObject(); - - recurrenceId = recurrenceId.toICALJs(); - let previous = null; - let next; - - while (next = iterator.next()) { - if (next.compare(recurrenceId) === -1) { - previous = next; - } else { - // This is the case when it's either equal or in the future - const dateTimeValue = DateTimeValue.fromICALJs(next); - return this._getOccurrenceAtRecurrenceId(dateTimeValue); - } - } - - const dateTimeValue = DateTimeValue.fromICALJs(previous); - return this._getOccurrenceAtRecurrenceId(dateTimeValue); - } - /** - * Get all occurrences between start and end - * Start and End are inclusive - * - * @param {DateTimeValue} queriedTimeRangeStart Start of time-range - * @param {DateTimeValue} queriedTimeRangeEnd End of time-range - */ - - - *getAllOccurrencesBetweenIterator(queriedTimeRangeStart, queriedTimeRangeEnd) { - if (!this.masterItem.isRecurring()) { - if (typeof this.masterItem.isInTimeFrame !== 'function') { - yield this.masterItem; - } - - if (this.masterItem.isInTimeFrame(queriedTimeRangeStart, queriedTimeRangeEnd)) { - yield this.masterItem; - } - - return; - } - - const iterator = this._getRecurExpansionObject(); - - const queriedICALJsTimeRangeStart = queriedTimeRangeStart.toICALJs(); - const queriedICALJsTimeRangeEnd = queriedTimeRangeEnd.toICALJs(); - const recurrenceIdKeys = Array.from(this._recurrenceExceptionItems.keys()); - const maximumRecurrenceId = Math.max.apply(Math, recurrenceIdKeys); - let next; - - while (next = iterator.next()) { - // We have to get the real occurrence to resolve RECURRENCE-IDs - const dateTimeValue = DateTimeValue.fromICALJs(next); - - const occurrence = this._getOccurrenceAtRecurrenceId(dateTimeValue); // Check what type of recurrence object we are dealing with - // Depending on that, the time to compare to changes - // If we are dealing events, we have to compare to the end-date - // If we are dealing with tasks, we will have to compare to the due-date - // etc. - // For now we are only implementing events, other components will come later - - - let compareDate = null; - - switch (uc(occurrence.name)) { - case 'VEVENT': - case 'VTODO': - compareDate = occurrence.endDate.toICALJs(); - break; - - case 'VJOURNAL': - default: - compareDate = next; - break; - } // If the date we are comparing to is before our time-range, - // we don't want to yield this event - - - if (compareDate.compare(queriedICALJsTimeRangeStart) === -1) { - continue; - } // If we have an object that is: - // 1. either - // 1.1 - no recurrence exception - // or - // 1.2 - a recurrence-exception that modifies the future - // and - // 2. starts after the queried time-range ends, then we stop expanding - - - const startDate = occurrence.startDate.toICALJs(); - - if ((!occurrence.isRecurrenceException() || occurrence.modifiesFuture()) && startDate.compare(queriedICALJsTimeRangeEnd) === 1) { - // Just break if there are no recurrence-exceptions - if (this._recurrenceExceptionItems.size === 0) { - break; - } // Keep iterating until our currently checked recurrenceId - // is bigger than the maximum recurrence-id that we have. - - - if (next.toUnixTime() > maximumRecurrenceId) { - break; - } else { - continue; - } - } - - if (typeof occurrence.isInTimeFrame !== 'function') { - yield occurrence; - } - - if (occurrence.isInTimeFrame(queriedTimeRangeStart, queriedTimeRangeEnd)) { - yield occurrence; - } - } - } - /** - * Get all occurrences between start and end - * - * @param {DateTimeValue} start Start of time-range - * @param {DateTimeValue} end End of time-range - * @returns {(*|null)[]} - */ - - - getAllOccurrencesBetween(start, end) { - return Array.from(this.getAllOccurrencesBetweenIterator(start, end)); - } - /** - * Update the UID of all components in the recurrence set - * - * @param {String} newUID The new UID of the calendar-document - */ - - - updateUID(newUID) { - this._masterItem.updatePropertyWithValue('UID', newUID); - - for (const recurrenceExceptionItem of this.getRecurrenceExceptionIterator()) { - recurrenceExceptionItem.updatePropertyWithValue('UID', newUID); - } - } - /** - * Updates the recurrence-information accordingly, - * whenever the start-date of the master-item changes - * - * @param {DateTimeValue} newStartDate The new start-date - * @param {DateTimeValue} oldStartDate The old start-date - */ - - - updateStartDateOfMasterItem(newStartDate, oldStartDate) { - const difference = newStartDate.subtractDateWithTimezone(oldStartDate); // update EXDATE - - for (const exdate of this.getRecurrenceDateIterator(true)) { - // If this EXDATE matches an RDATE, don't update, because we don't update RDATEs - if (this.hasRecurrenceDate(false, exdate)) { - continue; - } // EXDATE are always either DATE or DATETIME, - // no need to check for PERIOD - - - exdate.addDuration(difference); - } - - for (const recurrenceException of this.getRecurrenceExceptionIterator()) { - // We don't edit RDATES, so don't update recurrence-ids if they - // are based on an RDATE - if (this.hasRecurrenceDate(false, recurrenceException.recurrenceId)) { - continue; - } - - this.removeRecurrenceException(recurrenceException); - recurrenceException.recurrenceId.addDuration(difference); - this.relateRecurrenceException(recurrenceException); - } // update UNTIL of recurrence-rules - - - for (const rrule of this.getRecurrenceRuleIterator()) { - if (rrule.until) { - rrule.until.addDuration(difference); - } - } - } - /** - * Gets an object for the given recurrenceId - * It does not verify that the given recurrenceId - * is actually a valid recurrence of this calendar-document - * - * @param {DateTimeValue} recurrenceId Recurrence-Id to get - * @returns {AbstractRecurringComponent} - * @private - */ - - - _getOccurrenceAtRecurrenceId(recurrenceId) { - if (this.hasRecurrenceExceptionForId(recurrenceId)) { - const recurrenceException = this.getRecurrenceException(recurrenceId); - - if (!recurrenceException.canCreateRecurrenceExceptions()) { - return recurrenceException; - } - - return recurrenceException.forkItem(recurrenceId); - } else if (this.hasRangeRecurrenceExceptionForId(recurrenceId)) { - const rangeRecurrenceException = this.getRangeRecurrenceExceptionForId(recurrenceId); - const difference = this.getRangeRecurrenceExceptionDiff(recurrenceId); - return rangeRecurrenceException.forkItem(recurrenceId, difference); - } else if (recurrenceId.compare(this._masterItem.startDate) === 0) { - if (!this._masterItem.canCreateRecurrenceExceptions()) { - return this._masterItem; - } - - return this._masterItem.forkItem(recurrenceId); - } else { - return this._masterItem.forkItem(recurrenceId); - } - } - /** - * Resets the internal recur-expansion object. - * This is necessary after each modification of the - * recurrence-information - */ - - - resetCache() {// TODO - implement me - } - /** - * Gets a new ICAL.RecurExpansion object - * - * Inspired by how ICAL.JS RecurExpansion - * serialises and unserialises its state - * - * @returns {ICAL.RecurExpansion} - * @private - */ - - - _getRecurExpansionObject() { - if (this._masterItem.startDate === null) { - throw new RecurringWithoutDtStartError(); - } - - const dtstart = this._masterItem.startDate.toICALJs(); - - let last = dtstart.clone(); - const ruleIterators = []; - let ruleDateInc; - const ruleDates = []; - let ruleDate = null; - const exDates = []; - const complete = false; - - for (const ruleValue of this.getRecurrenceRuleIterator()) { - ruleIterators.push(ruleValue.toICALJs().iterator(dtstart)); - ruleIterators[ruleIterators.length - 1].next(); - } - - for (let rDateValue of this.getRecurrenceDateIterator()) { - if (rDateValue instanceof PeriodValue) { - rDateValue = rDateValue.start; - } - - rDateValue = rDateValue.toICALJs(); - const index = ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.binsearchInsert(ruleDates, rDateValue, (a, b) => a.compare(b)); - ruleDates.splice(index, 0, rDateValue); - } // Is the first RDATE prior to our current DTSTART? - - - if (ruleDates.length > 0 && ruleDates[0].compare(dtstart) === -1) { - ruleDateInc = 0; - last = ruleDates[0].clone(); - } else { - ruleDateInc = ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.binsearchInsert(ruleDates, dtstart, (a, b) => a.compare(b)); - ruleDate = exDates[ruleDateInc]; - } - - for (let exDateValue of this.getRecurrenceDateIterator(true)) { - exDateValue = exDateValue.toICALJs(); - const index = ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.binsearchInsert(exDates, exDateValue, (a, b) => a.compare(b)); - exDates.splice(index, 0, exDateValue); - } - - const exDateInc = ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.binsearchInsert(exDates, dtstart, (a, b) => a.compare(b)); - const exDate = exDates[exDateInc]; - return new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().RecurExpansion)({ - dtstart, - last, - ruleIterators, - ruleDateInc, - exDateInc, - ruleDates, - ruleDate, - exDates, - exDate, - complete - }); - } - /** - * @private - */ - - - _modify() { - if (this._masterItem.isLocked()) { - throw new ModificationNotAllowedError(); - } - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class TimezoneComponent - * @classdesc - * - * There are no advertised properties / components for the TimezoneComponent, - * since we don't care about it. - * Editing / accessing the timezone information directly is not a use-case - * All the timezone-handling is done by the underlying ICAL.JS - * - * @url https://tools.ietf.org/html/rfc5545#section-3.6.5 - */ - -class TimezoneComponent extends AbstractComponent { - /** - * Returns a calendar-js Timezone object - * - * @returns {Timezone} - */ - toTimezone() { - return new Timezone(this.toICALJs()); - } - -} -/** - * The timezoneId of this timezone-component - * - * @name TimezoneComponent#timezoneId - * @type {String} - */ - -advertiseSingleOccurrenceProperty(TimezoneComponent.prototype, { - name: 'timezoneId', - iCalendarName: 'tzid' -}); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class Timezone - */ - -class Timezone { - /** - * Constructor - * - * @param {String|ICAL.Timezone|ICAL.Component} timezoneId Id of the timezone - * @param {String?} ics The iCalendar timezone definition - */ - constructor(timezoneId, ics) { - /** - * Id of the timezone, used before initialising - * - * @type {String} - * @private - */ - this._timezoneId = null; - /** - * ICS representation of the timezone, used before initialising - * - * @type {String} - * @private - */ - - this._ics = null; - /** - * @type {ICAL.Timezone|null} - */ - - this._innerValue = null; - /** - * - * @type {boolean} - * @private - */ - - this._initialized = false; // If the first parameter is already - // an instance of ICAL.Timezone, - // skip lazy loading - - if (timezoneId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Timezone)) { - this._innerValue = timezoneId; - this._initialized = true; - } else if (timezoneId instanceof (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Component)) { - this._innerValue = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Timezone)(timezoneId); - this._initialized = true; - } else { - this._timezoneId = timezoneId; - this._ics = ics; - } - } - /** - * Gets the timezone id - * - * @returns {String} - */ - - - get timezoneId() { - if (this._initialized) { - return this._innerValue.tzid; - } - - return this._timezoneId; - } - /** - * Gets the UTC Offset for a given date in this timezone - * - * @param {Number} year Year of the date - * @param {Number} month Month of the date (1-based) - * @param {Number} day Day of the date - * @param {Number} hour Hour of the date - * @param {Number} minute Minute of the date - * @param {Number} second Second of the date - * @returns {Number} - */ - - - offsetForArray(year, month, day, hour, minute, second) { - this._initialize(); - - const time = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time)({ - year, - month, - day, - hour, - minute, - second, - isDate: false - }); - return this._innerValue.utcOffset(time); - } - /** - * Converts a timestamp to an array of year, month, day, hour, minute, second. - * - * @param {Number} ms Timestamp in milliseconds - * @returns {Number[]} - */ - - - timestampToArray(ms) { - this._initialize(); // just create a dummy object because fromUnixTime is not exposed on ICAL.Time - - - const time = ical_js__WEBPACK_IMPORTED_MODULE_0___default().Time.fromData({ - year: 1970, - month: 1, - day: 1, - hour: 0, - minute: 0, - second: 0 - }); - time.fromUnixTime(Math.floor(ms / 1000)); - const local = time.convertToZone(this._innerValue); - return [local.year, local.month, // THIS is 1-based ! - local.day, local.hour, local.minute, local.second]; - } - /** - * - * @returns {TimezoneComponent} - */ - - - toTimezoneComponent() { - return TimezoneComponent.fromICALJs(this.toICALJs()); - } - /** - * Returns - * - * @returns {ICAL.Timezone} - */ - - - toICALTimezone() { - this._initialize(); - - return this._innerValue; - } - /** - * Returns the corresponding ICAL. - * - * @returns {ICAL.Component} - */ - - - toICALJs() { - this._initialize(); - - return this._innerValue.component; - } - /** - * Initialises the inner ICAL.Timezone component - * - * @private - */ - - - _initialize() { - if (!this._initialized) { - const jCal = ical_js__WEBPACK_IMPORTED_MODULE_0___default().parse(this._ics); - const icalComp = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Component)(jCal); - this._innerValue = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Timezone)(icalComp); - this._initialized = true; - } - } - -} -Timezone.utc = new Timezone((ical_js__WEBPACK_IMPORTED_MODULE_0___default().Timezone.utcTimezone)); -Timezone.floating = new Timezone((ical_js__WEBPACK_IMPORTED_MODULE_0___default().Timezone.localTimezone)); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class AlarmComponent - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.6.6 - */ - -class AlarmComponent extends AbstractComponent { - /** - * Adds a new attendee based on their name and email-address - * - * @param {String} name - Name of the attendee - * @param {String} email - E-Mail address of the attendee - * @returns {boolean} - */ - addAttendeeFromNameAndEMail(name, email) { - const attendeeProperty = AttendeeProperty.fromNameAndEMail(name, email); - return this.addProperty(attendeeProperty); - } - /** - * Gets the trigger property - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.3 - * - * @returns {TriggerProperty} - */ - - - get trigger() { - return this.getFirstProperty('TRIGGER'); - } - /** - * Sets an absolute alarm - * - * @param {DateTimeValue} alarmTime - Absolute time for the trigger - */ - - - setTriggerFromAbsolute(alarmTime) { - const triggerProperty = TriggerProperty.fromAbsolute(alarmTime); - this.deleteAllProperties('TRIGGER'); - this.addProperty(triggerProperty); - } - /** - * Sets a relative trigger - * - * @param {DurationValue} alarmOffset - Relative time of the trigger, either related to start or end - * @param {Boolean=} relatedToStart - Related to Start or end? - */ - - - setTriggerFromRelative(alarmOffset, relatedToStart = true) { - const triggerProperty = TriggerProperty.fromRelativeAndRelated(alarmOffset, relatedToStart); - this.deleteAllProperties('TRIGGER'); - this.addProperty(triggerProperty); - } - -} -/** - * Action to be taken when this Alarm is due - * Possible values: - * - AUDIO - * - DISPLAY - * - EMAIL - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.1 - * - * @name AlarmComponent#action - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'action'); -/** - * Description for this alarm - * Can only be used in combination with action DISPLAY and EMAIL - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name AlarmComponent#description - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'description'); -/** - * Summary for this alarm - * Can only be used in combination with action EMAIL - * Will be used as the EMAIL's subject - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.12 - * - * @name AlarmComponent#summary - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'summary'); -/** - * The duration specifies the delay period between repeated alarms. - * This property must be specified along with the repeat property - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.5 - * - * @name AlarmComponent#duration - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'duration'); -/** - * The number of times an alarm should be repeated. - * This property must be specified along with the duration property - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.6.2 - * - * @name AlarmComponent#repeat - * @type {Number} - */ - -advertiseSingleOccurrenceProperty(AlarmComponent.prototype, 'repeat'); -/** - * This attachment points to a sound file, can only be used in combination - * with ACTION AUDIO - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.1 - * - * @name AlarmComponent#attachment - * @type {AttachmentProperty} - */ - -advertiseSingleOccurrenceProperty(AlarmComponent.prototype, { - name: 'attachment', - iCalendarName: 'ATTACH' -}); -/** - * Get an iterator over all attendees - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name AlarmComponent#getAttendeeIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Get a list of all attendees - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name AlarmComponent#getAttendeeList - * @function - * @returns {AttendeeProperty[]} - */ - -/** - * Adds a new attendee to this alarm-component - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name AlarmComponent#addAttendee - * @function - * @param {AttendeeProperty} attendee - The attendee object to add - */ - -/** - * Removes an attendee from this alarm-component - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name AlarmComponent#removeAttendee - * @function - * @param {AttendeeProperty} attendee - The attendee object to remove - */ - -/** - * Removes all attendees from this alarm-component - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name AlarmComponent#clearAllAttendees - * @function - */ - -advertiseMultipleOccurrenceProperty(AlarmComponent.prototype, 'attendee'); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * Gets the constructor for a component name - * This will only return a constructor for components, - * that can be nested inside other ones - * - * @param {String} compName - Component name to get default constructor for - * @returns {AlarmComponent|AbstractComponent} - */ - -function getConstructorForComponentName$1(compName) { - switch (uc(compName)) { - case 'VALARM': - return AlarmComponent; - - default: - return AbstractComponent; - } -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class AbstractRecurringComponent - * @classdesc AbstractRecurringComponent is the basis for - * EventComponent, JournalComponent and TodoComponent. - * - * It contains all the logic for recurrence-expansion and - * recurrence-management plus all management for all - * properties and all subcomponents that the three - * components mentioned before have in common - */ - -class AbstractRecurringComponent extends AbstractComponent { - /** - * @inheritDoc - */ - constructor(...args) { - super(...args); - /** - * In case this object is virtual, primary item refers to the master object - * that this object was forked from. - * - * Otherwise primary item is null - * - * @type {AbstractRecurringComponent} - * @private - */ - - this._primaryItem = null; - /** - * Indicator whether this is a direct fork of a primary item, representing - * the very same recurrence id - * - * @type {boolean} - * @private - */ - - this._isExactForkOfPrimary = false; - /** - * The original recurrence-id of this occurrence. - * Mostly needed for range exceptions with a range - * - * @type {DateTimeValue|null} - * @private - */ - - this._originalRecurrenceId = null; - /** - * Instance of the recurrence manager. - * This object is shared among all instances - * of a recurrence-set - * - * @type {RecurrenceManager} - * @private - */ - - this._recurrenceManager = null; - /** - * Indicator whether this component was modified - * In case it was, the last-modified property - * needs to be updated before saving the event - * - * @type {boolean} - * @private - */ - - this._dirty = false; - /** - * Indicator whether there have been significant changes - * In case the changes are considered significant, - * the sequence needs to be incremented - * - * @type {boolean} - * @private - */ - - this._significantChange = false; - /** - * Id of this AbstractRecurringComponent - * - * @type {String|null} - * @private - */ - - this._cachedId = null; - } - /** - * Gets the primary-item of this recurring item - * - * @returns {AbstractRecurringComponent} - */ - - - get primaryItem() { - return this._primaryItem; - } - /** - * Sets the primary-item of this recurring item - * - * @param {AbstractRecurringComponent} primaryItem The new primary-item - */ - - - set primaryItem(primaryItem) { - this._modify(); - - this._primaryItem = primaryItem; - } - /** - * Gets whether or not this is a fork of the primary item - * for the same recurrence-id - * - * @returns {boolean} - */ - - - get isExactForkOfPrimary() { - return this._isExactForkOfPrimary; - } - /** - * Sets the isExactForkOfPrimary indicator, see getter for description - * - * @param {boolean} isExactForkOfPrimary Whether or not this is an exact fork - */ - - - set isExactForkOfPrimary(isExactForkOfPrimary) { - this._isExactForkOfPrimary = isExactForkOfPrimary; - } - /** - * Gets the original recurrence-id - * - * @returns {DateTimeValue} - */ - - - get originalRecurrenceId() { - return this._originalRecurrenceId; - } - /** - * Sets the original recurrence-id - * - * @param {DateTimeValue} originalRecurrenceId The new original recurrence-id - */ - - - set originalRecurrenceId(originalRecurrenceId) { - this._originalRecurrenceId = originalRecurrenceId; - } - /** - * Gets the recurrence-manager of this recurrence-set - * - * @returns {RecurrenceManager} - */ - - - get recurrenceManager() { - return this._recurrenceManager; - } - /** - * Sets the recurrence-manager of this recurrence-set - * - * @param {RecurrenceManager} recurrenceManager The new recurrence-manager - */ - - - set recurrenceManager(recurrenceManager) { - this._recurrenceManager = recurrenceManager; - } - /** - * Gets the master-item of this recurring item - * - * @returns {AbstractRecurringComponent} - */ - - - get masterItem() { - return this.recurrenceManager.masterItem; - } - /** - * Returns whether this item is the master item - * - * @returns {boolean} - */ - - - isMasterItem() { - return this.masterItem === this; - } - /** - * Gets a unique ID for this occurrence of the event - * - * Please note that if the same event occurs in multiple calendars, - * this id will not be unique. Software using this library will have to - * manually mix in the calendar id into this id - * - * @returns {String} - */ - - - get id() { - if (this._cachedId) { - return this._cachedId; - } - - if (this.startDate === null) { - this._cachedId = encodeURIComponent(this.uid); - return this._cachedId; - } - - this._cachedId = [encodeURIComponent(this.uid), encodeURIComponent(this.getReferenceRecurrenceId().unixTime.toString())].join('###'); - return this._cachedId; - } - /** - * Gets the UID property - * - * @returns {String|null} - */ - - - get uid() { - return this.getFirstPropertyFirstValue('UID'); - } - /** - * Sets the UID property and the UID property of all related exceptions - * - * @param {String} uid The new UID - */ - - - set uid(uid) { - this._recurrenceManager.updateUID(uid); - } - /** - * Gets the start date of the event - * - * @returns {DateTimeValue} - */ - - - get startDate() { - return this.getFirstPropertyFirstValue('dtstart'); - } - /** - * Sets the start date of the event - * - * @param {DateTimeValue} start The new start-date to set - */ - - - set startDate(start) { - const oldStartDate = this.startDate; - this.updatePropertyWithValue('dtstart', start); - - if (this.isMasterItem()) { - this._recurrenceManager.updateStartDateOfMasterItem(start, oldStartDate); - } - } - /** - * Checks whether this item is part of a recurring set - * - * @returns {boolean} - */ - - - isPartOfRecurrenceSet() { - return this.masterItem.isRecurring(); - } - /** - * Checks whether this component is recurring - * - * @returns {boolean} - */ - - - isRecurring() { - return this.hasProperty('RRULE') || this.hasProperty('RDATE'); - } - /** - * Checks whether this component is a recurrence-exception - * - * @returns {boolean} - */ - - - isRecurrenceException() { - return this.hasProperty('RECURRENCE-ID'); - } - /** - * Checks wether this component is a recurrence-exception - * and whether it's modifying the future - * - * @returns {boolean} - */ - - - modifiesFuture() { - if (!this.isRecurrenceException()) { - return false; - } - - const property = this.getFirstProperty('RECURRENCE-ID'); - return property.getParameterFirstValue('RANGE') === 'THISANDFUTURE'; - } - /** - * Creates an occurrence at the given time - * - * This is an internal function for calendar-js, used by the recurrence-manager - * Do not call from outside - * - * @param {DateTimeValue} recurrenceId The recurrence-Id of the forked item - * @param {DurationValue=} startDiff to be used when The start-diff (used for RECURRENCE-ID;RANGE=THISANDFUTURE) - * @returns {AbstractRecurringComponent} - */ - - - forkItem(recurrenceId, startDiff = null) { - const occurrence = this.clone(); - occurrence.recurrenceManager = this.recurrenceManager; - occurrence.primaryItem = this; // Exact match for master item or recurrence-exception - - if (occurrence.getReferenceRecurrenceId().compare(recurrenceId) === 0) { - occurrence.isExactForkOfPrimary = true; - } - - if (!occurrence.hasProperty('DTSTART')) { - throw new TypeError('Can\'t fork item without a DTSTART'); - } - - if (occurrence.getFirstPropertyFirstValue('DTSTART').timezoneId !== recurrenceId.timezoneId) { - const originalTimezone = occurrence.getFirstPropertyFirstValue('DTSTART').getICALTimezone(); - recurrenceId = recurrenceId.getInICALTimezone(originalTimezone); - } - - occurrence.originalRecurrenceId = recurrenceId.clone(); - const dtStartValue = occurrence.getFirstPropertyFirstValue('DTSTART'); - let period = null; - - if (this._recurrenceManager.hasRecurrenceDate(false, recurrenceId)) { - const recurrenceDate = this._recurrenceManager.getRecurrenceDate(false, recurrenceId); - - if (recurrenceDate instanceof PeriodValue) { - period = recurrenceDate; - } - } - - let duration; - - if (occurrence.hasProperty('DTEND')) { - const dtEndValue = occurrence.getFirstPropertyFirstValue('DTEND'); - duration = dtEndValue.subtractDateWithTimezone(dtStartValue); - } else if (occurrence.hasProperty('DUE')) { - const dueValue = occurrence.getFirstPropertyFirstValue('DUE'); - duration = dueValue.subtractDateWithTimezone(dtStartValue); - } - - if (!(occurrence.isRecurrenceException() && occurrence.isExactForkOfPrimary)) { - occurrence.updatePropertyWithValue('DTSTART', recurrenceId.clone()); - - if (startDiff) { - occurrence.startDate.addDuration(startDiff); - } - - if (occurrence.hasProperty('DTEND')) { - const dtEnd = occurrence.startDate.clone(); - dtEnd.addDuration(duration); - occurrence.updatePropertyWithValue('DTEND', dtEnd); - } else if (occurrence.hasProperty('DUE')) { - const due = occurrence.startDate.clone(); - due.addDuration(duration); - occurrence.updatePropertyWithValue('DUE', due); - } - - if (period) { - occurrence.deleteAllProperties('DTEND'); - occurrence.deleteAllProperties('DURATION'); - occurrence.updatePropertyWithValue('DTEND', period.end.clone()); - } - } - - occurrence.resetDirty(); - return occurrence; - } - /** - * Checks whether it's possible to create a recurrence exception for this event - * It is possible - * - * @returns {boolean} - */ - - - canCreateRecurrenceExceptions() { - let primaryIsRecurring = false; - - if (this.primaryItem && this.primaryItem.isRecurring()) { - primaryIsRecurring = true; - } - - return this.isRecurring() || this.modifiesFuture() || !this.isRecurring() && primaryIsRecurring; - } - /** - * creates a recurrence exception based on this event - * If the parameter thisAndAllFuture is set to true, - * it will apply changes to this and all future occurrences - * - * @param {boolean} thisAndAllFuture Whether to create an exception for this and all future - * @returns {AbstractRecurringComponent[]} the AbstractRecurringComponent of the future events. - * In case you set `thisAndAllFuture` to true, this will be an - * AbstractRecurringComponent inside a entirely new calendar component - */ - - - createRecurrenceException(thisAndAllFuture = false) { - if (!this.canCreateRecurrenceExceptions()) { - throw new Error('Can\'t create recurrence-exceptions for non-recurring items'); - } - - const previousPrimaryItem = this.primaryItem; - /** - * The overall support for RANGE=THISANDFUTURE is really bad. - * Instead, we have to create a new event/journal/task and - * set an until date on the old one. - * - * Also see: - * - https://github.com/nextcloud/calendar/issues/7#issuecomment-292574813 - * - https://github.com/nextcloud/calendar/issues/7#issuecomment-299169143 - * - * Right now, this replaces all future occurrence modifications, - * including recurrence-exceptions, RDATES and EXDATES. - * This is also how other CUAs handle it, but i would be happy - * to put that up for discussion. - * - * Keeping future RDates + their recurrence-exceptions would be rather easy. - * Updating recurrence-exceptions, that are based off normal recurrence rules, - * could be very expensive. - */ - - if (thisAndAllFuture) { - if (this.isExactForkOfPrimary) { - // master item - if (this.primaryItem.isMasterItem()) { - this._overridePrimaryItem(); - - return [this, this]; - } - } - - this.removeThisOccurrence(true); - this.recurrenceManager = new RecurrenceManager(this); - this._originalRecurrenceId = null; - this.primaryItem = this; - this.updatePropertyWithValue('UID', (0,uuid__WEBPACK_IMPORTED_MODULE_1__["default"])()); - this._cachedId = null; - this.addRelation('SIBLING', previousPrimaryItem.uid); - previousPrimaryItem.addRelation('SIBLING', this.uid); // delete to make sure all parameters are gone - - this.deleteAllProperties('RECURRENCE-ID'); - this.deleteAllProperties('RDATE'); - this.deleteAllProperties('EXDATE'); - this.updatePropertyWithValue('CREATED', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('SEQUENCE', 0); - this._significantChange = false; - this._dirty = false; - this.root = this.root.constructor.fromEmpty(); - this.root.addComponent(this); - this.parent = this.root; // this is a completely new event, we should set the RSVP of all attendees to true, - // so that they receive an invitation to the new event, not only the cancellation of the old one - - for (const attendee of this.getAttendeeIterator()) { - attendee.rsvp = true; - } - } else { - // delete to make sure all parameters are gone - this.deleteAllProperties('RECURRENCE-ID'); - this.recurrenceId = this.getReferenceRecurrenceId().clone(); - this.root.addComponent(this); - this.recurrenceManager.relateRecurrenceException(this); - this.primaryItem = this; - this.deleteAllProperties('RDATE'); - this.deleteAllProperties('RRULE'); - this.deleteAllProperties('EXDATE'); - this.updatePropertyWithValue('CREATED', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('SEQUENCE', 0); - - if (this.recurrenceManager.hasRecurrenceDate(false, this.getReferenceRecurrenceId())) { - const recurDate = this.recurrenceManager.getRecurrenceDate(false, this.getReferenceRecurrenceId()); - - if (recurDate instanceof PeriodValue) { - const valueDateTimeRecurDate = recurDate.start; - this.recurrenceManager.removeRecurrenceDate(false, recurDate); - this.recurrenceManager.addRecurrenceDate(false, valueDateTimeRecurDate); - } - } - - this.originalRecurrenceId = null; - } - - return [previousPrimaryItem, this]; - } - /** - * Deletes this occurrence from the series of recurring events - * If the parameter thisAndAllFuture is set to true, - * it will remove this and all future occurrences - * - * @param {Boolean} thisAndAllFuture Whether to create an exception for this and all future - * @throws EmptyRecurrenceSetError Thrown, when deleting an occurrence results in no more events - * @returns {Boolean} true if this deleted the last occurrence in set, false if there are occurrences left - */ - - - removeThisOccurrence(thisAndAllFuture = false) { - if (!this.isPartOfRecurrenceSet()) { - // When deleting an object, that's not part of a recurring set, - // the calendar-document would be empty. - return true; - } - - if (thisAndAllFuture) { - // To get the UNTIL date, just deduct one second. - // That's also how macOS does it, so this should be fairly - // well supported among all clients - const recurrenceId = this.getReferenceRecurrenceId().clone(); - const until = recurrenceId.getInTimezone(Timezone.utc); - until.addDuration(DurationValue.fromSeconds(-1)); - - for (const recurValue of this.recurrenceManager.getRecurrenceRuleIterator()) { - recurValue.until = until.clone(); - } - - for (const recurDate of this.recurrenceManager.getRecurrenceDateIterator()) { - let valueToCheck = recurDate; - - if (recurDate instanceof PeriodValue) { - valueToCheck = valueToCheck.start; - } - - if (recurrenceId.compare(valueToCheck) <= 0) { - this.recurrenceManager.removeRecurrenceDate(false, recurDate); - } - } - - for (const exceptionDate of this.recurrenceManager.getRecurrenceDateIterator(true)) { - if (recurrenceId.compare(exceptionDate) <= 0) { - this.recurrenceManager.removeRecurrenceDate(true, exceptionDate); - } - } - - for (const exception of this.recurrenceManager.getRecurrenceExceptionList()) { - if (recurrenceId.compare(exception.recurrenceId) <= 0) { - this.root.deleteComponent(exception); - this.recurrenceManager.removeRecurrenceException(exception); - } - } - } else { - // Make sure we don't leave orphaned recurrence-exceptions - if (this.isRecurrenceException() && !this.modifiesFuture()) { - this.root.deleteComponent(this); - this.recurrenceManager.removeRecurrenceException(this); - } // If this is based on a recurrence-date, simply delete it - // otherwise add an exception-date - - - if (this.recurrenceManager.hasRecurrenceDate(false, this.getReferenceRecurrenceId())) { - const recurDate = this.recurrenceManager.getRecurrenceDate(false, this.getReferenceRecurrenceId()); - this.recurrenceManager.removeRecurrenceDate(false, recurDate); - } else { - this.recurrenceManager.addRecurrenceDate(true, this.getReferenceRecurrenceId().clone()); - } - } - - return this.recurrenceManager.isEmptyRecurrenceSet(); - } - /** - * @inheritDoc - */ - - - clone() { - const comp = super.clone(); - comp.resetDirty(); - return comp; - } - /** - * Adds a new attendee - * - * @param {AttendeeProperty} attendee The attendee property to add - * @private - * @returns {boolean} - */ - - - _addAttendee(attendee) { - // Check for different Attendee objects with the same uri - for (const a of this.getAttendeeIterator()) { - if (a.email === attendee.email) { - return false; - } - } - - this.addProperty(attendee); - return true; - } - /** - * Adds a new attendee based on their name and email-address - * - * @param {String} name The name of the attendee to add - * @param {String} email The email-address of the attendee to add - * @returns {boolean} - */ - - - addAttendeeFromNameAndEMail(name, email) { - const attendeeProperty = AttendeeProperty.fromNameAndEMail(name, email); - return this._addAttendee(attendeeProperty); - } - /** - * Adds a new attendee based on their properties - * - * @param {String} name The name of the attendee to add - * @param {String} email The email-address of the attendee to add - * @param {String} role The role of the attendee to add - * @param {String} userType The type of attendee to add - * @param {Boolean} rsvp Whether or not to request a response from the attendee - * @returns {boolean} - */ - - - addAttendeeFromNameEMailRoleUserTypeAndRSVP(name, email, role, userType, rsvp) { - const attendeeProperty = AttendeeProperty.fromNameEMailRoleUserTypeAndRSVP(name, email, role, userType, rsvp, false); - return this._addAttendee(attendeeProperty); - } - /** - * Sets the organiser property from common-name and email address - * - * @param {String} name The name of the organizer - * @param {String} email The email-address of the organizer - */ - - - setOrganizerFromNameAndEMail(name, email) { - this.deleteAllProperties('ORGANIZER'); - this.addProperty(AttendeeProperty.fromNameAndEMail(name, email, true)); - } - /** - * Adds a new attachment from raw data - * - * @param {String} data The data of the attachment - * @param {String} formatType The mime-type of the attachment - */ - - - addAttachmentFromData(data, formatType = null) { - this.addProperty(AttachmentProperty.fromData(data, formatType)); - } - /** - * Adds a new attachment from a link - * - * @param {String} uri The URI of the attachment - * @param {String} formatType The mime-type of the attachment - */ - - - addAttachmentFromLink(uri, formatType = null) { - this.addProperty(AttachmentProperty.fromLink(uri, formatType)); - } - /** - * Adds a new contact - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.2 - * - * @param {String} contact The textual contact description to add - */ - - - addContact(contact) { - this.addProperty(new TextProperty('CONTACT', contact)); - } - /** - * Adds a new comment - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.4 - * - * @param {String} comment The comment to add - */ - - - addComment(comment) { - this.addProperty(new TextProperty('COMMENT', comment)); - } - /** - * Adds a new image from raw data - * - * @param {String} data Data of the image to add - * @param {String=} display What display-type the image is optimized for - * @param {String=} formatType The mime-type of the image - */ - - - addImageFromData(data, display = null, formatType = null) { - this.addProperty(ImageProperty.fromData(data, display, formatType)); - } - /** - * Adds a new image from a link - * - * @param {String} uri The URI of the image to add - * @param {String=} display What display-type the image is optimized for - * @param {String=} formatType The mime-type of the image - */ - - - addImageFromLink(uri, display = null, formatType = null) { - this.addProperty(ImageProperty.fromLink(uri, display, formatType)); - } - /** - * Creates a new RELATED-TO property based on a relation-type and id - * and adds it to this object - * - * @param {String} relType The type of relation to add - * @param {String} relId The id of the related calendar-document - */ - - - addRelation(relType, relId) { - this.addProperty(RelationProperty.fromRelTypeAndId(relType, relId)); - } - /** - * Creates a new REQUEST-STATUS property based on code and message - * and adds it to this object - * - * @param {Number} code The status-code of the request status - * @param {String} message The message of the request status - */ - - - addRequestStatus(code, message) { - this.addProperty(RequestStatusProperty.fromCodeAndMessage(code, message)); - } - /** - * Adds a new absolute alarm based on action and trigger time - * - * @param {String} action The type of alarm Action - * @param {DateTimeValue} alarmTime The trigger time of the alarm - * @returns {AlarmComponent} - */ - - - addAbsoluteAlarm(action, alarmTime) { - const alarmComp = new AlarmComponent('VALARM', [['action', action], TriggerProperty.fromAbsolute(alarmTime)]); - this.addComponent(alarmComp); - return alarmComp; - } - /** - * Adds a new relative alarm based on action, trigger time and relativeTo parameter - * - * @param {String} action The type of alarm Action - * @param {DurationValue} alarmOffset The trigger time of the alarm - * @param {Boolean=} relatedToStart Whether or not the alarm is related to the event's start - * @returns {AlarmComponent} - */ - - - addRelativeAlarm(action, alarmOffset, relatedToStart = true) { - const alarmComp = new AlarmComponent('VALARM', [['action', action], TriggerProperty.fromRelativeAndRelated(alarmOffset, relatedToStart)]); - this.addComponent(alarmComp); - return alarmComp; - } - /** - * Marks a certain property as edited - * - * @param {String} propertyName The name of the property - */ - - - markPropertyAsDirty(propertyName) { - this.markDirty(); // Properties that must be considered a significant change - // according to RFC 5546 Section 2.1.4 - - const props = ['DTSTART', 'DTEND', 'DURATION', 'RRULE', 'RDATE', 'EXDATE', 'STATUS', ...getConfig('property-list-significant-change', [])]; - - if (props.includes(uc(propertyName))) { - this.markChangesAsSignificant(); - } - } - /** - * Marks a certain component as edited - * - * @param {String} componentName The name of the component - */ - - - markSubComponentAsDirty(componentName) { - this.markDirty(); - - if (getConfig('component-list-significant-change', []).includes(componentName)) { - this.markChangesAsSignificant(); - } - } - /** - * Returns whether or not this component is dirty - * - * @returns {boolean} - */ - - - isDirty() { - return this._dirty || this._significantChange; - } - /** - * Marks this object as dirty - */ - - - markDirty() { - this._dirty = true; - } - /** - * Marks changes as significant. Can be called by the program using this lib - */ - - - markChangesAsSignificant() { - this._significantChange = true; - } - /** - * Updates the event after modifications. - * - * @returns {boolean} true if last-modified was updated - */ - - - undirtify() { - if (!this.isDirty()) { - return false; - } - - if (!this.hasProperty('SEQUENCE')) { - this.sequence = 0; - } - - this.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true)); - this.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true)); - - if (this._significantChange) { - this.sequence++; - } - - this.resetDirty(); - return true; - } - /** - * Resets the dirty indicators without updating DTSTAMP or LAST-MODIFIED - */ - - - resetDirty() { - this._dirty = false; - this._significantChange = false; - } - /** - * @inheritDoc - */ - - - updatePropertyWithValue(propertyName, value) { - super.updatePropertyWithValue(propertyName, value); - - if (uc(propertyName) === 'UID') { - this._cachedId = null; - } - - this.markPropertyAsDirty(propertyName); - } - /** - * @inheritDoc - */ - - - addProperty(property) { - this.markPropertyAsDirty(property.name); - property.subscribe(() => this.markPropertyAsDirty(property.name)); - return super.addProperty(property); - } - /** - * @inheritDoc - */ - - - deleteProperty(property) { - this.markPropertyAsDirty(property.name); - return super.deleteProperty(property); - } - /** - * @inheritDoc - */ - - - deleteAllProperties(propertyName) { - this.markPropertyAsDirty(propertyName); - return super.deleteAllProperties(propertyName); - } - /** - * @inheritDoc - */ - - - addComponent(component) { - this.markSubComponentAsDirty(component.name); - component.subscribe(() => this.markSubComponentAsDirty(component.name)); - return super.addComponent(component); - } - /** - * @inheritDoc - */ - - - deleteComponent(component) { - this.markSubComponentAsDirty(component.name); - return super.deleteComponent(component); - } - /** - * @inheritDoc - */ - - - deleteAllComponents(componentName) { - this.markSubComponentAsDirty(componentName); - return super.deleteAllComponents(componentName); - } - /** - * Gets a recurrence-id that has to be used to refer to this event. - * This is used for recurrence-management - * - * @returns {DateTimeValue} - */ - - - getReferenceRecurrenceId() { - if (this.originalRecurrenceId) { - return this.originalRecurrenceId; - } else if (this.recurrenceId) { - return this.recurrenceId; - } else { - return this.startDate; - } - } - /** - * Overrides the master item with this one - * - * @private - */ - - - _overridePrimaryItem() { - const oldStartDate = this.primaryItem.startDate; - - for (const property of this.primaryItem.getPropertyIterator()) { - this.primaryItem.deleteProperty(property); - } - - for (const property of this.getPropertyIterator()) { - this.primaryItem.addProperty(property); - } - - this.recurrenceManager.resetCache(); - - if (this.startDate.compare(oldStartDate) !== 0) { - this.recurrenceManager.updateStartDateOfMasterItem(this.startDate, oldStartDate); - } - } - /** - * @inheritDoc - */ - - - static _getConstructorForComponentName(componentName) { - return getConstructorForComponentName$1(componentName); - } - /** - * @inheritDoc - */ - - - static fromICALJs(...args) { - const comp = super.fromICALJs(...args); - comp.resetDirty(); - return comp; - } - -} -/** - * Date-Time stamp of this object. - * It has different meaning, based on whether or not a method is defined - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.2 - * - * @name EventComponent#stampTime - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'stampTime', - iCalendarName: 'DTSTAMP' -}); -/** - * Recurrence-ID of this object, used for recurrence-exceptions - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.4 - * - * @name EventComponent#recurrenceId - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'recurrenceId', - iCalendarName: 'RECURRENCE-ID' -}); -/** - * Special color for this event / journal / task - * - * @url https://tools.ietf.org/html/rfc7986#section-5.9 - * - * @name EventComponent#color - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'color'); -/** - * Creation Time of this event / journal / task - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.1 - * - * @name EventComponent#creationTime - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'creationTime', - iCalendarName: 'CREATED' -}); -/** - * The time this event / journal / task - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.3 - * - * @name EventComponent#modificationTime - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'modificationTime', - iCalendarName: 'LAST-MODIFIED' -}); -/** - * Organizer of this event / journal / task - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.3 - * - * @name EventComponent#organizer - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'organizer'); -/** - * Revision of this this event / journal / task - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.7.4 - * - * @name EventComponent#sequence - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'sequence'); -/** - * Status of this event / journal / task - * This indicates whether an event is tentative / confirmed / cancelled - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.11 - * - * @name EventComponent#status - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'status'); -/** - * URL of a more dynamic rendition of this event / journal / task - * DO NOT use this to simply point to a website merely related. - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.6 - * - * @name EventComponent#url - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, 'url'); -/** - * Title of this event / journal / task - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.12 - * - * @name EventComponent#title - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'title', - iCalendarName: 'SUMMARY' -}); -/** - * Access class of this event / journal / task - * This determines what other users can see when sharing - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.3 - * - * @name EventComponent#accessClass - * @type {String} - */ - -advertiseSingleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'accessClass', - iCalendarName: 'class', - allowedValues: ['PUBLIC', 'PRIVATE', 'CONFIDENTIAL'], - defaultValue: 'PUBLIC', - unknownValue: 'PRIVATE' -}); -/** - * Returns an iterator over all categories - * If the parameter lang is given, it will only - * return an iterator for Categories matching that language - * - * @name AbstractRecurringComponent#getCategoryIterator - * @function - * @param {String=} lang - * @returns {IterableIterator} - */ - -/** - * Returns a list of all categories - * If the parameter lang is given, it will only - * return an iterator for Categories matching that language - * - * @name AbstractRecurringComponent#getCategoryList - * @function - * @param {String=} lang - * @returns {String[]} - */ - -/** - * Adds a new category - * - * @name AbstractRecurringComponent#addCategory - * @function - * @param {String} category - * @param {String=} lang - */ - -/** - * Removes a category - * - * @name AbstractRecurringComponent#removeCategory - * @function - * @param {String} category - * @param {String=} lang - */ - -/** - * Clear all categories of a given language - * - * @name AbstractRecurringComponent#clearAllCategories - * @function - */ - -advertiseMultiValueStringPropertySeparatedByLang(AbstractRecurringComponent.prototype, { - name: 'category', - pluralName: 'categories', - iCalendarName: 'CATEGORIES' -}); -/** - * Returns an iterator over all attendees - * - * @name AbstractRecurringComponent#getAttendeeIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Gets a list of all attendees - * - * @name AbstractRecurringComponent#getAttendeeList - * @function - * @returns {AttachmentProperty[]} - */ - -/** - * Removes an attendee from this event / journal / task - * - * @name AbstractRecurringComponent#removeAttendee - * @function - * @param {AttendeeProperty} attendee - */ - -/** - * Removes all attendees from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllAttendees - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'attendee' -}); -/** - * Returns an iterator over all attachments - * - * @name AbstractRecurringComponent#getAttachmentIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Gets a list of all attachments - * - * @name AbstractRecurringComponent#getAttachmentList - * @function - * @returns {AttachmentProperty[]} - */ - -/** - * Removes one attachment from this event / journal / task - * - * @name AbstractRecurringComponent#removeAttachment - * @function - * @param {AttachmentProperty} attachment - */ - -/** - * Removes all attachments from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllAttachments - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'attachment', - iCalendarName: 'ATTACH' -}); -/** - * Returns an iterator over all relation properties - * - * @name AbstractRecurringComponent#getRelationIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all relation properties - * - * @name AbstractRecurringComponent#getRelationList - * @function - * @returns {RelationProperty[]} - */ - -/** - * Removes a relation from this event / journal / task - * - * @name AbstractRecurringComponent#removeRelation - * @function - * @param {RelationProperty} relation - */ - -/** - * Removes all relations from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllRelations - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'relation', - iCalendarName: 'RELATED-TO' -}); -/** - * Returns an iterator over all comments in this event / journal / task - * - * @name AbstractRecurringComponent#getCommentIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all comments in this event / journal / task - * - * @name AbstractRecurringComponent#getCommentList - * @function - * @returns {TextProperty[]} - */ - -/** - * Removes a comment from this event / journal / task - * - * @name AbstractRecurringComponent#removeComment - * @function - * @param {TextProperty} comment - */ - -/** - * Removes all comments from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllComments - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, 'comment'); -/** - * Returns an iterator over all contacts referenced in this event / journal / task - * - * @name AbstractRecurringComponent#getContactIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all contacts referenced in this event / journal / task - * - * @name AbstractRecurringComponent#getContactList - * @function - * @returns {TextProperty[]} - */ - -/** - * Removes one contact from this event / journal / task - * - * @name AbstractRecurringComponent#removeContact - * @function - * @param {TextProperty} contact - */ - -/** - * Removes all contacts from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllContacts - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, 'contact'); -/** - * Returns an iterator over all image properties - * - * @name AbstractRecurringComponent#getImageIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all image properties - * - * @name AbstractRecurringComponent#getImageList - * @function - * @returns {ImageProperty[]} - */ - -/** - * Removes one image from this event / journal / task - * - * @name AbstractRecurringComponent#removeImage - * @function - * @param {ImageProperty} image - */ - -/** - * Removes all images from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllImages - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, 'image'); -/** - * Returns an iterator over all request status - * - * @name AbstractRecurringComponent#getRequestStatusIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all request status - * - * @name AbstractRecurringComponent#getRequestStatusList - * @function - * @returns {RequestStatusProperty[]} - */ - -/** - * Removes one request status from this event / journal / task - * - * @name AbstractRecurringComponent#removeRequestStatus - * @function - * @param {RequestStatusProperty} requestStatus - */ - -/** - * Removes all request status from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllRequestStatus - * @function - */ - -advertiseMultipleOccurrenceProperty(AbstractRecurringComponent.prototype, { - name: 'requestStatus', - pluralName: 'requestStatus', - iCalendarName: 'REQUEST-STATUS' -}); -/** - * Returns an iterator of all alarms - * - * @name AbstractRecurringComponent#getAlarmIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all alarms - * - * @name AbstractRecurringComponent#getAlarmList - * @function - * @returns {AlarmComponent[]} - */ - -/** - * Removes an alarm from this event / journal / task - * - * @name AbstractRecurringComponent#removeAlarm - * @function - * @param {AlarmComponent} alarm - */ - -/** - * Removes all alarms from this event / journal / task - * - * @name AbstractRecurringComponent#clearAllAlarms - * @function - */ - -advertiseComponent(AbstractRecurringComponent.prototype, 'alarm'); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * Gets kind of birthday event - * returns "BDAY", "DEATHDATE", "ANNIVERSARY" - * or null if this is not a birthday event - * - * @param {EventComponent} eventComponent The eventComponent of the birthday event - * @returns {null|string} - */ -function getTypeOfBirthdayEvent(eventComponent) { - return eventComponent.getFirstPropertyFirstValue('X-NEXTCLOUD-BC-FIELD-TYPE'); -} -/** - * Gets icon for the birthday type - * - * @param {EventComponent} eventComponent The eventComponent of the birthday event - * @returns {string|null} - */ - -function getIconForBirthday(eventComponent) { - const birthdayType = getTypeOfBirthdayEvent(eventComponent); - - switch (birthdayType) { - case 'BDAY': - return '🎂'; - - case 'DEATHDATE': - return '⚰️'; - - case 'ANNIVERSARY': - return '💍'; - - default: - return null; - } -} -/** - * Returns the age of the birthday person or null of no birth-year given - * - * @param {EventComponent} eventComponent The eventComponent of the birthday event - * @param {number} yearOfOccurrence The year to calculate the age for - * @returns {null|number} - */ - -function getAgeOfBirthday(eventComponent, yearOfOccurrence) { - if (!eventComponent.hasProperty('X-NEXTCLOUD-BC-YEAR')) { - return null; - } - - const yearOfBirth = eventComponent.getFirstPropertyFirstValue('X-NEXTCLOUD-BC-YEAR'); - return parseInt(yearOfOccurrence, 10) - parseInt(yearOfBirth, 10); -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class EventComponent - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.6.1 - */ - -class EventComponent extends AbstractRecurringComponent { - /** - * Returns whether this event is an all-day event - * - * @returns {boolean} - */ - isAllDay() { - return this.startDate.isDate && this.endDate.isDate; - } - /** - * Checks whether it's possible to switch from date-time to date or vise-versa - * - * @returns {boolean} - */ - - - canModifyAllDay() { - return !this.recurrenceManager.masterItem.isRecurring(); - } - /** - * Gets the calculated end-date of the event - * - * Quote from RFC 5545 3.6.1: - * The "DTSTART" property for a "VEVENT" specifies the inclusive - * start of the event. For recurring events, it also specifies the - * very first instance in the recurrence set. The "DTEND" property - * for a "VEVENT" calendar component specifies the non-inclusive end - * of the event. For cases where a "VEVENT" calendar component - * specifies a "DTSTART" property with a DATE value type but no - * "DTEND" nor "DURATION" property, the event's duration is taken to - * be one day. For cases where a "VEVENT" calendar component - * specifies a "DTSTART" property with a DATE-TIME value type but no - * "DTEND" property, the event ends on the same calendar date and - * time of day specified by the "DTSTART" property. - * - * @returns {DateTimeValue} - */ - - - get endDate() { - if (this.hasProperty('dtend')) { - return this.getFirstPropertyFirstValue('dtend'); - } - - const dtend = this.startDate.clone(); - - if (this.hasProperty('duration')) { - dtend.addDuration(this.getFirstPropertyFirstValue('duration')); - } else if (this.startDate.isDate) { - dtend.addDuration(DurationValue.fromSeconds(60 * 60 * 24)); - } // There is nothing to do when this event is not allday - - - return dtend; - } - /** - * Sets the end time of the event - * - * @param {DateTimeValue} end The end of the event - */ - - - set endDate(end) { - this.deleteAllProperties('duration'); - this.updatePropertyWithValue('dtend', end); - } - /** - * Gets the calculated duration of the event - * - * @returns {DurationValue} - */ - - - get duration() { - if (this.hasProperty('duration')) { - return this.getFirstPropertyFirstValue('duration'); - } - - return this.startDate.subtractDateWithTimezone(this.endDate); - } - /** - * Sets the calculated duration of the event - * - * @param {DurationValue} duration The duration of the event - */ - - - set duration(duration) { - this.deleteAllProperties('dtend'); - this.updatePropertyWithValue('duration', duration); - } - /** - * Sets the geographical position based on latitude and longitude - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6 - * - * @param {Number} lat - latitude - * @param {Number} long - longitude - */ - - - setGeographicalPositionFromLatitudeAndLongitude(lat, long) { - this.deleteAllProperties('GEO'); - this.addProperty(GeoProperty.fromPosition(lat, long)); - } - /** - * Adds a new conference property based on URI, label and features - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @param {String} uri The URI of the conference system - * @param {String=} label The label for the conference system - * @param {String[]=} features The features of the conference system - */ - - - addConference(uri, label = null, features = null) { - this._modify(); - - this.addProperty(ConferenceProperty.fromURILabelAndFeatures(uri, label, features)); - } - /** - * Adds a duration to the start of the event - * - * @param {DurationValue} duration The duration to add - */ - - - addDurationToStart(duration) { - this.startDate.addDuration(duration); - } - /** - * Adds a duration to the end of the event - * - * @param {DurationValue} duration The duration to add - */ - - - addDurationToEnd(duration) { - const endDate = this.endDate; - endDate.addDuration(duration); - this.endDate = endDate; - } - /** - * Shifts the entire event by the given duration - * - * @param {DurationValue} delta The duration to shift event by - * @param {Boolean} allDay Whether the updated event should be all-day or not - * @param {Timezone} defaultTimezone The default timezone if moving from all-day to timed event - * @param {DurationValue} defaultAllDayDuration The default all-day duration if moving from timed to all-day - * @param {DurationValue} defaultTimedDuration The default timed duration if moving from all-day to timed - */ - - - shiftByDuration(delta, allDay, defaultTimezone, defaultAllDayDuration, defaultTimedDuration) { - const currentAllDay = this.isAllDay(); - - if (currentAllDay !== allDay && !this.canModifyAllDay()) { - throw new TypeError('Can\'t modify all-day of this event'); - } - - this.startDate.isDate = allDay; - this.startDate.addDuration(delta); // If this event was moved from the all-day area into the time-grid, - // then we have to add a timezone and the default duration - - if (currentAllDay && !allDay) { - this.startDate.replaceTimezone(defaultTimezone); - this.endDate = this.startDate.clone(); - this.endDate.addDuration(defaultTimedDuration); - } // If this event was moved from the time-grid into the all-day area, - // then we have to change the default duration - - - if (!currentAllDay && allDay) { - this.endDate = this.startDate.clone(); - this.endDate.addDuration(defaultAllDayDuration); - } // If this event was only moved inside the time-grid or only inside - // the all-day area, then we only have to adjust the end-date - - - if (currentAllDay === allDay) { - const endDate = this.endDate; - endDate.addDuration(delta); - this.endDate = endDate; - } - } - /** - * Checks if this is a birthday event - * - * @returns {boolean} - */ - - - isBirthdayEvent() { - return getTypeOfBirthdayEvent(this) === 'BDAY'; - } - /** - * Gets the icon to the birthday event - * - * @returns {string} - */ - - - getIconForBirthdayEvent() { - return getIconForBirthday(this); - } - /** - * Calculates the age of the birthday - * - * @returns {number} - */ - - - getAgeForBirthdayEvent() { - return getAgeOfBirthday(this, this.startDate.year); - } - /** - * Serializes the entire series to ICS - * - * @returns {string} - */ - - - toICSEntireSeries() { - return this.root.toICS(); - } - /** - * Serializes exactly this recurrence to ICS - * It removes all recurrence information - * - * @returns {string} - */ - - - toICSThisOccurrence() { - const clone = this.clone(); - clone.deleteAllProperties('RRULE'); - clone.deleteAllProperties('EXRULE'); - clone.deleteAllProperties('RDATE'); - clone.deleteAllProperties('EXDATE'); - clone.deleteAllProperties('RECURRENCE-ID'); - clone.root = clone.root.constructor.fromEmpty(); - clone.parent = clone.root; - clone.root.addComponent(clone); - return clone.root.toICS(); - } - /** - * Checks if this event is in a given time-frame - * - * @param {DateTimeValue} start Start of time-range to check - * @param {DateTimeValue} end End of time-range to check - * @returns {boolean} - */ - - - isInTimeFrame(start, end) { - return start.compare(this.endDate) <= 0 && end.compare(this.startDate) >= 0; - } - -} -/** - * Time-transparency of this event. - * If set to TRANSPARENT, this event will be ignored for FREE/BUSY calculations. - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.7 - * - * @name EventComponent#timeTransparency - * @type {String} - */ - -advertiseSingleOccurrenceProperty(EventComponent.prototype, { - name: 'timeTransparency', - iCalendarName: 'TRANSP', - allowedValues: ['OPAQUE', 'TRANSPARENT'], - defaultValue: 'OPAQUE' -}); -/** - * Description of this event. - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name EventComponent#description - * @type {String} - */ - -advertiseSingleOccurrenceProperty(EventComponent.prototype, 'description'); -/** - * Geographical position of this event - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6 - * - * @name EventComponent#geographicalPosition - * @type {String} - */ - -advertiseSingleOccurrenceProperty(EventComponent.prototype, { - name: 'geographicalPosition', - iCalendarName: 'GEO' -}); -/** - * Location that this event takes place in - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.7 - * - * @name EventComponent#location - * @type {String} - */ - -advertiseSingleOccurrenceProperty(EventComponent.prototype, 'location'); -/** - * Priority of this event - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.9 - * - * @name EventComponent#priority - * @type Number - */ - -advertiseSingleOccurrenceProperty(EventComponent.prototype, { - name: 'priority', - allowedValues: Array(9).keys(), - defaultValue: 0, - unknownValue: 0 -}); -/** - * Returns an iterator over all resources - * If the parameter lang is given, it will only - * return an iterator for Resources matching that language - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name EventComponent#getResourceIterator - * @function - * @param {String=} lang - * @returns {IterableIterator} - */ - -/** - * Returns a list of all resources - * If the parameter lang is given, it will only - * return an iterator for resources matching that language - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name EventComponent#getResourceList - * @function - * @param {String=} lang - * @returns {String[]} - */ - -/** - * Adds a resource - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name EventComponent#addResource - * @function - * @param {String} resource - * @param {String=} lang - */ - -/** - * Removes a resource - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name EventComponent#removeResource - * @function - * @param {String} resource - * @param {String=} lang - */ - -/** - * Removes all resources from this event - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name EventComponent#clearAllResources - * @function - * @param {String=} lang - */ - -advertiseMultiValueStringPropertySeparatedByLang(EventComponent.prototype, { - name: 'resource', - iCalendarName: 'RESOURCES' -}); -/** - * Gets an iterator over all conference properties - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name EventComponent#getConferenceIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Gets a list of all conference properties - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name EventComponent#getConferenceList - * @function - * @returns {ConferenceProperty[]} - */ - -/** - * Removes a conference from this event - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name EventComponent#removeConference - * @function - * @param {ConferenceProperty} conference - */ - -/** - * Removes all conferences from this event - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name EventComponent#clearAllConferences - * @function - */ - -advertiseMultipleOccurrenceProperty(EventComponent.prototype, 'conference'); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class FreeBusyComponent - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.6.4 - */ - -class FreeBusyComponent extends AbstractComponent { - /** - * Gets the start-date of the FreeBusy component - * - * @returns {DateTimeValue} - */ - get startDate() { - return this.getFirstPropertyFirstValue('DTSTART'); - } - /** - * Sets the start-date of the FreeBusy component - * - * @param {DateTimeValue} startDate The start of the queried time-range - */ - - - set startDate(startDate) { - this._modify(); - - this.updatePropertyWithValue('DTSTART', startDate.getInTimezone(Timezone.utc)); - } - /** - * Gets the end-date of the FreeBusy component - * - * @returns {DateTimeValue} - */ - - - get endDate() { - return this.getFirstPropertyFirstValue('DTEND'); - } - /** - * Sets the start-date of the FreeBusy component - * - * @param {DateTimeValue} endDate The end of the queried time-range - */ - - - set endDate(endDate) { - this._modify(); - - this.updatePropertyWithValue('DTEND', endDate.getInTimezone(Timezone.utc)); - } - /** - * Gets an iterator over all FreeBusyProperties - */ - - - *getFreeBusyIterator() { - yield* this.getPropertyIterator('FREEBUSY'); - } - /** - * Adds a new attendee based on their name and email-address - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @param {String} name The name of the attendee to add - * @param {String} email The email-address of the attendee to add - */ - - - addAttendeeFromNameAndEMail(name, email) { - this._modify(); - - this.addProperty(AttendeeProperty.fromNameAndEMail(name, email)); - } - /** - * Sets the organiser property from common-name and email address - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.3 - * - * @param {String} name The name of the organizer - * @param {String} email The email-address of the organizer - */ - - - setOrganizerFromNameAndEMail(name, email) { - this._modify(); - - this.deleteAllProperties('ORGANIZER'); - this.addProperty(AttendeeProperty.fromNameAndEMail(name, email, true)); - } - -} -/** - * The organizer of this FreeBusy component - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.3 - * - * @name FreeBusyComponent#organizer - * @type {AttendeeProperty} - */ - -advertiseSingleOccurrenceProperty(FreeBusyComponent.prototype, 'organizer'); -/** - * The UID of this FreeBusy component - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.7 - * - * @name FreeBusyComponent#organizer - * @type {AttendeeProperty} - */ - -advertiseSingleOccurrenceProperty(FreeBusyComponent.prototype, 'uid'); -/** - * Returns an iterator of all attendees - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name FreeBusyComponent#getAttendeeIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Returns a list of all attendees - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name FreeBusyComponent#getAttendeeList - * @function - * @returns {AttendeeProperty[]} - */ - -/** - * Removes an attendee - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name FreeBusyComponent#removeAttendee - * @function - * @param {AttendeeProperty} attendee - */ - -/** - * Removes all attendees - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.4.1 - * - * @name FreeBusyComponent#clearAllAttendees - * @function - */ - -advertiseMultipleOccurrenceProperty(FreeBusyComponent.prototype, 'attendee'); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class JournalComponent - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.6.3 - */ - -class JournalComponent extends AbstractRecurringComponent { - /** - * Adds a new description property - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @param {String} description The description text - */ - addDescription(description) { - this.addProperty(new TextProperty('DESCRIPTION', description)); - } - -} -/** - * Gets an iterator over all description properties - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name JournalComponent#getDescriptionIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Gets a list of all description properties - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name JournalComponent#getDescriptionList - * @function - * @returns {ConferenceProperty[]} - */ - -/** - * Removes a description from this event - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name JournalComponent#removeDescription - * @function - * @param {ConferenceProperty} conference - */ - -/** - * Removes all descriptions from this event - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name JournalComponent#clearAllDescriptions - * @function - */ - -advertiseMultipleOccurrenceProperty(JournalComponent.prototype, 'description'); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ToDoComponent - * @classdesc - * - * @url https://tools.ietf.org/html/rfc5545#section-3.6.2 - */ - -class ToDoComponent extends AbstractRecurringComponent { - /** - * Returns whether this event is an all-day event - * - * @returns {boolean} - */ - isAllDay() { - const propertiesToCheck = ['DTSTART', 'DUE']; - - for (const propertyToCheck of propertiesToCheck) { - if (this.hasProperty(propertyToCheck)) { - return this.getFirstPropertyFirstValue(propertyToCheck).isDate; - } - } // If a task is not associated with any date, it is defined to - // occur on any successive date until it is completed. - // We are treating it as all-day in that case. - - - return true; - } - /** - * Checks whether it's possible to switch from date-time to date or vise-versa - * - * @returns {boolean} - */ - - - canModifyAllDay() { - if (!this.hasProperty('dtstart') && !this.hasProperty('due')) { - return false; - } - - return !this.recurrenceManager.masterItem.isRecurring(); - } - /** - * Gets the calculated end-date of the task - * - * If there is a due-date, we will just return that. - * If there is a start-date and a duration, we will - * calculate the end-date based on that. - * - * If there is neither a due-date nor a combination - * of start-date and duration, we just return null - * - * @returns {DateTimeValue|null} - */ - - - get endDate() { - if (this.hasProperty('due')) { - return this.getFirstPropertyFirstValue('due'); - } - - if (!this.hasProperty('dtstart') || !this.hasProperty('duration')) { - return null; - } - - const endDate = this.startDate.clone(); - endDate.addDuration(this.getFirstPropertyFirstValue('duration')); - return endDate; - } - /** - * Shifts the entire task by the given duration - * - * @param {DurationValue} delta The duration to shift event by - * @param {Boolean} allDay Whether the updated event should be all-day or not - * @param {Timezone} defaultTimezone The default timezone if moving from all-day to timed event - * @param {DurationValue} defaultAllDayDuration The default all-day duration if moving from timed to all-day - * @param {DurationValue} defaultTimedDuration The default timed duration if moving from all-day to timed - */ - - - shiftByDuration(delta, allDay, defaultTimezone, defaultAllDayDuration, defaultTimedDuration) { - const currentAllDay = this.isAllDay(); - - if (!this.hasProperty('dtstart') && !this.hasProperty('due')) { - throw new TypeError('This task does not have a start-date nor due-date'); - } - - if (currentAllDay !== allDay && !this.canModifyAllDay()) { - throw new TypeError('Can\'t modify all-day of this todo'); - } // If this task has a start-date, update it - // This is especially important, if you shift - // the task by a negative duration, because - // dtstart always has to be prior to the due date - - - if (this.hasProperty('dtstart')) { - this.startDate.isDate = allDay; - this.startDate.addDuration(delta); - - if (currentAllDay && !allDay) { - this.startDate.replaceTimezone(defaultTimezone); - } - } - - if (this.hasProperty('due')) { - this.dueTime.isDate = allDay; - this.dueTime.addDuration(delta); - - if (currentAllDay && !allDay) { - this.dueTime.replaceTimezone(defaultTimezone); - } - } - } - /** - * Checks if this event is in a given time-frame - * - * @param {DateTimeValue} start Start of time-range to check - * @param {DateTimeValue} end End of time-range to check - * @returns {boolean} - */ - - - isInTimeFrame(start, end) { - if (!this.hasProperty('dtstart') && !this.hasProperty('due')) { - return true; - } - - if (!this.hasProperty('dtstart') && this.hasProperty('due')) { - return start.compare(this.endDate) <= 0; - } - - return start.compare(this.endDate) <= 0 && end.compare(this.startDate) >= 0; - } - /** - * Gets the geographical position property - * - * @returns {GeoProperty} - */ - - - get geographicalPosition() { - return this.getFirstProperty('GEO'); - } - /** - * Sets the geographical position based on latitude and longitude - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.6 - * - * @param {Number} lat - latitude - * @param {Number} long - longitude - */ - - - setGeographicalPositionFromLatitudeAndLongitude(lat, long) { - this.deleteAllProperties('GEO'); - this.addProperty(GeoProperty.fromPosition(lat, long)); - } - /** - * Adds a new conference property based on URI, label and features - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @param {String} uri The URI of the conference - * @param {String=} label The label of the conference - * @param {String[]=} features Supported features of conference-system - */ - - - addConference(uri, label = null, features = null) { - this.addProperty(ConferenceProperty.fromURILabelAndFeatures(uri, label, features)); - } - -} -/** - * The time when a task was completed - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.1 - * - * @name ToDoComponent#completedTime - * @type {DateTimeValue} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, { - name: 'completedTime', - iCalendarName: 'COMPLETED' -}); -/** - * The time when a task is due - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.3 - * - * @name ToDoComponent#dueTime - * @type {DateTimeValue} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, { - name: 'dueTime', - iCalendarName: 'DUE' -}); -/** - * The time when a task was completed - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.2.5 - * - * @name ToDoComponent#duration - * @type {DurationValue} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, { - name: 'duration' -}); -/** - * The percentage a task was already fulfilled - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.8 - * - * @name ToDoComponent#percent - * @type {Number} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, { - name: 'percent', - iCalendarName: 'PERCENT-COMPLETE' -}); -/** - * Description of this task. - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.5 - * - * @name ToDoComponent#description - * @type {String} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, 'description'); -/** - * Location of this task. - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.7 - * - * @name ToDoComponent#location - * @type {String} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, 'location'); -/** - * Priority of this task. - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.9 - * - * @name ToDoComponent#priority - * @type {String} - */ - -advertiseSingleOccurrenceProperty(ToDoComponent.prototype, { - name: 'priority', - allowedValues: Array.from(Array(10).keys()), - defaultValue: 0, - unknownValue: 0 -}); -/** - * Returns an iterator over all resources - * If the parameter lang is given, it will only - * return an iterator for Resources matching that language - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name ToDoComponent#getResourceIterator - * @function - * @param {String=} lang - * @returns {IterableIterator} - */ - -/** - * Returns a list of all resources - * If the parameter lang is given, it will only - * return an iterator for resources matching that language - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name ToDoComponent#getResourceList - * @function - * @param {String=} lang - * @returns {String[]} - */ - -/** - * Adds a resource - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name ToDoComponent#addResource - * @function - * @param {String} resource - * @param {String=} lang - */ - -/** - * Removes a resource - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name ToDoComponent#removeResource - * @function - * @param {String} resource - * @param {String=} lang - */ - -/** - * Removes all resources from this task - * - * @url https://tools.ietf.org/html/rfc5545#section-3.8.1.10 - * - * @name ToDoComponent#clearAllResources - * @function - * @param {String=} lang - */ - -advertiseMultiValueStringPropertySeparatedByLang(ToDoComponent.prototype, { - name: 'resource', - iCalendarName: 'RESOURCES' -}); -/** - * Gets an iterator over all conference properties - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name ToDoComponent#getConferenceIterator - * @function - * @returns {IterableIterator} - */ - -/** - * Gets a list of all conference properties - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name ToDoComponent#getConferenceList - * @function - * @returns {ConferenceProperty[]} - */ - -/** - * Removes a conference from this event - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name ToDoComponent#removeConference - * @function - * @param {ConferenceProperty} conference - */ - -/** - * Removes all conferences from this event - * - * @url https://tools.ietf.org/html/rfc7986#section-5.11 - * - * @name ToDoComponent#clearAllConferences - * @function - */ - -advertiseMultipleOccurrenceProperty(ToDoComponent.prototype, 'conference'); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * Gets the constructor for a component name - * This will only return a constructor for components, - * that can be used in the root of a calendar-document - * - * @param {String} compName Name of the component to get constructor for - * @returns {AbstractComponent|ToDoComponent|JournalComponent|FreeBusyComponent|TimezoneComponent|EventComponent} - */ - -function getConstructorForComponentName(compName) { - switch (uc(compName)) { - case 'VEVENT': - return EventComponent; - - case 'VFREEBUSY': - return FreeBusyComponent; - - case 'VJOURNAL': - return JournalComponent; - - case 'VTIMEZONE': - return TimezoneComponent; - - case 'VTODO': - return ToDoComponent; - - default: - return AbstractComponent; - } -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * This class represents one VCALENDAR block - * - * @url https://tools.ietf.org/html/rfc5545#section-3.4 - */ - -class CalendarComponent extends AbstractComponent { - /** - * Constructor - * - * @inheritDoc - */ - constructor(name = 'VCALENDAR', properties = [], components = []) { - super(name, properties, components); - this.root = this; - this.parent = null; - } - /** - * Gets an iterator over all VTIMEZONE components - */ - - - *getTimezoneIterator() { - yield* this.getComponentIterator('vtimezone'); - } - /** - * Gets an iterator over all VObject components - */ - - - *getVObjectIterator() { - yield* this.getEventIterator(); - yield* this.getJournalIterator(); - yield* this.getTodoIterator(); - } - /** - * Gets an iterator over all VEVENT components - */ - - - *getEventIterator() { - yield* this.getComponentIterator('vevent'); - } - /** - * Gets an iterator over all VFREEBUSY components - */ - - - *getFreebusyIterator() { - yield* this.getComponentIterator('vfreebusy'); - } - /** - * Gets an iterator over all VJOURNAL components - */ - - - *getJournalIterator() { - yield* this.getComponentIterator('vjournal'); - } - /** - * Gets an iterator over all VTODO components - */ - - - *getTodoIterator() { - yield* this.getComponentIterator('vtodo'); - } - /** - * @inheritDoc - */ - - - static _getConstructorForComponentName(componentName) { - return getConstructorForComponentName(componentName); - } - /** - * Converts this calendar component into text/calendar - * - * @param {boolean} cleanUpTimezones Whether or not to clean up timezone data - * @returns {string} - */ - - - toICS(cleanUpTimezones = true) { - for (const vObject of this.getVObjectIterator()) { - vObject.undirtify(); - } - - const icalRoot = this.toICALJs(); - - if (cleanUpTimezones) { - ical_js__WEBPACK_IMPORTED_MODULE_0___default().helpers.updateTimezones(icalRoot); - } - - return icalRoot.toString(); - } - /** - * Creates a new empty calendar-component - * - * @param {[String][]=} additionalProps Additional props to add to empty calendar-document - * @returns {CalendarComponent} - */ - - - static fromEmpty(additionalProps = []) { - return new this('VCALENDAR', [['prodid', getConfig('PRODID', '-//IDN georgehrke.com//calendar-js//EN')], ['calscale', 'GREGORIAN'], ['version', '2.0']].concat(additionalProps)); - } - /** - * Creates a new calendar-component with a method - * - * @param {string} method The method for the calendar-document - * @returns {CalendarComponent} - */ - - - static fromMethod(method) { - return this.fromEmpty([['method', method]]); - } - /** - * @inheritDoc - */ - - - static fromICALJs(icalValue) { - const comp = super.fromICALJs(icalValue); - comp.root = comp; - return comp; - } - -} -/** - * ProductId representing the software that created this calendar-document - * - * @url https://tools.ietf.org/html/rfc5545#section-3.7.3 - * - * @name CalendarComponent#productId - * @type {String} - */ - -advertiseSingleOccurrenceProperty(CalendarComponent.prototype, { - name: 'productId', - iCalendarName: 'PRODID' -}); -/** - * iCalendar version of this calendar-document - * minver and maxver parameters are not supported, since they - * are virtually used by no calendaring-software - * - * @url https://tools.ietf.org/html/rfc5545#section-3.7.4 - * - * @name CalendarComponent#version - * @type {String} - */ - -advertiseSingleOccurrenceProperty(CalendarComponent.prototype, { - name: 'version' -}); -/** - * Calendar-scale used in this calendar-document - * The default and only supported calendar-scale is GREGORIAN. - * There is an iCalendar-extension about non-gregorian RRULES, - * but that is not supported by calendar-js at the moment - * @see https://tools.ietf.org/html/rfc7529 - * - * @url https://tools.ietf.org/html/rfc5545#section-3.7.1 - * - * @name CalendarComponent#calendarScale - * @type {String} - * @default "GREGORIAN" - */ - -advertiseSingleOccurrenceProperty(CalendarComponent.prototype, { - name: 'calendarScale', - iCalendarName: 'CALSCALE', - defaultValue: 'GREGORIAN' -}); -/** - * Method of this calendar-document when being used in an iTIP message - * Please see https://tools.ietf.org/html/rfc5546#section-3.2 for more information - * - * @url https://tools.ietf.org/html/rfc5545#section-3.7.2 - * - * @name CalendarComponent#method - * @type {String} - */ - -advertiseSingleOccurrenceProperty(CalendarComponent.prototype, { - name: 'method' -}); - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * @class AbstractRepairStep - * @classdesc A repair step is used to fix calendar-data before it is parsed - */ -class AbstractRepairStep { - /** - * @constructor - */ - constructor() { - if (new.target === AbstractRepairStep) { - throw new TypeError('Cannot instantiate abstract class AbstractRepairStep'); - } - } - /** - * @param {String} input String representation of the data to repair - */ - - - repair(input) { - throw new TypeError('Abstract method not implemented by subclass'); - } - /** - * @returns {number} - */ - - - static priority() { - return 0; - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarAddMissingUIDRepairStep - */ - -class ICalendarAddMissingUIDRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - return ics.replace(/^BEGIN:(VEVENT|VTODO|VJOURNAL)$(((?!^END:(VEVENT|VTODO|VJOURNAL)$)(?!^UID.*$)(.|\n))*)^END:(VEVENT|VTODO|VJOURNAL)$\n/gm, (match, vobjectName, vObjectBlock) => { - return 'BEGIN:' + vobjectName + '\r\n' + 'UID:' + (0,uuid__WEBPACK_IMPORTED_MODULE_1__["default"])() + vObjectBlock + 'END:' + vobjectName + '\r\n'; - }); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarAddMissingValueDateDoubleColonRepairStep - */ - -class ICalendarAddMissingValueDateDoubleColonRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - return ics.replace(/^(DTSTART|DTEND)(.*):([0-9]{8})T(::)$/gm, (match, propName, parameters, date) => { - return propName + ';VALUE=DATE:' + date; - }); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarAddMissingValueDateRepairStep - */ - -class ICalendarAddMissingValueDateRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - return ics.replace(/^(DTSTART|DTEND)(((?!VALUE=DATE).)*):([0-9]{8})$/gm, (match, propName, parameters, _, date) => { - return propName + parameters + ';VALUE=DATE:' + date; - }); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarEmptyTriggerRepairStep - * @classdesc This repair step fixes malformed TRIGGER properties - */ - -class ICalendarEmptyTriggerRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - return ics.replace(/^TRIGGER:P$/gm, 'TRIGGER:P0D').replace(/^TRIGGER:-P$/gm, 'TRIGGER:P0D'); - } - -} - -/** - * @copyright Copyright (c) 2020 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -class ICalendarIllegalCreatedRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - return ics.replace(/^CREATED:00001231T000000Z$/gm, 'CREATED:19700101T000000Z'); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarMultipleVCalendarBlocksRepairStep - * @classdesc This repair step merges multiple BEGIN:VCALENDAR...END:VCALENDAR blocks - */ - -class ICalendarMultipleVCalendarBlocksRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - let containsProdId = false; - let containsVersion = false; - let containsCalscale = false; - const includedTimezones = new Set(); - return ics.replace(/^END:VCALENDAR$(((?!^BEGIN:)(.|\n))*)^BEGIN:VCALENDAR$\n/gm, '').replace(/^PRODID:(.*)$\n/gm, match => { - if (containsProdId) { - return ''; - } - - containsProdId = true; - return match; - }).replace(/^VERSION:(.*)$\n/gm, match => { - if (containsVersion) { - return ''; - } - - containsVersion = true; - return match; - }).replace(/^CALSCALE:(.*)$\n/gm, match => { - if (containsCalscale) { - return ''; - } - - containsCalscale = true; - return match; - }).replace(/^BEGIN:VTIMEZONE$(((?!^END:VTIMEZONE$)(.|\n))*)^END:VTIMEZONE$\n/gm, match => { - const tzidMatcher = match.match(/^TZID:(.*)$/gm); // If this Timezone definition contains no TZID for some reason, - // just remove it, because we can't use it anyway - - if (tzidMatcher === null) { - return ''; - } - - const tzid = uc(tzidMatcher[0].slice(5)); - - if (includedTimezones.has(tzid)) { - // If we already included this timezone, just skip - return ''; - } - - includedTimezones.add(tzid); - return match; - }); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarRemoveXNCGroupIdRepairStep - * @classdesc This repair step removes the X-NC-GroupID parameter used in previous versions of Nextcloud - */ - -class ICalendarRemoveXNCGroupIdRepairStep extends AbstractRepairStep { - /** - * Please see the corresponding test file for an example of broken calendar-data - * - * @inheritDoc - */ - repair(ics) { - return ics.replace(/(^.*)(;X-NC-GROUP-ID=\d+)(:.*$)/gm, '$1$3'); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * Get an iterator over all repair steps for iCalendar documents - */ - -function* getRepairSteps() { - yield ICalendarAddMissingUIDRepairStep; - yield ICalendarAddMissingValueDateDoubleColonRepairStep; - yield ICalendarAddMissingValueDateRepairStep; - yield ICalendarEmptyTriggerRepairStep; - yield ICalendarIllegalCreatedRepairStep; - yield ICalendarMultipleVCalendarBlocksRepairStep; - yield ICalendarRemoveXNCGroupIdRepairStep; -} - -var version = "2.2019c"; -var aliases = { - "AUS Central Standard Time": { - aliasTo: "Australia/Darwin" - }, - "AUS Eastern Standard Time": { - aliasTo: "Australia/Sydney" - }, - "Afghanistan Standard Time": { - aliasTo: "Asia/Kabul" - }, - "Africa/Asmera": { - aliasTo: "Africa/Asmara" - }, - "Africa/Timbuktu": { - aliasTo: "Africa/Bamako" - }, - "Alaskan Standard Time": { - aliasTo: "America/Anchorage" - }, - "America/Argentina/ComodRivadavia": { - aliasTo: "America/Argentina/Catamarca" - }, - "America/Buenos_Aires": { - aliasTo: "America/Argentina/Buenos_Aires" - }, - "America/Louisville": { - aliasTo: "America/Kentucky/Louisville" - }, - "America/Montreal": { - aliasTo: "America/Toronto" - }, - "America/Santa_Isabel": { - aliasTo: "America/Tijuana" - }, - "Arab Standard Time": { - aliasTo: "Asia/Riyadh" - }, - "Arabian Standard Time": { - aliasTo: "Asia/Dubai" - }, - "Arabic Standard Time": { - aliasTo: "Asia/Baghdad" - }, - "Argentina Standard Time": { - aliasTo: "America/Argentina/Buenos_Aires" - }, - "Asia/Calcutta": { - aliasTo: "Asia/Kolkata" - }, - "Asia/Katmandu": { - aliasTo: "Asia/Kathmandu" - }, - "Asia/Rangoon": { - aliasTo: "Asia/Yangon" - }, - "Asia/Saigon": { - aliasTo: "Asia/Ho_Chi_Minh" - }, - "Atlantic Standard Time": { - aliasTo: "America/Halifax" - }, - "Atlantic/Faeroe": { - aliasTo: "Atlantic/Faroe" - }, - "Atlantic/Jan_Mayen": { - aliasTo: "Europe/Oslo" - }, - "Azerbaijan Standard Time": { - aliasTo: "Asia/Baku" - }, - "Azores Standard Time": { - aliasTo: "Atlantic/Azores" - }, - "Bahia Standard Time": { - aliasTo: "America/Bahia" - }, - "Bangladesh Standard Time": { - aliasTo: "Asia/Dhaka" - }, - "Belarus Standard Time": { - aliasTo: "Europe/Minsk" - }, - "Canada Central Standard Time": { - aliasTo: "America/Regina" - }, - "Cape Verde Standard Time": { - aliasTo: "Atlantic/Cape_Verde" - }, - "Caucasus Standard Time": { - aliasTo: "Asia/Yerevan" - }, - "Cen. Australia Standard Time": { - aliasTo: "Australia/Adelaide" - }, - "Central America Standard Time": { - aliasTo: "America/Guatemala" - }, - "Central Asia Standard Time": { - aliasTo: "Asia/Almaty" - }, - "Central Brazilian Standard Time": { - aliasTo: "America/Cuiaba" - }, - "Central Europe Standard Time": { - aliasTo: "Europe/Budapest" - }, - "Central European Standard Time": { - aliasTo: "Europe/Warsaw" - }, - "Central Pacific Standard Time": { - aliasTo: "Pacific/Guadalcanal" - }, - "Central Standard Time": { - aliasTo: "America/Chicago" - }, - "Central Standard Time (Mexico)": { - aliasTo: "America/Mexico_City" - }, - "China Standard Time": { - aliasTo: "Asia/Shanghai" - }, - "E. Africa Standard Time": { - aliasTo: "Africa/Nairobi" - }, - "E. Australia Standard Time": { - aliasTo: "Australia/Brisbane" - }, - "E. South America Standard Time": { - aliasTo: "America/Sao_Paulo" - }, - "Eastern Standard Time": { - aliasTo: "America/New_York" - }, - "Egypt Standard Time": { - aliasTo: "Africa/Cairo" - }, - "Ekaterinburg Standard Time": { - aliasTo: "Asia/Yekaterinburg" - }, - "Etc/GMT": { - aliasTo: "UTC" - }, - "Etc/GMT+0": { - aliasTo: "UTC" - }, - "Etc/UCT": { - aliasTo: "UTC" - }, - "Etc/UTC": { - aliasTo: "UTC" - }, - "Etc/Unversal": { - aliasTo: "UTC" - }, - "Etc/Zulu": { - aliasTo: "UTC" - }, - "Europe/Belfast": { - aliasTo: "Europe/London" - }, - "FLE Standard Time": { - aliasTo: "Europe/Kiev" - }, - "Fiji Standard Time": { - aliasTo: "Pacific/Fiji" - }, - GMT: { - aliasTo: "UTC" - }, - "GMT Standard Time": { - aliasTo: "Europe/London" - }, - "GMT+0": { - aliasTo: "UTC" - }, - GMT0: { - aliasTo: "UTC" - }, - "GTB Standard Time": { - aliasTo: "Europe/Bucharest" - }, - "Georgian Standard Time": { - aliasTo: "Asia/Tbilisi" - }, - "Greenland Standard Time": { - aliasTo: "America/Godthab" - }, - Greenwich: { - aliasTo: "UTC" - }, - "Greenwich Standard Time": { - aliasTo: "Atlantic/Reykjavik" - }, - "Hawaiian Standard Time": { - aliasTo: "Pacific/Honolulu" - }, - "India Standard Time": { - aliasTo: "Asia/Calcutta" - }, - "Iran Standard Time": { - aliasTo: "Asia/Tehran" - }, - "Israel Standard Time": { - aliasTo: "Asia/Jerusalem" - }, - "Jordan Standard Time": { - aliasTo: "Asia/Amman" - }, - "Kaliningrad Standard Time": { - aliasTo: "Europe/Kaliningrad" - }, - "Korea Standard Time": { - aliasTo: "Asia/Seoul" - }, - "Libya Standard Time": { - aliasTo: "Africa/Tripoli" - }, - "Line Islands Standard Time": { - aliasTo: "Pacific/Kiritimati" - }, - "Magadan Standard Time": { - aliasTo: "Asia/Magadan" - }, - "Mauritius Standard Time": { - aliasTo: "Indian/Mauritius" - }, - "Middle East Standard Time": { - aliasTo: "Asia/Beirut" - }, - "Montevideo Standard Time": { - aliasTo: "America/Montevideo" - }, - "Morocco Standard Time": { - aliasTo: "Africa/Casablanca" - }, - "Mountain Standard Time": { - aliasTo: "America/Denver" - }, - "Mountain Standard Time (Mexico)": { - aliasTo: "America/Chihuahua" - }, - "Myanmar Standard Time": { - aliasTo: "Asia/Rangoon" - }, - "N. Central Asia Standard Time": { - aliasTo: "Asia/Novosibirsk" - }, - "Namibia Standard Time": { - aliasTo: "Africa/Windhoek" - }, - "Nepal Standard Time": { - aliasTo: "Asia/Katmandu" - }, - "New Zealand Standard Time": { - aliasTo: "Pacific/Auckland" - }, - "Newfoundland Standard Time": { - aliasTo: "America/St_Johns" - }, - "North Asia East Standard Time": { - aliasTo: "Asia/Irkutsk" - }, - "North Asia Standard Time": { - aliasTo: "Asia/Krasnoyarsk" - }, - "Pacific SA Standard Time": { - aliasTo: "America/Santiago" - }, - "Pacific Standard Time": { - aliasTo: "America/Los_Angeles" - }, - "Pacific Standard Time (Mexico)": { - aliasTo: "America/Santa_Isabel" - }, - "Pacific/Johnston": { - aliasTo: "Pacific/Honolulu" - }, - "Pakistan Standard Time": { - aliasTo: "Asia/Karachi" - }, - "Paraguay Standard Time": { - aliasTo: "America/Asuncion" - }, - "Romance Standard Time": { - aliasTo: "Europe/Paris" - }, - "Russia Time Zone 10": { - aliasTo: "Asia/Srednekolymsk" - }, - "Russia Time Zone 11": { - aliasTo: "Asia/Kamchatka" - }, - "Russia Time Zone 3": { - aliasTo: "Europe/Samara" - }, - "Russian Standard Time": { - aliasTo: "Europe/Moscow" - }, - "SA Eastern Standard Time": { - aliasTo: "America/Cayenne" - }, - "SA Pacific Standard Time": { - aliasTo: "America/Bogota" - }, - "SA Western Standard Time": { - aliasTo: "America/La_Paz" - }, - "SE Asia Standard Time": { - aliasTo: "Asia/Bangkok" - }, - "Samoa Standard Time": { - aliasTo: "Pacific/Apia" - }, - "Singapore Standard Time": { - aliasTo: "Asia/Singapore" - }, - "South Africa Standard Time": { - aliasTo: "Africa/Johannesburg" - }, - "Sri Lanka Standard Time": { - aliasTo: "Asia/Colombo" - }, - "Syria Standard Time": { - aliasTo: "Asia/Damascus" - }, - "Taipei Standard Time": { - aliasTo: "Asia/Taipei" - }, - "Tasmania Standard Time": { - aliasTo: "Australia/Hobart" - }, - "Tokyo Standard Time": { - aliasTo: "Asia/Tokyo" - }, - "Tonga Standard Time": { - aliasTo: "Pacific/Tongatapu" - }, - "Turkey Standard Time": { - aliasTo: "Europe/Istanbul" - }, - UCT: { - aliasTo: "UTC" - }, - "US Eastern Standard Time": { - aliasTo: "America/Indiana/Indianapolis" - }, - "US Mountain Standard Time": { - aliasTo: "America/Phoenix" - }, - "US/Central": { - aliasTo: "America/Chicago" - }, - "US/Eastern": { - aliasTo: "America/New_York" - }, - "US/Mountain": { - aliasTo: "America/Denver" - }, - "US/Pacific": { - aliasTo: "America/Los_Angeles" - }, - "US/Pacific-New": { - aliasTo: "America/Los_Angeles" - }, - "Ulaanbaatar Standard Time": { - aliasTo: "Asia/Ulaanbaatar" - }, - Universal: { - aliasTo: "UTC" - }, - "Venezuela Standard Time": { - aliasTo: "America/Caracas" - }, - "Vladivostok Standard Time": { - aliasTo: "Asia/Vladivostok" - }, - "W. Australia Standard Time": { - aliasTo: "Australia/Perth" - }, - "W. Central Africa Standard Time": { - aliasTo: "Africa/Lagos" - }, - "W. Europe Standard Time": { - aliasTo: "Europe/Berlin" - }, - "West Asia Standard Time": { - aliasTo: "Asia/Tashkent" - }, - "West Pacific Standard Time": { - aliasTo: "Pacific/Port_Moresby" - }, - "Yakutsk Standard Time": { - aliasTo: "Asia/Yakutsk" - }, - Z: { - aliasTo: "UTC" - }, - Zulu: { - aliasTo: "UTC" - }, - utc: { - aliasTo: "UTC" - } -}; -var zones = { - "Africa/Abidjan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0051900", - longitude: "-0040200" - }, - "Africa/Accra": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0053300", - longitude: "+0001300" - }, - "Africa/Addis_Ababa": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0090200", - longitude: "+0384200" - }, - "Africa/Algiers": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0364700", - longitude: "+0030300" - }, - "Africa/Asmara": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0152000", - longitude: "+0385300" - }, - "Africa/Bamako": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0123900", - longitude: "-0080000" - }, - "Africa/Bangui": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0042200", - longitude: "+0183500" - }, - "Africa/Banjul": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0132800", - longitude: "-0163900" - }, - "Africa/Bissau": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0115100", - longitude: "-0153500" - }, - "Africa/Blantyre": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0154700", - longitude: "+0350000" - }, - "Africa/Brazzaville": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0041600", - longitude: "+0151700" - }, - "Africa/Bujumbura": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0032300", - longitude: "+0292200" - }, - "Africa/Cairo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0300300", - longitude: "+0311500" - }, - "Africa/Casablanca": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:+01\r\nDTSTART:20180325T020000\r\nRDATE:20180325T020000\r\nRDATE:20180617T020000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:20180513T030000\r\nRDATE:20180513T030000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:+01\r\nDTSTART:20190609T020000\r\nRDATE:20190609T020000\r\nRDATE:20200524T020000\r\nRDATE:20210516T020000\r\nRDATE:20220508T020000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:+01\r\nDTSTART:20181028T030000\r\nRDATE:20181028T030000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:20190505T030000\r\nRDATE:20190505T030000\r\nRDATE:20200419T030000\r\nRDATE:20210411T030000\r\nRDATE:20220327T030000\r\nEND:DAYLIGHT" - ], - latitude: "+0333900", - longitude: "-0073500" - }, - "Africa/Ceuta": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0355300", - longitude: "-0051900" - }, - "Africa/Conakry": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0093100", - longitude: "-0134300" - }, - "Africa/Dakar": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0144000", - longitude: "-0172600" - }, - "Africa/Dar_es_Salaam": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0064800", - longitude: "+0391700" - }, - "Africa/Djibouti": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0113600", - longitude: "+0430900" - }, - "Africa/Douala": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0040300", - longitude: "+0094200" - }, - "Africa/El_Aaiun": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:+01\r\nDTSTART:20180325T020000\r\nRDATE:20180325T020000\r\nRDATE:20180617T020000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:20180513T030000\r\nRDATE:20180513T030000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:+01\r\nDTSTART:20181028T030000\r\nRDATE:20181028T030000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:20190505T030000\r\nRDATE:20190505T030000\r\nRDATE:20200419T030000\r\nRDATE:20210411T030000\r\nRDATE:20220327T030000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:+01\r\nDTSTART:20190609T020000\r\nRDATE:20190609T020000\r\nRDATE:20200524T020000\r\nRDATE:20210516T020000\r\nRDATE:20220508T020000\r\nEND:STANDARD" - ], - latitude: "+0270900", - longitude: "-0131200" - }, - "Africa/Freetown": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0083000", - longitude: "-0131500" - }, - "Africa/Gaborone": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0243900", - longitude: "+0255500" - }, - "Africa/Harare": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0175000", - longitude: "+0310300" - }, - "Africa/Johannesburg": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:SAST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0261500", - longitude: "+0280000" - }, - "Africa/Juba": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0045100", - longitude: "+0313700" - }, - "Africa/Kampala": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0001900", - longitude: "+0322500" - }, - "Africa/Khartoum": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0153600", - longitude: "+0323200" - }, - "Africa/Kigali": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0015700", - longitude: "+0300400" - }, - "Africa/Kinshasa": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0041800", - longitude: "+0151800" - }, - "Africa/Lagos": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0062700", - longitude: "+0032400" - }, - "Africa/Libreville": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0002300", - longitude: "+0092700" - }, - "Africa/Lome": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0060800", - longitude: "+0011300" - }, - "Africa/Luanda": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0084800", - longitude: "+0131400" - }, - "Africa/Lubumbashi": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0114000", - longitude: "+0272800" - }, - "Africa/Lusaka": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0152500", - longitude: "+0281700" - }, - "Africa/Malabo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0034500", - longitude: "+0084700" - }, - "Africa/Maputo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0255800", - longitude: "+0323500" - }, - "Africa/Maseru": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:SAST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0292800", - longitude: "+0273000" - }, - "Africa/Mbabane": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:SAST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0261800", - longitude: "+0310600" - }, - "Africa/Mogadishu": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0020400", - longitude: "+0452200" - }, - "Africa/Monrovia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0061800", - longitude: "-0104700" - }, - "Africa/Nairobi": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0011700", - longitude: "+0364900" - }, - "Africa/Ndjamena": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0120700", - longitude: "+0150300" - }, - "Africa/Niamey": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0133100", - longitude: "+0020700" - }, - "Africa/Nouakchott": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0180600", - longitude: "-0155700" - }, - "Africa/Ouagadougou": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0122200", - longitude: "-0013100" - }, - "Africa/Porto-Novo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0062900", - longitude: "+0023700" - }, - "Africa/Sao_Tome": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:WAT\r\nDTSTART:20180101T010000\r\nRDATE:20180101T010000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:20190101T020000\r\nRDATE:20190101T020000\r\nEND:STANDARD" - ], - latitude: "+0002000", - longitude: "+0064400" - }, - "Africa/Tripoli": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0325400", - longitude: "+0131100" - }, - "Africa/Tunis": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0364800", - longitude: "+0101100" - }, - "Africa/Windhoek": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:CAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0223400", - longitude: "+0170600" - }, - "America/Adak": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-1000\r\nTZOFFSETTO:-0900\r\nTZNAME:HDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-1000\r\nTZNAME:HST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0515248", - longitude: "-1763929" - }, - "America/Anchorage": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0800\r\nTZNAME:AKDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0611305", - longitude: "-1495401" - }, - "America/Anguilla": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0181200", - longitude: "-0630400" - }, - "America/Antigua": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0170300", - longitude: "-0614800" - }, - "America/Araguaina": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0071200", - longitude: "-0481200" - }, - "America/Argentina/Buenos_Aires": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0343600", - longitude: "-0582700" - }, - "America/Argentina/Catamarca": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0282800", - longitude: "-0654700" - }, - "America/Argentina/Cordoba": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0312400", - longitude: "-0641100" - }, - "America/Argentina/Jujuy": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0241100", - longitude: "-0651800" - }, - "America/Argentina/La_Rioja": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0292600", - longitude: "-0665100" - }, - "America/Argentina/Mendoza": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0325300", - longitude: "-0684900" - }, - "America/Argentina/Rio_Gallegos": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0513800", - longitude: "-0691300" - }, - "America/Argentina/Salta": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0244700", - longitude: "-0652500" - }, - "America/Argentina/San_Juan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0313200", - longitude: "-0683100" - }, - "America/Argentina/San_Luis": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0331900", - longitude: "-0662100" - }, - "America/Argentina/Tucuman": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0264900", - longitude: "-0651300" - }, - "America/Argentina/Ushuaia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0544800", - longitude: "-0681800" - }, - "America/Aruba": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0123000", - longitude: "-0695800" - }, - "America/Asuncion": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19701004T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700322T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=4SU\r\nEND:STANDARD" - ], - latitude: "-0251600", - longitude: "-0574000" - }, - "America/Atikokan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0484531", - longitude: "-0913718" - }, - "America/Bahia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0125900", - longitude: "-0383100" - }, - "America/Bahia_Banderas": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:DAYLIGHT" - ], - latitude: "+0204800", - longitude: "-1051500" - }, - "America/Barbados": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0130600", - longitude: "-0593700" - }, - "America/Belem": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0012700", - longitude: "-0482900" - }, - "America/Belize": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0173000", - longitude: "-0881200" - }, - "America/Blanc-Sablon": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0512500", - longitude: "-0570700" - }, - "America/Boa_Vista": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0024900", - longitude: "-0604000" - }, - "America/Bogota": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0043600", - longitude: "-0740500" - }, - "America/Boise": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0433649", - longitude: "-1161209" - }, - "America/Cambridge_Bay": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0690650", - longitude: "-1050310" - }, - "America/Campo_Grande": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:20181104T000000\r\nRDATE:20181104T000000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:20180218T000000\r\nRDATE:20180218T000000\r\nRDATE:20190217T000000\r\nEND:STANDARD" - ], - latitude: "-0202700", - longitude: "-0543700" - }, - "America/Cancun": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0210500", - longitude: "-0864600" - }, - "America/Caracas": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0103000", - longitude: "-0665600" - }, - "America/Cayenne": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0045600", - longitude: "-0522000" - }, - "America/Cayman": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0191800", - longitude: "-0812300" - }, - "America/Chicago": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0415100", - longitude: "-0873900" - }, - "America/Chihuahua": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0283800", - longitude: "-1060500" - }, - "America/Costa_Rica": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0095600", - longitude: "-0840500" - }, - "America/Creston": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0490600", - longitude: "-1163100" - }, - "America/Cuiaba": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:20181104T000000\r\nRDATE:20181104T000000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:20180218T000000\r\nRDATE:20180218T000000\r\nRDATE:20190217T000000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0153500", - longitude: "-0560500" - }, - "America/Curacao": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0121100", - longitude: "-0690000" - }, - "America/Danmarkshavn": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0764600", - longitude: "-0184000" - }, - "America/Dawson": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0640400", - longitude: "-1392500" - }, - "America/Dawson_Creek": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0594600", - longitude: "-1201400" - }, - "America/Denver": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0394421", - longitude: "-1045903" - }, - "America/Detroit": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0421953", - longitude: "-0830245" - }, - "America/Dominica": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0151800", - longitude: "-0612400" - }, - "America/Edmonton": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0533300", - longitude: "-1132800" - }, - "America/Eirunepe": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0064000", - longitude: "-0695200" - }, - "America/El_Salvador": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0134200", - longitude: "-0891200" - }, - "America/Fort_Nelson": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0584800", - longitude: "-1224200" - }, - "America/Fortaleza": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0034300", - longitude: "-0383000" - }, - "America/Glace_Bay": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:ADT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0461200", - longitude: "-0595700" - }, - "America/Godthab": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0200\r\nTZNAME:-02\r\nDTSTART:19700328T220000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0200\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19701024T230000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA\r\nEND:STANDARD" - ], - latitude: "+0641100", - longitude: "-0514400" - }, - "America/Goose_Bay": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:ADT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT" - ], - latitude: "+0532000", - longitude: "-0602500" - }, - "America/Grand_Turk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:20181104T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:20190310T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:20180311T020000\r\nRDATE:20180311T020000\r\nEND:DAYLIGHT" - ], - latitude: "+0212800", - longitude: "-0710800" - }, - "America/Grenada": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0120300", - longitude: "-0614500" - }, - "America/Guadeloupe": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0161400", - longitude: "-0613200" - }, - "America/Guatemala": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0143800", - longitude: "-0903100" - }, - "America/Guayaquil": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0021000", - longitude: "-0795000" - }, - "America/Guyana": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0064800", - longitude: "-0581000" - }, - "America/Halifax": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:ADT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0443900", - longitude: "-0633600" - }, - "America/Havana": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:CST\r\nDTSTART:19701101T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:CDT\r\nDTSTART:19700308T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT" - ], - latitude: "+0230800", - longitude: "-0822200" - }, - "America/Hermosillo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0290400", - longitude: "-1105800" - }, - "America/Indiana/Indianapolis": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0394606", - longitude: "-0860929" - }, - "America/Indiana/Knox": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0411745", - longitude: "-0863730" - }, - "America/Indiana/Marengo": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0382232", - longitude: "-0862041" - }, - "America/Indiana/Petersburg": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0382931", - longitude: "-0871643" - }, - "America/Indiana/Tell_City": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0375711", - longitude: "-0864541" - }, - "America/Indiana/Vevay": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0384452", - longitude: "-0850402" - }, - "America/Indiana/Vincennes": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0384038", - longitude: "-0873143" - }, - "America/Indiana/Winamac": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT" - ], - latitude: "+0410305", - longitude: "-0863611" - }, - "America/Inuvik": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0682059", - longitude: "-1334300" - }, - "America/Iqaluit": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0634400", - longitude: "-0682800" - }, - "America/Jamaica": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0175805", - longitude: "-0764736" - }, - "America/Juneau": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0800\r\nTZNAME:AKDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0581807", - longitude: "-1342511" - }, - "America/Kentucky/Louisville": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0381515", - longitude: "-0854534" - }, - "America/Kentucky/Monticello": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0364947", - longitude: "-0845057" - }, - "America/Kralendijk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0120903", - longitude: "-0681636" - }, - "America/La_Paz": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0163000", - longitude: "-0680900" - }, - "America/Lima": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0120300", - longitude: "-0770300" - }, - "America/Los_Angeles": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0340308", - longitude: "-1181434" - }, - "America/Lower_Princes": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0180305", - longitude: "-0630250" - }, - "America/Maceio": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0094000", - longitude: "-0354300" - }, - "America/Managua": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0120900", - longitude: "-0861700" - }, - "America/Manaus": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0030800", - longitude: "-0600100" - }, - "America/Marigot": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0180400", - longitude: "-0630500" - }, - "America/Martinique": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0143600", - longitude: "-0610500" - }, - "America/Matamoros": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0255000", - longitude: "-0973000" - }, - "America/Mazatlan": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0231300", - longitude: "-1062500" - }, - "America/Menominee": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0450628", - longitude: "-0873651" - }, - "America/Merida": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0205800", - longitude: "-0893700" - }, - "America/Metlakatla": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0800\r\nTZNAME:AKDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:20191103T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:20181104T020000\r\nRDATE:20181104T020000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:20190120T020000\r\nRDATE:20190120T020000\r\nEND:STANDARD" - ], - latitude: "+0550737", - longitude: "-1313435" - }, - "America/Mexico_City": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0192400", - longitude: "-0990900" - }, - "America/Miquelon": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0200\r\nTZNAME:-02\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0200\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0470300", - longitude: "-0562000" - }, - "America/Moncton": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:ADT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0460600", - longitude: "-0644700" - }, - "America/Monterrey": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0254000", - longitude: "-1001900" - }, - "America/Montevideo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0345433", - longitude: "-0561245" - }, - "America/Montserrat": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0164300", - longitude: "-0621300" - }, - "America/Nassau": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0250500", - longitude: "-0772100" - }, - "America/New_York": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0404251", - longitude: "-0740023" - }, - "America/Nipigon": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0490100", - longitude: "-0881600" - }, - "America/Nome": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0800\r\nTZNAME:AKDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0643004", - longitude: "-1652423" - }, - "America/Noronha": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0200\r\nTZOFFSETTO:-0200\r\nTZNAME:-02\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0035100", - longitude: "-0322500" - }, - "America/North_Dakota/Beulah": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0471551", - longitude: "-1014640" - }, - "America/North_Dakota/Center": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0470659", - longitude: "-1011757" - }, - "America/North_Dakota/New_Salem": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0465042", - longitude: "-1012439" - }, - "America/Ojinaga": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0293400", - longitude: "-1042500" - }, - "America/Panama": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0085800", - longitude: "-0793200" - }, - "America/Pangnirtung": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0660800", - longitude: "-0654400" - }, - "America/Paramaribo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0055000", - longitude: "-0551000" - }, - "America/Phoenix": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0332654", - longitude: "-1120424" - }, - "America/Port-au-Prince": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0183200", - longitude: "-0722000" - }, - "America/Port_of_Spain": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0103900", - longitude: "-0613100" - }, - "America/Porto_Velho": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0084600", - longitude: "-0635400" - }, - "America/Puerto_Rico": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0182806", - longitude: "-0660622" - }, - "America/Punta_Arenas": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0530900", - longitude: "-0705500" - }, - "America/Rainy_River": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0484300", - longitude: "-0943400" - }, - "America/Rankin_Inlet": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0624900", - longitude: "-0920459" - }, - "America/Recife": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0080300", - longitude: "-0345400" - }, - "America/Regina": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0502400", - longitude: "-1043900" - }, - "America/Resolute": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT" - ], - latitude: "+0744144", - longitude: "-0944945" - }, - "America/Rio_Branco": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0095800", - longitude: "-0674800" - }, - "America/Santarem": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0022600", - longitude: "-0545200" - }, - "America/Santiago": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:20190407T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:20190908T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=9;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:20180812T000000\r\nRDATE:20180812T000000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:-04\r\nDTSTART:20180513T000000\r\nRDATE:20180513T000000\r\nEND:STANDARD" - ], - latitude: "-0332700", - longitude: "-0704000" - }, - "America/Santo_Domingo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0182800", - longitude: "-0695400" - }, - "America/Sao_Paulo": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0200\r\nTZNAME:-02\r\nDTSTART:20181104T000000\r\nRDATE:20181104T000000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0200\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:20180218T000000\r\nRDATE:20180218T000000\r\nRDATE:20190217T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0200\r\nTZOFFSETTO:-0200\r\nTZNAME:-02\r\nDTSTART:19700101T000000\r\nEND:DAYLIGHT" - ], - latitude: "-0233200", - longitude: "-0463700" - }, - "America/Scoresbysund": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:19700329T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:-0100\r\nTZNAME:-01\r\nDTSTART:19701025T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0702900", - longitude: "-0215800" - }, - "America/Sitka": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0800\r\nTZNAME:AKDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0571035", - longitude: "-1351807" - }, - "America/St_Barthelemy": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0175300", - longitude: "-0625100" - }, - "America/St_Johns": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0230\r\nTZOFFSETTO:-0330\r\nTZNAME:NST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0330\r\nTZOFFSETTO:-0230\r\nTZNAME:NDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT" - ], - latitude: "+0473400", - longitude: "-0524300" - }, - "America/St_Kitts": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0171800", - longitude: "-0624300" - }, - "America/St_Lucia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0140100", - longitude: "-0610000" - }, - "America/St_Thomas": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0182100", - longitude: "-0645600" - }, - "America/St_Vincent": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0130900", - longitude: "-0611400" - }, - "America/Swift_Current": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0501700", - longitude: "-1075000" - }, - "America/Tegucigalpa": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0140600", - longitude: "-0871300" - }, - "America/Thule": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:ADT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0763400", - longitude: "-0684700" - }, - "America/Thunder_Bay": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0482300", - longitude: "-0891500" - }, - "America/Tijuana": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0323200", - longitude: "-1170100" - }, - "America/Toronto": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nTZNAME:EDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nTZNAME:EST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0433900", - longitude: "-0792300" - }, - "America/Tortola": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0182700", - longitude: "-0643700" - }, - "America/Vancouver": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0491600", - longitude: "-1230700" - }, - "America/Whitehorse": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0604300", - longitude: "-1350300" - }, - "America/Winnipeg": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:CDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:CST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0495300", - longitude: "-0970900" - }, - "America/Yakutat": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0800\r\nTZNAME:AKDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0900\r\nTZNAME:AKST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0593249", - longitude: "-1394338" - }, - "America/Yellowknife": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0600\r\nTZNAME:MDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0700\r\nTZNAME:MST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0622700", - longitude: "-1142100" - }, - "Antarctica/Casey": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:20180311T040000\r\nRDATE:20180311T040000\r\nEND:STANDARD" - ], - latitude: "-0661700", - longitude: "+1103100" - }, - "Antarctica/Davis": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0683500", - longitude: "+0775800" - }, - "Antarctica/DumontDUrville": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:+10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0664000", - longitude: "+1400100" - }, - "Antarctica/Macquarie": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0543000", - longitude: "+1585700" - }, - "Antarctica/Mawson": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0673600", - longitude: "+0625300" - }, - "Antarctica/McMurdo": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1300\r\nTZNAME:NZDT\r\nDTSTART:19700927T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1200\r\nTZNAME:NZST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "-0775000", - longitude: "+1663600" - }, - "Antarctica/Palmer": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0644800", - longitude: "-0640600" - }, - "Antarctica/Rothera": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0673400", - longitude: "-0680800" - }, - "Antarctica/Syowa": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0690022", - longitude: "+0393524" - }, - "Antarctica/Troll": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0200\r\nTZNAME:+02\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "-0720041", - longitude: "+0023206" - }, - "Antarctica/Vostok": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0782400", - longitude: "+1065400" - }, - "Arctic/Longyearbyen": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0780000", - longitude: "+0160000" - }, - "Asia/Aden": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0124500", - longitude: "+0451200" - }, - "Asia/Almaty": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0431500", - longitude: "+0765700" - }, - "Asia/Amman": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700326T235959\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1TH\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701030T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\r\nEND:STANDARD" - ], - latitude: "+0315700", - longitude: "+0355600" - }, - "Asia/Anadyr": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0644500", - longitude: "+1772900" - }, - "Asia/Aqtau": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0443100", - longitude: "+0501600" - }, - "Asia/Aqtobe": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0501700", - longitude: "+0571000" - }, - "Asia/Ashgabat": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0375700", - longitude: "+0582300" - }, - "Asia/Atyrau": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0470700", - longitude: "+0515600" - }, - "Asia/Baghdad": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0332100", - longitude: "+0442500" - }, - "Asia/Bahrain": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0262300", - longitude: "+0503500" - }, - "Asia/Baku": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0402300", - longitude: "+0495100" - }, - "Asia/Bangkok": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0134500", - longitude: "+1003100" - }, - "Asia/Barnaul": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0532200", - longitude: "+0834500" - }, - "Asia/Beirut": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0335300", - longitude: "+0353000" - }, - "Asia/Bishkek": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0425400", - longitude: "+0743600" - }, - "Asia/Brunei": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0045600", - longitude: "+1145500" - }, - "Asia/Chita": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:+09\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0520300", - longitude: "+1132800" - }, - "Asia/Choibalsan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0480400", - longitude: "+1143000" - }, - "Asia/Colombo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0530\r\nTZOFFSETTO:+0530\r\nTZNAME:+0530\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0065600", - longitude: "+0795100" - }, - "Asia/Damascus": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701030T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700327T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\r\nEND:DAYLIGHT" - ], - latitude: "+0333000", - longitude: "+0361800" - }, - "Asia/Dhaka": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0234300", - longitude: "+0902500" - }, - "Asia/Dili": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:+09\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0083300", - longitude: "+1253500" - }, - "Asia/Dubai": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0251800", - longitude: "+0551800" - }, - "Asia/Dushanbe": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0383500", - longitude: "+0684800" - }, - "Asia/Famagusta": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:20180325T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT" - ], - latitude: "+0350700", - longitude: "+0335700" - }, - "Asia/Gaza": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701031T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:20190329T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\r\nEND:DAYLIGHT", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:20180324T010000\r\nRDATE:20180324T010000\r\nEND:DAYLIGHT" - ], - latitude: "+0313000", - longitude: "+0342800" - }, - "Asia/Hebron": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701031T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:20190329T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1FR\r\nEND:DAYLIGHT", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:20180324T010000\r\nRDATE:20180324T010000\r\nEND:DAYLIGHT" - ], - latitude: "+0313200", - longitude: "+0350542" - }, - "Asia/Ho_Chi_Minh": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0104500", - longitude: "+1064000" - }, - "Asia/Hong_Kong": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:HKT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0221700", - longitude: "+1140900" - }, - "Asia/Hovd": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0480100", - longitude: "+0913900" - }, - "Asia/Irkutsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0521600", - longitude: "+1042000" - }, - "Asia/Istanbul": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0410100", - longitude: "+0285800" - }, - "Asia/Jakarta": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:WIB\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0061000", - longitude: "+1064800" - }, - "Asia/Jayapura": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:WIT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0023200", - longitude: "+1404200" - }, - "Asia/Jerusalem": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:IDT\r\nDTSTART:19700327T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=FR\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:IST\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0314650", - longitude: "+0351326" - }, - "Asia/Kabul": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0430\r\nTZOFFSETTO:+0430\r\nTZNAME:+0430\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0343100", - longitude: "+0691200" - }, - "Asia/Kamchatka": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0530100", - longitude: "+1583900" - }, - "Asia/Karachi": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:PKT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0245200", - longitude: "+0670300" - }, - "Asia/Kathmandu": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0545\r\nTZOFFSETTO:+0545\r\nTZNAME:+0545\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0274300", - longitude: "+0851900" - }, - "Asia/Khandyga": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:+09\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0623923", - longitude: "+1353314" - }, - "Asia/Kolkata": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0530\r\nTZOFFSETTO:+0530\r\nTZNAME:IST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0223200", - longitude: "+0882200" - }, - "Asia/Krasnoyarsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0560100", - longitude: "+0925000" - }, - "Asia/Kuala_Lumpur": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0031000", - longitude: "+1014200" - }, - "Asia/Kuching": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0013300", - longitude: "+1102000" - }, - "Asia/Kuwait": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0292000", - longitude: "+0475900" - }, - "Asia/Macau": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0221150", - longitude: "+1133230" - }, - "Asia/Magadan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0593400", - longitude: "+1504800" - }, - "Asia/Makassar": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:WITA\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0050700", - longitude: "+1192400" - }, - "Asia/Manila": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:PST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0143500", - longitude: "+1210000" - }, - "Asia/Muscat": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0233600", - longitude: "+0583500" - }, - "Asia/Nicosia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT" - ], - latitude: "+0351000", - longitude: "+0332200" - }, - "Asia/Novokuznetsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0534500", - longitude: "+0870700" - }, - "Asia/Novosibirsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0550200", - longitude: "+0825500" - }, - "Asia/Omsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0550000", - longitude: "+0732400" - }, - "Asia/Oral": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0511300", - longitude: "+0512100" - }, - "Asia/Phnom_Penh": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0113300", - longitude: "+1045500" - }, - "Asia/Pontianak": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:WIB\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0000200", - longitude: "+1092000" - }, - "Asia/Pyongyang": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0830\r\nTZNAME:KST\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0830\r\nTZOFFSETTO:+0900\r\nTZNAME:KST\r\nDTSTART:20180504T233000\r\nRDATE:20180504T233000\r\nEND:STANDARD" - ], - latitude: "+0390100", - longitude: "+1254500" - }, - "Asia/Qatar": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0251700", - longitude: "+0513200" - }, - "Asia/Qostanay": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0531200", - longitude: "+0633700" - }, - "Asia/Qyzylorda": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:20181221T000000\r\nRDATE:20181221T000000\r\nEND:STANDARD" - ], - latitude: "+0444800", - longitude: "+0652800" - }, - "Asia/Riyadh": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0243800", - longitude: "+0464300" - }, - "Asia/Sakhalin": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0465800", - longitude: "+1424200" - }, - "Asia/Samarkand": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0394000", - longitude: "+0664800" - }, - "Asia/Seoul": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:KST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0373300", - longitude: "+1265800" - }, - "Asia/Shanghai": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0311400", - longitude: "+1212800" - }, - "Asia/Singapore": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0011700", - longitude: "+1035100" - }, - "Asia/Srednekolymsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0672800", - longitude: "+1534300" - }, - "Asia/Taipei": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:CST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0250300", - longitude: "+1213000" - }, - "Asia/Tashkent": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0412000", - longitude: "+0691800" - }, - "Asia/Tbilisi": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0414300", - longitude: "+0444900" - }, - "Asia/Tehran": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0330\r\nTZNAME:+0330\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0330\r\nTZOFFSETTO:+0430\r\nTZNAME:+0430\r\nDTSTART:20180321T235959\r\nRDATE:20180321T235959\r\nRDATE:20190321T235959\r\nRDATE:20200320T235959\r\nRDATE:20210321T235959\r\nRDATE:20220321T235959\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0430\r\nTZOFFSETTO:+0330\r\nTZNAME:+0330\r\nDTSTART:20180921T235959\r\nRDATE:20180921T235959\r\nRDATE:20190921T235959\r\nRDATE:20200920T235959\r\nRDATE:20210921T235959\r\nRDATE:20220921T235959\r\nEND:STANDARD" - ], - latitude: "+0354000", - longitude: "+0512600" - }, - "Asia/Thimphu": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0272800", - longitude: "+0893900" - }, - "Asia/Tokyo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:JST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0353916", - longitude: "+1394441" - }, - "Asia/Tomsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0563000", - longitude: "+0845800" - }, - "Asia/Ulaanbaatar": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:+08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0475500", - longitude: "+1065300" - }, - "Asia/Urumqi": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0434800", - longitude: "+0873500" - }, - "Asia/Ust-Nera": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:+10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0643337", - longitude: "+1431336" - }, - "Asia/Vientiane": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0175800", - longitude: "+1023600" - }, - "Asia/Vladivostok": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:+10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0431000", - longitude: "+1315600" - }, - "Asia/Yakutsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:+09\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0620000", - longitude: "+1294000" - }, - "Asia/Yangon": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0630\r\nTZOFFSETTO:+0630\r\nTZNAME:+0630\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0164700", - longitude: "+0961000" - }, - "Asia/Yekaterinburg": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0565100", - longitude: "+0603600" - }, - "Asia/Yerevan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0401100", - longitude: "+0443000" - }, - "Atlantic/Azores": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0100\r\nTZOFFSETTO:+0000\r\nTZNAME:+00\r\nDTSTART:19700329T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:-0100\r\nTZNAME:-01\r\nDTSTART:19701025T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0374400", - longitude: "-0254000" - }, - "Atlantic/Bermuda": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0300\r\nTZNAME:ADT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0400\r\nTZNAME:AST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "+0321700", - longitude: "-0644600" - }, - "Atlantic/Canary": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:WEST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:WET\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0280600", - longitude: "-0152400" - }, - "Atlantic/Cape_Verde": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0100\r\nTZOFFSETTO:-0100\r\nTZNAME:-01\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0145500", - longitude: "-0233100" - }, - "Atlantic/Faroe": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:WEST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:WET\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0620100", - longitude: "-0064600" - }, - "Atlantic/Madeira": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:WEST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:WET\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0323800", - longitude: "-0165400" - }, - "Atlantic/Reykjavik": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0640900", - longitude: "-0215100" - }, - "Atlantic/South_Georgia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0200\r\nTZOFFSETTO:-0200\r\nTZNAME:-02\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0541600", - longitude: "-0363200" - }, - "Atlantic/St_Helena": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0155500", - longitude: "-0054200" - }, - "Atlantic/Stanley": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0300\r\nTZOFFSETTO:-0300\r\nTZNAME:-03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0514200", - longitude: "-0575100" - }, - "Australia/Adelaide": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1030\r\nTZOFFSETTO:+0930\r\nTZNAME:ACST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0930\r\nTZOFFSETTO:+1030\r\nTZNAME:ACDT\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT" - ], - latitude: "-0345500", - longitude: "+1383500" - }, - "Australia/Brisbane": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:AEST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0272800", - longitude: "+1530200" - }, - "Australia/Broken_Hill": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1030\r\nTZOFFSETTO:+0930\r\nTZNAME:ACST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0930\r\nTZOFFSETTO:+1030\r\nTZNAME:ACDT\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT" - ], - latitude: "-0315700", - longitude: "+1412700" - }, - "Australia/Currie": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nTZNAME:AEDT\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nTZNAME:AEST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "-0395600", - longitude: "+1435200" - }, - "Australia/Darwin": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0930\r\nTZOFFSETTO:+0930\r\nTZNAME:ACST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0122800", - longitude: "+1305000" - }, - "Australia/Eucla": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0845\r\nTZOFFSETTO:+0845\r\nTZNAME:+0845\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0314300", - longitude: "+1285200" - }, - "Australia/Hobart": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nTZNAME:AEDT\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nTZNAME:AEST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "-0425300", - longitude: "+1471900" - }, - "Australia/Lindeman": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:AEST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0201600", - longitude: "+1490000" - }, - "Australia/Lord_Howe": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1030\r\nTZNAME:+1030\r\nDTSTART:19700405T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1030\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT" - ], - latitude: "-0313300", - longitude: "+1590500" - }, - "Australia/Melbourne": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nTZNAME:AEST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nTZNAME:AEDT\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT" - ], - latitude: "-0374900", - longitude: "+1445800" - }, - "Australia/Perth": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0800\r\nTZOFFSETTO:+0800\r\nTZNAME:AWST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0315700", - longitude: "+1155100" - }, - "Australia/Sydney": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nTZNAME:AEST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nTZNAME:AEDT\r\nDTSTART:19701004T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT" - ], - latitude: "-0335200", - longitude: "+1511300" - }, - "Europe/Amsterdam": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0522200", - longitude: "+0045400" - }, - "Europe/Andorra": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0423000", - longitude: "+0013100" - }, - "Europe/Astrakhan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0462100", - longitude: "+0480300" - }, - "Europe/Athens": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0375800", - longitude: "+0234300" - }, - "Europe/Belgrade": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0445000", - longitude: "+0203000" - }, - "Europe/Berlin": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0523000", - longitude: "+0132200" - }, - "Europe/Bratislava": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0480900", - longitude: "+0170700" - }, - "Europe/Brussels": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0505000", - longitude: "+0042000" - }, - "Europe/Bucharest": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0442600", - longitude: "+0260600" - }, - "Europe/Budapest": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0473000", - longitude: "+0190500" - }, - "Europe/Busingen": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0474200", - longitude: "+0084100" - }, - "Europe/Chisinau": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0470000", - longitude: "+0285000" - }, - "Europe/Copenhagen": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0554000", - longitude: "+0123500" - }, - "Europe/Dublin": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:IST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:DAYLIGHT" - ], - latitude: "+0532000", - longitude: "-0061500" - }, - "Europe/Gibraltar": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0360800", - longitude: "-0052100" - }, - "Europe/Guernsey": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:BST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0492717", - longitude: "-0023210" - }, - "Europe/Helsinki": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0601000", - longitude: "+0245800" - }, - "Europe/Isle_of_Man": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:BST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0540900", - longitude: "-0042800" - }, - "Europe/Istanbul": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0410100", - longitude: "+0285800" - }, - "Europe/Jersey": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:BST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0491101", - longitude: "-0020624" - }, - "Europe/Kaliningrad": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0544300", - longitude: "+0203000" - }, - "Europe/Kiev": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0502600", - longitude: "+0303100" - }, - "Europe/Kirov": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0583600", - longitude: "+0493900" - }, - "Europe/Lisbon": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:WET\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:WEST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT" - ], - latitude: "+0384300", - longitude: "-0090800" - }, - "Europe/Ljubljana": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0460300", - longitude: "+0143100" - }, - "Europe/London": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0000\r\nTZOFFSETTO:+0100\r\nTZNAME:BST\r\nDTSTART:19700329T010000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0000\r\nTZNAME:GMT\r\nDTSTART:19701025T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0513030", - longitude: "+0000731" - }, - "Europe/Luxembourg": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0493600", - longitude: "+0060900" - }, - "Europe/Madrid": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0402400", - longitude: "-0034100" - }, - "Europe/Malta": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0355400", - longitude: "+0143100" - }, - "Europe/Mariehamn": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0600600", - longitude: "+0195700" - }, - "Europe/Minsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0535400", - longitude: "+0273400" - }, - "Europe/Monaco": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0434200", - longitude: "+0072300" - }, - "Europe/Moscow": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:MSK\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0554521", - longitude: "+0373704" - }, - "Europe/Nicosia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT" - ], - latitude: "+0351000", - longitude: "+0332200" - }, - "Europe/Oslo": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0595500", - longitude: "+0104500" - }, - "Europe/Paris": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0485200", - longitude: "+0022000" - }, - "Europe/Podgorica": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0422600", - longitude: "+0191600" - }, - "Europe/Prague": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0500500", - longitude: "+0142600" - }, - "Europe/Riga": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0565700", - longitude: "+0240600" - }, - "Europe/Rome": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0415400", - longitude: "+0122900" - }, - "Europe/Samara": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0531200", - longitude: "+0500900" - }, - "Europe/San_Marino": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0435500", - longitude: "+0122800" - }, - "Europe/Sarajevo": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0435200", - longitude: "+0182500" - }, - "Europe/Saratov": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0513400", - longitude: "+0460200" - }, - "Europe/Simferopol": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:MSK\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0445700", - longitude: "+0340600" - }, - "Europe/Skopje": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0415900", - longitude: "+0212600" - }, - "Europe/Sofia": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0424100", - longitude: "+0231900" - }, - "Europe/Stockholm": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0592000", - longitude: "+0180300" - }, - "Europe/Tallinn": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0592500", - longitude: "+0244500" - }, - "Europe/Tirane": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0412000", - longitude: "+0195000" - }, - "Europe/Ulyanovsk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0542000", - longitude: "+0482400" - }, - "Europe/Uzhgorod": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0483700", - longitude: "+0221800" - }, - "Europe/Vaduz": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0470900", - longitude: "+0093100" - }, - "Europe/Vatican": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0415408", - longitude: "+0122711" - }, - "Europe/Vienna": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0481300", - longitude: "+0162000" - }, - "Europe/Vilnius": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0544100", - longitude: "+0251900" - }, - "Europe/Volgograd": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:20181028T020000\r\nRDATE:20181028T020000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0300\r\nTZNAME:+03\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0484400", - longitude: "+0442500" - }, - "Europe/Warsaw": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0521500", - longitude: "+0210000" - }, - "Europe/Zagreb": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0454800", - longitude: "+0155800" - }, - "Europe/Zaporozhye": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700329T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701025T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0475000", - longitude: "+0351000" - }, - "Europe/Zurich": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nTZNAME:CEST\r\nDTSTART:19700329T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nTZNAME:CET\r\nDTSTART:19701025T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\nEND:STANDARD" - ], - latitude: "+0472300", - longitude: "+0083200" - }, - "Indian/Antananarivo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0185500", - longitude: "+0473100" - }, - "Indian/Chagos": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0600\r\nTZOFFSETTO:+0600\r\nTZNAME:+06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0072000", - longitude: "+0722500" - }, - "Indian/Christmas": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0700\r\nTZOFFSETTO:+0700\r\nTZNAME:+07\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0102500", - longitude: "+1054300" - }, - "Indian/Cocos": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0630\r\nTZOFFSETTO:+0630\r\nTZNAME:+0630\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0121000", - longitude: "+0965500" - }, - "Indian/Comoro": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0114100", - longitude: "+0431600" - }, - "Indian/Kerguelen": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0492110", - longitude: "+0701303" - }, - "Indian/Mahe": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0044000", - longitude: "+0552800" - }, - "Indian/Maldives": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0500\r\nTZOFFSETTO:+0500\r\nTZNAME:+05\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0041000", - longitude: "+0733000" - }, - "Indian/Mauritius": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0201000", - longitude: "+0573000" - }, - "Indian/Mayotte": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0300\r\nTZNAME:EAT\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0124700", - longitude: "+0451400" - }, - "Indian/Reunion": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0400\r\nTZOFFSETTO:+0400\r\nTZNAME:+04\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0205200", - longitude: "+0552800" - }, - "Pacific/Apia": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1400\r\nTZOFFSETTO:+1300\r\nTZNAME:+13\r\nDTSTART:19700405T040000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1400\r\nTZNAME:+14\r\nDTSTART:19700927T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\r\nEND:DAYLIGHT" - ], - latitude: "-0135000", - longitude: "-1714400" - }, - "Pacific/Auckland": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1300\r\nTZNAME:NZDT\r\nDTSTART:19700927T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1200\r\nTZNAME:NZST\r\nDTSTART:19700405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "-0365200", - longitude: "+1744600" - }, - "Pacific/Bougainville": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0061300", - longitude: "+1553400" - }, - "Pacific/Chatham": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1245\r\nTZOFFSETTO:+1345\r\nTZNAME:+1345\r\nDTSTART:19700927T024500\r\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1345\r\nTZOFFSETTO:+1245\r\nTZNAME:+1245\r\nDTSTART:19700405T034500\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD" - ], - latitude: "-0435700", - longitude: "-1763300" - }, - "Pacific/Chuuk": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:+10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0072500", - longitude: "+1514700" - }, - "Pacific/Easter": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:-06\r\nDTSTART:20190406T220000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SA\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:20190907T220000\r\nRRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SA\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:-06\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nTZNAME:-05\r\nDTSTART:20180811T220000\r\nRDATE:20180811T220000\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nTZNAME:-06\r\nDTSTART:20180512T220000\r\nRDATE:20180512T220000\r\nEND:STANDARD" - ], - latitude: "-0270900", - longitude: "-1092600" - }, - "Pacific/Efate": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0174000", - longitude: "+1682500" - }, - "Pacific/Enderbury": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1300\r\nTZNAME:+13\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0030800", - longitude: "-1710500" - }, - "Pacific/Fakaofo": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1300\r\nTZNAME:+13\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0092200", - longitude: "-1711400" - }, - "Pacific/Fiji": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700118T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=12,13,14,15,16,17,18;BYDAY=SU\r\nEND:STANDARD", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1300\r\nTZNAME:+13\r\nDTSTART:20191110T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=2SU\r\nEND:DAYLIGHT", - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1300\r\nTZNAME:+13\r\nDTSTART:20181104T020000\r\nRDATE:20181104T020000\r\nEND:DAYLIGHT" - ], - latitude: "-0180800", - longitude: "+1782500" - }, - "Pacific/Funafuti": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0083100", - longitude: "+1791300" - }, - "Pacific/Galapagos": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0600\r\nTZNAME:-06\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0005400", - longitude: "-0893600" - }, - "Pacific/Gambier": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0900\r\nTZOFFSETTO:-0900\r\nTZNAME:-09\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0230800", - longitude: "-1345700" - }, - "Pacific/Guadalcanal": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0093200", - longitude: "+1601200" - }, - "Pacific/Guam": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:ChST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0132800", - longitude: "+1444500" - }, - "Pacific/Honolulu": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-1000\r\nTZOFFSETTO:-1000\r\nTZNAME:HST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0211825", - longitude: "-1575130" - }, - "Pacific/Kiritimati": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1400\r\nTZOFFSETTO:+1400\r\nTZNAME:+14\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0015200", - longitude: "-1572000" - }, - "Pacific/Kosrae": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0051900", - longitude: "+1625900" - }, - "Pacific/Kwajalein": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0090500", - longitude: "+1672000" - }, - "Pacific/Majuro": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0070900", - longitude: "+1711200" - }, - "Pacific/Marquesas": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0930\r\nTZOFFSETTO:-0930\r\nTZNAME:-0930\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0090000", - longitude: "-1393000" - }, - "Pacific/Midway": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-1100\r\nTZOFFSETTO:-1100\r\nTZNAME:SST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0281300", - longitude: "-1772200" - }, - "Pacific/Nauru": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0003100", - longitude: "+1665500" - }, - "Pacific/Niue": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-1100\r\nTZOFFSETTO:-1100\r\nTZNAME:-11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0190100", - longitude: "-1695500" - }, - "Pacific/Norfolk": { - ics: [ - "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:20191006T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\r\nEND:DAYLIGHT", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:20200405T030000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1130\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD", - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:20190701T000000\r\nRDATE:20190701T000000\r\nEND:STANDARD" - ], - latitude: "-0290300", - longitude: "+1675800" - }, - "Pacific/Noumea": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0221600", - longitude: "+1662700" - }, - "Pacific/Pago_Pago": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-1100\r\nTZOFFSETTO:-1100\r\nTZNAME:SST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0141600", - longitude: "-1704200" - }, - "Pacific/Palau": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:+09\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0072000", - longitude: "+1342900" - }, - "Pacific/Pitcairn": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0800\r\nTZNAME:-08\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0250400", - longitude: "-1300500" - }, - "Pacific/Pohnpei": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1100\r\nTZNAME:+11\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0065800", - longitude: "+1581300" - }, - "Pacific/Port_Moresby": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:+10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0093000", - longitude: "+1471000" - }, - "Pacific/Rarotonga": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-1000\r\nTZOFFSETTO:-1000\r\nTZNAME:-10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0211400", - longitude: "-1594600" - }, - "Pacific/Saipan": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1000\r\nTZNAME:ChST\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0151200", - longitude: "+1454500" - }, - "Pacific/Tahiti": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:-1000\r\nTZOFFSETTO:-1000\r\nTZNAME:-10\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0173200", - longitude: "-1493400" - }, - "Pacific/Tarawa": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0012500", - longitude: "+1730000" - }, - "Pacific/Tongatapu": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1300\r\nTZOFFSETTO:+1300\r\nTZNAME:+13\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0211000", - longitude: "-1751000" - }, - "Pacific/Wake": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "+0191700", - longitude: "+1663700" - }, - "Pacific/Wallis": { - ics: [ - "BEGIN:STANDARD\r\nTZOFFSETFROM:+1200\r\nTZOFFSETTO:+1200\r\nTZNAME:+12\r\nDTSTART:19700101T000000\r\nEND:STANDARD" - ], - latitude: "-0131800", - longitude: "-1761000" - } -}; -var tzData = { - version: version, - aliases: aliases, - zones: zones -}; - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class TimezoneManager - */ - -class TimezoneManager { - /** - * Constructor - */ - constructor() { - /** - * Map of aliases - * Alias name => timezoneId - * - * @type {Map} - */ - this._aliases = new Map(); - /** - * Map of Timezones - * timezoneId => Timezone - * - * @type {Map} - * @private - */ - - this._timezones = new Map(); - } - /** - * Gets a timezone for the given id - * - * @param {String} timezoneId The id of the timezone - * @returns {Timezone|null} - */ - - - getTimezoneForId(timezoneId) { - return this._getTimezoneForIdRec(timezoneId, 0); - } - - _getTimezoneForIdRec(timezoneId, level) { - if (this._timezones.has(timezoneId)) { - return this._timezones.get(timezoneId); - } - - if (level >= 20) { - // too much recursion - console.error('TimezoneManager.getTimezoneForIdRec() exceeds recursion limits'); - return null; - } - - if (this._aliases.has(timezoneId)) { - const resolvedTimezoneId = this._aliases.get(timezoneId); // can be a recursive alias: - - - return this._getTimezoneForIdRec(resolvedTimezoneId, level + 1); - } - - return null; - } - /** - * Checks if there is a timezone for the given id stored in this manager - * - * @param {String} timezoneId The id of the timezone - * @returns {boolean} - */ - - - hasTimezoneForId(timezoneId) { - return this._timezones.has(timezoneId) || this._aliases.has(timezoneId); - } - /** - * Checks if the given timezone id is an alias - * - * @param {String} timezoneId The id of the timezone - * @returns {boolean} - */ - - - isAlias(timezoneId) { - return !this._timezones.has(timezoneId) && this._aliases.has(timezoneId); - } - /** - * Lists all timezones - * - * @param {Boolean=} includeAliases Whether or not to include aliases - * @returns {String[]} - */ - - - listAllTimezones(includeAliases = false) { - const timezones = Array.from(this._timezones.keys()); - - if (includeAliases) { - return timezones.concat(Array.from(this._aliases.keys())); - } - - return timezones; - } - /** - * Registers a timezone - * - * @param {Timezone} timezone The timezone-object to register - */ - - - registerTimezone(timezone) { - this._timezones.set(timezone.timezoneId, timezone); - } - - registerDefaultTimezones() { - console.debug(`@nextcloud/calendar-js app is using version ${tzData.version} of the timezone database`); - - for (const tzid in tzData.zones) { - if (Object.prototype.hasOwnProperty.call(tzData.zones, [tzid])) { - const ics = ['BEGIN:VTIMEZONE', 'TZID:' + tzid, ...tzData.zones[tzid].ics, 'END:VTIMEZONE'].join('\r\n'); - this.registerTimezoneFromICS(tzid, ics); - } - } - - for (const tzid in tzData.aliases) { - if (Object.prototype.hasOwnProperty.call(tzData.aliases, [tzid])) { - this.registerAlias(tzid, tzData.aliases[tzid].aliasTo); - } - } - } - /** - * Registers a timezone based on ics data - * - * @param {String} timezoneId The id of the timezone - * @param {String} ics The iCalendar timezone definition - */ - - - registerTimezoneFromICS(timezoneId, ics) { - const timezone = new Timezone(timezoneId, ics); - this.registerTimezone(timezone); - } - /** - * Registers a new timezone-alias - * - * @param {String} aliasName The timezone-id of the alias - * @param {String} timezoneId The timezone-id to resolve the alias to - */ - - - registerAlias(aliasName, timezoneId) { - this._aliases.set(aliasName, timezoneId); - } - /** - * Unregisters a timezone - * - * @param {String} timezoneId Unregisters a timezone by Id - */ - - - unregisterTimezones(timezoneId) { - this._timezones.delete(timezoneId); - } - /** - * Unregisters a timezone-alias - * - * @param {String} aliasName The alias to unregister - */ - - - unregisterAlias(aliasName) { - this._aliases.delete(aliasName); - } - /** - * Clear all timezones - */ - - - clearAllTimezones() { - this._aliases = new Map(); - this._timezones = new Map(); - timezoneManager.registerTimezone(Timezone.utc); - timezoneManager.registerTimezone(Timezone.floating); - timezoneManager.registerAlias('GMT', Timezone.utc.timezoneId); - timezoneManager.registerAlias('Z', Timezone.utc.timezoneId); - } - -} -const timezoneManager = new TimezoneManager(); -timezoneManager.clearAllTimezones(); -/** - * Gets the default instance of the timezone manager - * - * @returns {TimezoneManager} - */ - -function getTimezoneManager() { - return timezoneManager; -} -/** - * - * @param {String} tzName Name of the timezone to check - * @returns {boolean} - */ - -function isOlsonTimezone(tzName) { - const hasSlash = tzName.indexOf('/') !== -1; - const hasSpace = tzName.indexOf(' ') !== -1; - const startsWithETC = tzName.startsWith('Etc'); - const startsWithUS = tzName.startsWith('US/'); - return hasSlash && !hasSpace && !startsWithETC && !startsWithUS; -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ICalendarParser - * @classdesc - */ - -class ICalendarParser extends AbstractParser { - /** - * @inheritDoc - */ - constructor(...args) { - super(...args); - /** - * The raw text/calendar data - * - * @type {String} - * @protected - */ - - this._rawData = null; - /** - * The CalendarComponent representing the raw data - * - * @type {CalendarComponent} - * @protected - */ - - this._calendarComponent = null; - /** - * A flag whether this calendar-data contains vevents - * - * @type {boolean} - * @private - */ - - this._containsVEvents = false; - /** - * A flag whether this calendar-data contains vjournals - * - * @type {boolean} - * @private - */ - - this._containsVJournals = false; - /** - * A flag whether this calendar-data contains vtodos - * - * @type {boolean} - * @private - */ - - this._containsVTodos = false; - /** - * A flag whether this calendar-data contains vfreebusy - * - * @type {boolean} - * @private - */ - - this._containsVFreeBusy = false; - /** - * A map containing all VObjects. - * The key of this map is the UID - * The value an array of all VObjects with that particular UID - * - * @type {Map} - * @private - */ - - this._items = new Map(); - /** - * Items that are no recurrence-exceptions - * The key of this map is the UID - * - * @type {Map} - * @private - */ - - this._masterItems = new Map(); - /** - * Items that are recurrence exceptions - * - * @type {Map} - * @private - */ - - this._recurrenceExceptionItems = new Map(); - /** - * Some recurrence-exceptions come without a master item - * In that case we need to forge a master item - * - * @type {Map} - * @private - */ - - this._forgedMasterItems = new Map(); - /** - * A list of timezone-components found in the calendar-data - * - * @type {Map} - * @private - */ - - this._timezones = new Map(); - /** - * A set of required timezones for each UID - * - * @type {Map>} - * @private - */ - - this._requiredTimezones = new Map(); - /** - * Instance of the default timezone-manager - * - * @type {TimezoneManager} - * @private - */ - - this._defaultTimezoneManager = getTimezoneManager(); - } - /** - * Parses the actual calendar-data - * - * @param {String} ics The icalendar data to parse - */ - - - parse(ics) { - this._rawData = ics; - - this._applyRepairSteps(); // If a timezone is not inside our TimezoneManager at the time of parsing - // the internal zone will be marked as floating inside ICAL.Time - // so before we start any actual parsing, we need to extract all timezones - // and add them to the TimezoneManager - - - this._extractTimezones(); - - this._registerTimezones(); - - this._createCalendarComponent(); - - if (this._getOption('extractGlobalProperties', false)) { - this._extractProperties(); - } - - this._processVObjects(); - - if (this._getOption('processFreeBusy', false)) { - this._processVFreeBusy(); - } - } - /** - * @inheritDoc - */ - - - *getItemIterator() { - for (const itemList of this._items.values()) { - const calendarComp = CalendarComponent.fromEmpty(); - - if (this._getOption('includeTimezones', false)) { - this._addRequiredTimezonesToCalendarComp(calendarComp, itemList[0].uid); - } // Preserve the original product id, just in case we need special handling for certain clients later on ... - - - if (this._calendarComponent.hasProperty('PRODID')) { - calendarComp.deleteAllProperties('PRODID'); - calendarComp.addProperty(this._calendarComponent.getFirstProperty('PRODID').clone()); - } - - if (this._getOption('preserveMethod', false)) { - if (this._calendarComponent.hasProperty('METHOD')) { - calendarComp.deleteAllProperties('METHOD'); - calendarComp.addProperty(this._calendarComponent.getFirstProperty('METHOD').clone()); - } - } - - for (const item of itemList) { - calendarComp.addComponent(item); - } - - yield calendarComp; - } - } - /** - * @inheritDoc - */ - - - containsVEvents() { - return this._containsVEvents; - } - /** - * @inheritDoc - */ - - - containsVJournals() { - return this._containsVJournals; - } - /** - * @inheritDoc - */ - - - containsVTodos() { - return this._containsVTodos; - } - /** - * @inheritDoc - */ - - - containsVFreeBusy() { - return this._containsVFreeBusy; - } - /** - * @inheritDoc - */ - - - getItemCount() { - return Array.from(this._items.keys()).length; - } - /** - * Applies all registered repair steps - * - * @private - */ - - - _applyRepairSteps() { - for (const RepairStep of getRepairSteps()) { - const step = new RepairStep(); - this._rawData = step.repair(this._rawData); - } - } - /** - * Creates a calendar component based upon the repaired data - * - * @private - */ - - - _createCalendarComponent() { - const jCal = ical_js__WEBPACK_IMPORTED_MODULE_0___default().parse(this._rawData); - const icalComp = new (ical_js__WEBPACK_IMPORTED_MODULE_0___default().Component)(jCal); - this._calendarComponent = CalendarComponent.fromICALJs(icalComp); - } - /** - * extracts properties - * - * @protected - */ - - - _extractProperties() { - this._extractPropertyAndPutResultIntoVariable(['name', 'x-wr-calname'], '_name'); - - this._extractPropertyAndPutResultIntoVariable(['color', 'x-apple-calendar-color'], '_color'); - - this._extractPropertyAndPutResultIntoVariable(['source'], '_sourceURL'); - - this._extractPropertyAndPutResultIntoVariable(['refresh-interval', 'x-published-ttl'], '_refreshInterval'); - - this._extractPropertyAndPutResultIntoVariable(['x-wr-timezone'], '_calendarTimezone'); - } - /** - * Extract a property and writes it into a class property - * names must be an array, it will use the value of the fist - * propertyname it can find - * - * @param {String[]} names The names of the properties to check - * @param {String} variableName The variable name to save it under - * @private - */ - - - _extractPropertyAndPutResultIntoVariable(names, variableName) { - for (const name of names) { - if (this._calendarComponent.hasProperty(name)) { - this[variableName] = this._calendarComponent.getFirstPropertyFirstValue(name); - return; - } - } - } - /** - * Extracts timezones from the calendar component - * - * @protected - */ - - - _extractTimezones() { - const matches = this._rawData.match(/^BEGIN:VTIMEZONE$(((?!^END:VTIMEZONE$)(.|\n))*)^END:VTIMEZONE$\n/gm); - - if (!matches) { - return; - } - - for (const match of matches) { - const tzidMatcher = match.match(/^TZID:(.*)$/gm); - - if (!tzidMatcher) { - continue; - } - - const tzid = tzidMatcher[0].slice(5); - const timezone = new Timezone(tzid, match); - - this._timezones.set(tzid, timezone); - } - } - /** - * Registers unknown timezones into our timezone-manager - * - * @protected - */ - - - _registerTimezones() { - for (const [tzid, timezone] of this._timezones) { - if (!this._defaultTimezoneManager.hasTimezoneForId(tzid)) { - this._defaultTimezoneManager.registerTimezone(timezone); - } - } - } - /** - * Processes the parsed vobjects - * - * @protected - */ - - - _processVObjects() { - for (const vObject of this._calendarComponent.getVObjectIterator()) { - this._addItem(vObject); - - this._markCompTypeAsSeen(vObject.name); - - if (vObject.isRecurrenceException()) { - this._addRecurrenceException(vObject); - } else { - vObject.recurrenceManager = new RecurrenceManager(vObject); - - this._masterItems.set(vObject.uid, vObject); - } - - for (const propertyToCheck of vObject.getPropertyIterator()) { - for (const value of propertyToCheck.getValueIterator()) { - if (value instanceof DateTimeValue && value.timezoneId) { - this._addRequiredTimezone(vObject.uid, value.timezoneId); - } - } - } // TRIGGER is supposed to be stored in UTC only, - // but not all clients stick to this - - - for (const alarm of vObject.getAlarmIterator()) { - for (const propertyToCheck of alarm.getPropertyIterator()) { - for (const value of propertyToCheck.getValueIterator()) { - if (value instanceof DateTimeValue && value.timezoneId) { - this._addRequiredTimezone(vObject.uid, value.timezoneId); - } - } - } - } - - if (this._getOption('removeRSVPForAttendees', false)) { - for (const attendee of vObject.getAttendeeIterator()) { - attendee.deleteParameter('RSVP'); - } - } - } - - for (const recurrenceExceptionList of this._recurrenceExceptionItems.values()) { - for (const recurrenceException of recurrenceExceptionList) { - // Check if there is a master item for this recurrence exception - // otherwise we have to forge one - if (!this._masterItems.has(recurrenceException.uid)) { - const constructor = getConstructorForComponentName(recurrenceException.name); - const forgedMaster = new constructor(recurrenceException.name, [['UID', recurrenceException.uid], ['DTSTAMP', recurrenceException.stampTime.clone()], ['DTSTART', recurrenceException.recurrenceId.clone()]]); - forgedMaster.recurrenceManager = new RecurrenceManager(forgedMaster); - - this._forgedMasterItems.set(recurrenceException.uid, forgedMaster); - - this._masterItems.set(recurrenceException.uid, forgedMaster); - - this._addItem(forgedMaster); - } else { - const master = this._masterItems.get(recurrenceException.uid); // This should usually not be the case, - // only if the calendar-data is seriously broken. - // Let's try to handle it anyway by adding it to - // forgedMasterItems, we will simply add RDATEs - // in the next step to make it recur - - - if (!master.isRecurring()) { - this._forgedMasterItems.set(master.uid, master); - } - } - - if (this._forgedMasterItems.has(recurrenceException.uid)) { - const forgedMaster = this._forgedMasterItems.get(recurrenceException.uid); - - forgedMaster.recurrenceManager.addRecurrenceDate(false, recurrenceException.recurrenceId.clone()); - } - - const masterItem = this._masterItems.get(recurrenceException.uid); - - masterItem.recurrenceManager.relateRecurrenceException(recurrenceException); - } - } - } - /** - * Process FreeBusy components - * - * @private - */ - - - _processVFreeBusy() { - for (const vObject of this._calendarComponent.getFreebusyIterator()) { - this._addItem(vObject); - - this._markCompTypeAsSeen(vObject.name); - - for (const propertyToCheck of vObject.getPropertyIterator()) { - for (const value of propertyToCheck.getValueIterator()) { - if (value instanceof DateTimeValue && value.timezoneId) { - this._addRequiredTimezone(vObject.uid, value.timezoneId); - } - } - } - } - } - /** - * - * @param {AbstractRecurringComponent} item The recurrence-item to register - * @private - */ - - - _addRecurrenceException(item) { - if (this._recurrenceExceptionItems.has(item.uid)) { - const arr = this._recurrenceExceptionItems.get(item.uid); - - arr.push(item); - } else { - this._recurrenceExceptionItems.set(item.uid, [item]); - } - } - /** - * - * @param {AbstractRecurringComponent} item The item to register - * @private - */ - - - _addItem(item) { - if (this._items.has(item.uid)) { - const arr = this._items.get(item.uid); - - arr.push(item); - } else { - this._items.set(item.uid, [item]); - } - } - /** - * - * @param {String} uid The uid of the calendar-object - * @param {String} timezoneId The timezoneId required by the object - * @private - */ - - - _addRequiredTimezone(uid, timezoneId) { - if (timezoneId === 'UTC' || timezoneId === 'floating' || timezoneId === 'GMT' || timezoneId === 'Z') { - return; - } - - if (this._requiredTimezones.has(uid)) { - this._requiredTimezones.get(uid).add(timezoneId); - } else { - const set = new Set([timezoneId]); - - this._requiredTimezones.set(uid, set); - } - } - /** - * - * @param {CalendarComponent} calendarComp The calendar-component to add timezones to - * @param {String} uid The UID of the calendar-object - * @private - */ - - - _addRequiredTimezonesToCalendarComp(calendarComp, uid) { - if (!this._requiredTimezones.has(uid)) { - return; - } - - for (const requiredTimezone of this._requiredTimezones.get(uid)) { - if (!this._defaultTimezoneManager.hasTimezoneForId(requiredTimezone)) { - return; - } - - const timezone = this._defaultTimezoneManager.getTimezoneForId(requiredTimezone); // Is this an alias? - - - if (timezone.timezoneId !== requiredTimezone) { - this._replaceTimezoneWithAnotherOne(calendarComp, requiredTimezone, timezone.timezoneId); - } - - const timezoneComponent = timezone.toTimezoneComponent(); - calendarComp.addComponent(timezoneComponent); - } - } - /** - * Replaces all occurrences of searchTimezone with replaceTimezone - * - * @param {CalendarComponent} calendarComponent The calendar-component to replace a timezone in - * @param {String} searchTimezone The timezone to replace - * @param {String} replaceTimezone The replacement timezone - * @private - */ - - - _replaceTimezoneWithAnotherOne(calendarComponent, searchTimezone, replaceTimezone) { - for (const vObject of this._calendarComponent.getVObjectIterator()) { - for (const propertyToCheck of vObject.getPropertyIterator()) { - for (const value of propertyToCheck.getValueIterator()) { - if (!(value instanceof DateTimeValue)) { - continue; - } - - if (value.timezoneId === searchTimezone) { - value.silentlyReplaceTimezone(replaceTimezone); - } - } - } // TRIGGER is supposed to be stored in UTC only, - // but not all clients stick to this - - - for (const alarm of vObject.getAlarmIterator()) { - for (const propertyToCheck of alarm.getPropertyIterator()) { - for (const value of propertyToCheck.getValueIterator()) { - if (!(value instanceof DateTimeValue)) { - continue; - } - - if (value.timezoneId === searchTimezone) { - value.silentlyReplaceTimezone(replaceTimezone); - } - } - } - } - } - } - /** - * Marks a certain component type as seen. - * This is used for - * containsVEvents() - * containsVJournals() - * containsVTodos() - * - * @param {String} compName The name of the visited component - * @private - */ - - - _markCompTypeAsSeen(compName) { - switch (uc(compName)) { - case 'VEVENT': - this._containsVEvents = true; - break; - - case 'VJOURNAL': - this._containsVJournals = true; - break; - - case 'VTODO': - this._containsVTodos = true; - break; - - case 'VFREEBUSY': - this._containsVFreeBusy = true; - break; - } - } - /** - * @inheritDoc - */ - - - static getMimeTypes() { - return ['text/calendar']; - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * @class ParserManager - * @classdesc - */ - -class ParserManager { - /** - * Constructor - */ - constructor() { - /** - * List of supported parsers - * - * @type {Function[]} - */ - this._parsers = []; - } - /** - * Get a list of all supported file-types - * - * @returns {String[]} - */ - - - getAllSupportedFileTypes() { - return this._parsers.reduce((allFileTypes, parser) => allFileTypes.concat(parser.getMimeTypes()), []); - } - /** - * Get an instance of a parser for one specific file-type - * - * @param {String} fileType The mime-type to get a parser for - * @param {Object=} options Options destructuring object - * @param {Boolean=} options.extractGlobalProperties Whether or not to preserve properties from the VCALENDAR component (defaults to false) - * @param {Boolean=} options.removeRSVPForAttendees Whether or not to remove RSVP from attendees (defaults to false) - * @param {Boolean=} options.includeTimezones Whether or not to include timezones (defaults to false) - * @param {Boolean=} options.preserveMethod Whether or not to preserve the iCalendar method (defaults to false) - * @param {Boolean=} options.processFreeBusy Whether or not to process VFreeBusy components (defaults to false) - * - * @returns {AbstractParser} - */ - - - getParserForFileType(fileType, options) { - const Parser = this._parsers.find(parser => parser.getMimeTypes().includes(fileType)); - - if (!Parser) { - throw new TypeError('Unknown file-type.'); - } - - return new Parser(options); - } - /** - * Registers a parser - * - * @param {Function} parser The parser to register - */ - - - registerParser(parser) { - this._parsers.push(parser); - } - -} -/** - * Gets an instance of the ParserManager with all default parsers - * - * @returns {ParserManager} - */ - -function getParserManager() { - const parserManager = new ParserManager(); // We only support iCalendar for now. - // JSON calendar and CSV will be supported soon, - // but require some more work - - parserManager.registerParser(ICalendarParser); // parserManager.registerParser(JCalendarParser) - // parserManager.registerParser(CSVParser) - - return parserManager; -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * @class TimezoneAdapter - * @classdesc Connecting ICAL.TimezoneService with our TimezoneManager - */ -class TimezoneAdapter { - /** - * Constructor - * - * @param {TimezoneManager} timezoneManager The timezone-manager to wrap - */ - constructor(timezoneManager) { - /** - * TimezoneManager object - * - * @type {TimezoneManager} - * @private - */ - this._timezoneManager = timezoneManager; - } - /** - * @param {string} timezoneId The id of the timezone - * @returns {boolean} - */ - - - has(timezoneId) { - return this._timezoneManager.hasTimezoneForId(timezoneId); - } - /** - * @param {String} timezoneId The id of the timezone - * @returns {ICAL.Timezone|undefined} - */ - - - get(timezoneId) { - const timezone = this._timezoneManager.getTimezoneForId(timezoneId); - - if (!timezone) { - return undefined; - } - - return timezone.toICALTimezone(); - } - /** - * @throws TypeError - */ - - - register() { - throw new TypeError('Not allowed to register new timezone'); - } - /** - * @throws TypeError - */ - - - remove() { - throw new TypeError('Not allowed to remove timezone'); - } - /** - * @throws TypeError - */ - - - reset() { - throw new TypeError('Not allowed to reset TimezoneService'); - } - -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -class IllegalValueError extends Error {} - -/** - * @copyright Copyright (c) 2021 Christoph Wurst - * - * @author Christoph Wurst - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * - * @param {string[]} timezoneList List of Olsen timezones - * @param {Array} additionalTimezones List of additional timezones - * @param {String} globalTimezoneName The localized name of the "Global" timezones - * @returns {[]} - */ -function getSortedTimezoneList(timezoneList = [], additionalTimezones = [], globalTimezoneName = 'Global') { - const sortedByContinent = {}; - const sortedList = []; - - for (const timezoneId of timezoneList) { - const components = timezoneId.split('/'); - let [continent, name] = [components.shift(), components.join('/')]; - - if (!name) { - name = continent; - continent = globalTimezoneName; - } - - sortedByContinent[continent] = sortedByContinent[continent] || { - continent, - regions: [] - }; - sortedByContinent[continent].regions.push({ - label: getReadableTimezoneName(name), - cities: [], - timezoneId - }); - } - - for (const additionalTimezone of additionalTimezones) { - const { - continent, - label, - timezoneId - } = additionalTimezone; - sortedByContinent[continent] = sortedByContinent[continent] || { - continent, - regions: [] - }; - sortedByContinent[continent].regions.push({ - label, - cities: [], - timezoneId - }); - } - - for (const continent in sortedByContinent) { - if (!Object.prototype.hasOwnProperty.call(sortedByContinent, continent)) { - continue; - } - - sortedByContinent[continent].regions.sort((a, b) => { - if (a.label < b.label) { - return -1; - } - - return 1; - }); - sortedList.push(sortedByContinent[continent]); - } // Sort continents by name - - - sortedList.sort((a, b) => { - if (a.continent < b.continent) { - return -1; - } - - return 1; - }); - return sortedList; -} -/** - * Get human-readable name for timezoneId - * - * @param {string} timezoneId TimezoneId to turn human-readable - * @returns {string} - */ - -function getReadableTimezoneName(timezoneId) { - return timezoneId.split('_').join(' ').replace('St ', 'St. ').split('/').join(' - '); -} - -/** - * @copyright Copyright (c) 2019 Georg Ehrke - * - * @author Georg Ehrke - * - * @author Richard Steinmetz - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -if (!((ical_js__WEBPACK_IMPORTED_MODULE_0___default().TimezoneService) instanceof TimezoneAdapter)) { - (ical_js__WEBPACK_IMPORTED_MODULE_0___default().TimezoneService) = new TimezoneAdapter(getTimezoneManager()); -} -/** - * parses a single ICS and returns an iterator over all occurrences - * in a given timeframe - * - * @param {String} ics The calendar-data to parse - * @param {DateTimeValue} start The start of the queried time-range - * @param {DateTimeValue} end The end of the queried time-range - */ - - -function* parseICSAndGetAllOccurrencesBetween(ics, start, end) { - const parserManager = getParserManager(); - const icsParser = parserManager.getParserForFileType('text/calendar'); - icsParser.parse(ics); - const objectIterator = icsParser.getItemIterator(); - const calendarComp = objectIterator.next().value; - - if (calendarComp === undefined) { - return; - } - - const vObjectIterator = calendarComp.getVObjectIterator(); - const firstVObject = vObjectIterator.next().value; - - if (firstVObject === undefined) { - return; - } - - yield* firstVObject.recurrenceManager.getAllOccurrencesBetweenIterator(start, end); -} -/** - * Creates a new event - * - * @param {DateTimeValue} start Start-time of the new event - * @param {DateTimeValue} end End-time of the new event - * @returns {CalendarComponent} - */ - -function createEvent(start, end) { - const calendar = CalendarComponent.fromEmpty(); - const eventComponent = new EventComponent('VEVENT'); - eventComponent.updatePropertyWithValue('CREATED', DateTimeValue.fromJSDate(dateFactory(), true)); - eventComponent.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true)); - eventComponent.updatePropertyWithValue('LAST-MODIFIED', DateTimeValue.fromJSDate(dateFactory(), true)); - eventComponent.updatePropertyWithValue('SEQUENCE', 0); - eventComponent.updatePropertyWithValue('UID', (0,uuid__WEBPACK_IMPORTED_MODULE_1__["default"])()); - eventComponent.updatePropertyWithValue('DTSTART', start); - eventComponent.updatePropertyWithValue('DTEND', end); - calendar.addComponent(eventComponent); - eventComponent.recurrenceManager = new RecurrenceManager(eventComponent); - return calendar; -} -/** - * Creates a FreeBusy Request to be used on the scheduling outbox - * - * @param {DateTimeValue} start The start of the queried time-range - * @param {DateTimeValue} end The end of the queried time-range - * @param {AttendeeProperty} organizer The organizer querying information - * @param {AttendeeProperty[]}attendees The list of attendees to query information for - * @returns {CalendarComponent} - */ - -function createFreeBusyRequest(start, end, organizer, attendees) { - const calendar = CalendarComponent.fromMethod('REQUEST'); - const freeBusyComponent = new FreeBusyComponent('VFREEBUSY'); - freeBusyComponent.updatePropertyWithValue('DTSTAMP', DateTimeValue.fromJSDate(dateFactory(), true)); - freeBusyComponent.updatePropertyWithValue('UID', (0,uuid__WEBPACK_IMPORTED_MODULE_1__["default"])()); - freeBusyComponent.updatePropertyWithValue('DTSTART', start.clone().getInUTC()); - freeBusyComponent.updatePropertyWithValue('DTEND', end.clone().getInUTC()); - freeBusyComponent.addProperty(organizer.clone()); - - for (const attendee of attendees) { - const clonedAttendee = attendee.clone(); - clonedAttendee.deleteParameter('ROLE'); - clonedAttendee.deleteParameter('CUTYPE'); - clonedAttendee.deleteParameter('RSVP'); - clonedAttendee.deleteParameter('PARTSTAT'); - clonedAttendee.deleteParameter('REQUEST-STATUS'); - clonedAttendee.deleteParameter('LANGUAGE'); - freeBusyComponent.addProperty(clonedAttendee); - } - - calendar.addComponent(freeBusyComponent); - return calendar; -} - - -//# sourceMappingURL=index.esm.js.map - - -/***/ }), - -/***/ "./node_modules/@nextcloud/capabilities/dist/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@nextcloud/capabilities/dist/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getCapabilities = getCapabilities; - -var _initialState = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/capabilities/node_modules/@nextcloud/initial-state/dist/index.js"); - -function getCapabilities() { - try { - return (0, _initialState.loadState)('core', 'capabilities'); - } catch (error) { - console.debug('Could not find capabilities initial state fall back to _oc_capabilities'); - - if (!('_oc_capabilities' in window)) { - return {}; - } - - return window['_oc_capabilities']; - } -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/capabilities/node_modules/@nextcloud/initial-state/dist/index.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@nextcloud/capabilities/node_modules/@nextcloud/initial-state/dist/index.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.loadState = loadState; - -__webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js"); - -/** - * @param app app ID, e.g. "mail" - * @param key name of the property - * @param fallback optional parameter to use as default value - * @throws if the key can't be found - */ -function loadState(app, key, fallback) { - var elem = document.querySelector("#initial-state-".concat(app, "-").concat(key)); - - if (elem === null) { - if (fallback !== undefined) { - return fallback; - } - - throw new Error("Could not find initial state ".concat(key, " of ").concat(app)); - } - - try { - return JSON.parse(atob(elem.value)); - } catch (e) { - throw new Error("Could not parse initial state ".concat(key, " of ").concat(app)); - } -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/dialogs/dist/index.es.js": -/*!**********************************************************!*\ - !*** ./node_modules/@nextcloud/dialogs/dist/index.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 */ "FilePicker": () => (/* binding */ FilePicker), -/* harmony export */ "FilePickerBuilder": () => (/* binding */ FilePickerBuilder), -/* harmony export */ "FilePickerType": () => (/* binding */ FilePickerType), -/* harmony export */ "TOAST_ARIA_LIVE_ASSERTIVE": () => (/* binding */ TOAST_ARIA_LIVE_ASSERTIVE), -/* harmony export */ "TOAST_ARIA_LIVE_OFF": () => (/* binding */ TOAST_ARIA_LIVE_OFF), -/* harmony export */ "TOAST_ARIA_LIVE_POLITE": () => (/* binding */ TOAST_ARIA_LIVE_POLITE), -/* harmony export */ "TOAST_DEFAULT_TIMEOUT": () => (/* binding */ TOAST_DEFAULT_TIMEOUT), -/* harmony export */ "TOAST_PERMANENT_TIMEOUT": () => (/* binding */ TOAST_PERMANENT_TIMEOUT), -/* harmony export */ "TOAST_UNDO_TIMEOUT": () => (/* binding */ TOAST_UNDO_TIMEOUT), -/* harmony export */ "getFilePickerBuilder": () => (/* binding */ getFilePickerBuilder), -/* harmony export */ "showError": () => (/* binding */ showError), -/* harmony export */ "showInfo": () => (/* binding */ showInfo), -/* harmony export */ "showMessage": () => (/* binding */ showMessage), -/* harmony export */ "showSuccess": () => (/* binding */ showSuccess), -/* harmony export */ "showUndo": () => (/* binding */ showUndo), -/* harmony export */ "showWarning": () => (/* binding */ showWarning) -/* harmony export */ }); -/* provided dependency */ var process = __webpack_require__(/*! ./node_modules/process/browser.js */ "./node_modules/process/browser.js"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); -(function() { - const env = {"TRANSLATIONS":[{"locale":"ar","json":{"charset":"utf-8","headers":{"Last-Translator":"S1 SYSTEMS | BP , 2020","Language-Team":"Arabic (https://www.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8","Language":"ar","Plural-Forms":"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nS1 SYSTEMS | BP , 2020\n"},"msgstr":["Last-Translator: S1 SYSTEMS | BP , 2020\nLanguage-Team: Arabic (https://www.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["تراجع"]}}}}},{"locale":"ast","json":{"charset":"utf-8","headers":{"Last-Translator":"enolp , 2020","Language-Team":"Asturian (https://www.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8","Language":"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nenolp , 2020\n"},"msgstr":["Last-Translator: enolp , 2020\nLanguage-Team: Asturian (https://www.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Desfacer"]}}}}},{"locale":"br","json":{"charset":"utf-8","headers":{"Last-Translator":"Kervoas-Le Nabat Ewen , 2020","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8","Language":"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nKervoas-Le Nabat Ewen , 2020\n"},"msgstr":["Last-Translator: Kervoas-Le Nabat Ewen , 2020\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Disober"]}}}}},{"locale":"ca","json":{"charset":"utf-8","headers":{"Last-Translator":"Marc Riera , 2020","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8","Language":"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMarc Riera , 2020\n"},"msgstr":["Last-Translator: Marc Riera , 2020\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Desfés"]}}}}},{"locale":"cs","json":{"charset":"utf-8","headers":{"Last-Translator":"Pavel Borecki , 2020","Language-Team":"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)","Content-Type":"text/plain; charset=UTF-8","Language":"cs","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nPavel Borecki , 2020\n"},"msgstr":["Last-Translator: Pavel Borecki , 2020\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Zpět"]}}}}},{"locale":"cs_CZ","json":{"charset":"utf-8","headers":{"Last-Translator":"Pavel Borecki , 2020","Language-Team":"Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8","Language":"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nPavel Borecki , 2020\n"},"msgstr":["Last-Translator: Pavel Borecki , 2020\nLanguage-Team: Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Zpět"]}}}}},{"locale":"da","json":{"charset":"utf-8","headers":{"Last-Translator":"Martin Bonde , 2020","Language-Team":"Danish (https://www.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8","Language":"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMartin Bonde , 2020\n"},"msgstr":["Last-Translator: Martin Bonde , 2020\nLanguage-Team: Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Fortryd"]}}}}},{"locale":"de","json":{"charset":"utf-8","headers":{"Last-Translator":"Mark Ziegler , 2020","Language-Team":"German (https://www.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8","Language":"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMark Ziegler , 2020\n"},"msgstr":["Last-Translator: Mark Ziegler , 2020\nLanguage-Team: German (https://www.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Rückgängig"]}}}}},{"locale":"de_DE","json":{"charset":"utf-8","headers":{"Last-Translator":"Gustav Gyges, 2021","Language-Team":"German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8","Language":"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nGustav Gyges, 2021\n"},"msgstr":["Last-Translator: Gustav Gyges, 2021\nLanguage-Team: German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Rückgängig machen"]}}}}},{"locale":"el","json":{"charset":"utf-8","headers":{"Last-Translator":"ByteGet, 2020","Language-Team":"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8","Language":"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nByteGet, 2020\n"},"msgstr":["Last-Translator: ByteGet, 2020\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Αναίρεση"]}}}}},{"locale":"en_GB","json":{"charset":"utf-8","headers":{"Last-Translator":"Jeff Gunn , 2021","Language-Team":"English (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8","Language":"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nJeff Gunn , 2021\n"},"msgstr":["Last-Translator: Jeff Gunn , 2021\nLanguage-Team: English (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Undo"]}}}}},{"locale":"eo","json":{"charset":"utf-8","headers":{"Last-Translator":"Va Milushnikov , 2020","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8","Language":"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nVa Milushnikov , 2020\n"},"msgstr":["Last-Translator: Va Milushnikov , 2020\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Malfari"]}}}}},{"locale":"es","json":{"charset":"utf-8","headers":{"Last-Translator":"Gabriel Anca , 2020","Language-Team":"Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8","Language":"es","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nGabriel Anca , 2020\n"},"msgstr":["Last-Translator: Gabriel Anca , 2020\nLanguage-Team: Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Deshacer"]}}}}},{"locale":"es_AR","json":{"charset":"utf-8","headers":{"Last-Translator":"Matias Iglesias, 2022","Language-Team":"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8","Language":"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMatias Iglesias, 2022\n"},"msgstr":["Last-Translator: Matias Iglesias, 2022\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:223"},"msgstr":["Deshacer"]}}}}},{"locale":"eu","json":{"charset":"utf-8","headers":{"Last-Translator":"Unai Tolosa Pontesta , 2021","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8","Language":"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nUnai Tolosa Pontesta , 2021\n"},"msgstr":["Last-Translator: Unai Tolosa Pontesta , 2021\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Desegin"]}}}}},{"locale":"fa","json":{"charset":"utf-8","headers":{"Last-Translator":"Mostafa Ahangarha , 2020","Language-Team":"Persian (https://www.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8","Language":"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMostafa Ahangarha , 2020\n"},"msgstr":["Last-Translator: Mostafa Ahangarha , 2020\nLanguage-Team: Persian (https://www.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["بازگردانی"]}}}}},{"locale":"fi_FI","json":{"charset":"utf-8","headers":{"Last-Translator":"teemue, 2020","Language-Team":"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8","Language":"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nteemue, 2020\n"},"msgstr":["Last-Translator: teemue, 2020\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Kumoa"]}}}}},{"locale":"fr","json":{"charset":"utf-8","headers":{"Last-Translator":"John Molakvoæ , 2020","Language-Team":"French (https://www.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8","Language":"fr","Plural-Forms":"nplurals=2; plural=(n > 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nJohn Molakvoæ , 2020\n"},"msgstr":["Last-Translator: John Molakvoæ , 2020\nLanguage-Team: French (https://www.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Annuler"]}}}}},{"locale":"gl","json":{"charset":"utf-8","headers":{"Last-Translator":"Miguel Anxo Bouzada , 2020","Language-Team":"Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8","Language":"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMiguel Anxo Bouzada , 2020\n"},"msgstr":["Last-Translator: Miguel Anxo Bouzada , 2020\nLanguage-Team: Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Desfacer"]}}}}},{"locale":"he","json":{"charset":"utf-8","headers":{"Last-Translator":"Yaron Shahrabani , 2020","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8","Language":"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nYaron Shahrabani , 2020\n"},"msgstr":["Last-Translator: Yaron Shahrabani , 2020\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["ביטול"]}}}}},{"locale":"hu_HU","json":{"charset":"utf-8","headers":{"Last-Translator":"Balázs Meskó , 2021","Language-Team":"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8","Language":"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nBalázs Meskó , 2021\n"},"msgstr":["Last-Translator: Balázs Meskó , 2021\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Visszavonás"]}}}}},{"locale":"id","json":{"charset":"utf-8","headers":{"Last-Translator":"agus sutrisno , 2020","Language-Team":"Indonesian (https://www.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8","Language":"id","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nagus sutrisno , 2020\n"},"msgstr":["Last-Translator: agus sutrisno , 2020\nLanguage-Team: Indonesian (https://www.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Tidak jadi"]}}}}},{"locale":"is","json":{"charset":"utf-8","headers":{"Last-Translator":"Sveinn í Felli , 2020","Language-Team":"Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8","Language":"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nSveinn í Felli , 2020\n"},"msgstr":["Last-Translator: Sveinn í Felli , 2020\nLanguage-Team: Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Afturkalla"]}}}}},{"locale":"it","json":{"charset":"utf-8","headers":{"Last-Translator":"Vincenzo Reale , 2020","Language-Team":"Italian (https://www.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8","Language":"it","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nVincenzo Reale , 2020\n"},"msgstr":["Last-Translator: Vincenzo Reale , 2020\nLanguage-Team: Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Annulla"]}}}}},{"locale":"ja_JP","json":{"charset":"utf-8","headers":{"Last-Translator":"323484, 2020","Language-Team":"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8","Language":"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\n323484, 2020\n"},"msgstr":["Last-Translator: 323484, 2020\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["元に戻す"]}}}}},{"locale":"kab","json":{"charset":"utf-8","headers":{"Last-Translator":"ZiriSut, 2021","Language-Team":"Kabyle (https://www.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8","Language":"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nZiriSut, 2021\n"},"msgstr":["Last-Translator: ZiriSut, 2021\nLanguage-Team: Kabyle (https://www.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Sefsex"]}}}}},{"locale":"ko","json":{"charset":"utf-8","headers":{"Last-Translator":"Brandon Han, 2021","Language-Team":"Korean (https://www.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8","Language":"ko","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nBrandon Han, 2021\n"},"msgstr":["Last-Translator: Brandon Han, 2021\nLanguage-Team: Korean (https://www.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["되돌리기"]}}}}},{"locale":"lt_LT","json":{"charset":"utf-8","headers":{"Last-Translator":"Moo, 2020","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8","Language":"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMoo, 2020\n"},"msgstr":["Last-Translator: Moo, 2020\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Atšaukti"]}}}}},{"locale":"mk","json":{"charset":"utf-8","headers":{"Last-Translator":"Сашко Тодоров, 2020","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8","Language":"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nСашко Тодоров, 2020\n"},"msgstr":["Last-Translator: Сашко Тодоров, 2020\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Врати"]}}}}},{"locale":"mn","json":{"charset":"utf-8","headers":{"Last-Translator":"BATKHUYAG Ganbold , 2022","Language-Team":"Mongolian (https://www.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8","Language":"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nBATKHUYAG Ganbold , 2022\n"},"msgstr":["Last-Translator: BATKHUYAG Ganbold , 2022\nLanguage-Team: Mongolian (https://www.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Буцаах"]}}}}},{"locale":"mr","json":{"charset":"utf-8","headers":{"Last-Translator":"Vinit Dhabre , 2021","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8","Language":"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nVinit Dhabre , 2021\n"},"msgstr":["Last-Translator: Vinit Dhabre , 2021\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["पूर्ववत करा"]}}}}},{"locale":"my","json":{"charset":"utf-8","headers":{"Last-Translator":"Htike Aung Kyaw , 2021","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8","Language":"my","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nHtike Aung Kyaw , 2021\n"},"msgstr":["Last-Translator: Htike Aung Kyaw , 2021\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["နဂိုအတိုင်းပြန်ထားရန်"]}}}}},{"locale":"nb_NO","json":{"charset":"utf-8","headers":{"Last-Translator":"sverre.vikan , 2020","Language-Team":"Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8","Language":"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nsverre.vikan , 2020\n"},"msgstr":["Last-Translator: sverre.vikan , 2020\nLanguage-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Angre"]}}}}},{"locale":"nl","json":{"charset":"utf-8","headers":{"Last-Translator":"Robin Slot, 2020","Language-Team":"Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8","Language":"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nRobin Slot, 2020\n"},"msgstr":["Last-Translator: Robin Slot, 2020\nLanguage-Team: Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Ongedaan maken"]}}}}},{"locale":"oc","json":{"charset":"utf-8","headers":{"Last-Translator":"Quentin PAGÈS, 2020","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8","Language":"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nQuentin PAGÈS, 2020\n"},"msgstr":["Last-Translator: Quentin PAGÈS, 2020\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Anullar"]}}}}},{"locale":"pl","json":{"charset":"utf-8","headers":{"Last-Translator":"Robert Szmurło , 2020","Language-Team":"Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8","Language":"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nRobert Szmurło , 2020\n"},"msgstr":["Last-Translator: Robert Szmurło , 2020\nLanguage-Team: Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Cofnij"]}}}}},{"locale":"pt_BR","json":{"charset":"utf-8","headers":{"Last-Translator":"Paulo Schopf, 2020","Language-Team":"Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8","Language":"pt_BR","Plural-Forms":"nplurals=2; plural=(n > 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nPaulo Schopf, 2020\n"},"msgstr":["Last-Translator: Paulo Schopf, 2020\nLanguage-Team: Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Desfazer"]}}}}},{"locale":"ro","json":{"charset":"utf-8","headers":{"Last-Translator":"Mădălin Vasiliu , 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8","Language":"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMădălin Vasiliu , 2022\n"},"msgstr":["Last-Translator: Mădălin Vasiliu , 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:193"},"msgstr":["Anulează"]}}}}},{"locale":"ru","json":{"charset":"utf-8","headers":{"Last-Translator":"Andrey Atapin , 2020","Language-Team":"Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8","Language":"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nAndrey Atapin , 2020\n"},"msgstr":["Last-Translator: Andrey Atapin , 2020\nLanguage-Team: Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:187"},"msgstr":["Отменить"]}}}}},{"locale":"si","json":{"charset":"utf-8","headers":{"Last-Translator":"Hela Basa, 2021","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8","Language":"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nHela Basa, 2021\n"},"msgstr":["Last-Translator: Hela Basa, 2021\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["පෙරසේ"]}}}}},{"locale":"sk_SK","json":{"charset":"utf-8","headers":{"Last-Translator":"vladimirjendrol , 2020","Language-Team":"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8","Language":"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nvladimirjendrol , 2020\n"},"msgstr":["Last-Translator: vladimirjendrol , 2020\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Späť"]}}}}},{"locale":"sl","json":{"charset":"utf-8","headers":{"Last-Translator":"Matej Urbančič <>, 2020","Language-Team":"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8","Language":"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nMatej Urbančič <>, 2020\n"},"msgstr":["Last-Translator: Matej Urbančič <>, 2020\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Razveljavi"]}}}}},{"locale":"sr","json":{"charset":"utf-8","headers":{"Last-Translator":"aleksandar jevtic, 2022","Language-Team":"Serbian (https://www.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8","Language":"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\naleksandar jevtic, 2022\n"},"msgstr":["Last-Translator: aleksandar jevtic, 2022\nLanguage-Team: Serbian (https://www.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:223"},"msgstr":["Poništi"]}}}}},{"locale":"sv","json":{"charset":"utf-8","headers":{"Last-Translator":"Victor Nyberg , 2021","Language-Team":"Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8","Language":"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nVictor Nyberg , 2021\n"},"msgstr":["Last-Translator: Victor Nyberg , 2021\nLanguage-Team: Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Ångra"]}}}}},{"locale":"ta","json":{"charset":"utf-8","headers":{"Last-Translator":"ஒளியன் Oliyan, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8","Language":"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nஒளியன் Oliyan, 2022\n"},"msgstr":["Last-Translator: ஒளியன் Oliyan, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["செயல்தவிர்"]}}}}},{"locale":"th_TH","json":{"charset":"utf-8","headers":{"Last-Translator":"Phongpanot Phairat , 2021","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8","Language":"th_TH","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nPhongpanot Phairat , 2021\n"},"msgstr":["Last-Translator: Phongpanot Phairat , 2021\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["เลิกทำ"]}}}}},{"locale":"tr","json":{"charset":"utf-8","headers":{"Last-Translator":"Kaya Zeren , 2020","Language-Team":"Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8","Language":"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nKaya Zeren , 2020\n"},"msgstr":["Last-Translator: Kaya Zeren , 2020\nLanguage-Team: Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["Geri al"]}}}}},{"locale":"uk","json":{"charset":"utf-8","headers":{"Last-Translator":"Oleksandr Panasyuk, 2021","Language-Team":"Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8","Language":"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nOleksandr Panasyuk, 2021\n"},"msgstr":["Last-Translator: Oleksandr Panasyuk, 2021\nLanguage-Team: Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Скасувати дію"]}}}}},{"locale":"vi","json":{"charset":"utf-8","headers":{"Last-Translator":"Luu Thang , 2021","Language-Team":"Vietnamese (https://www.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8","Language":"vi","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nLuu Thang , 2021\n"},"msgstr":["Last-Translator: Luu Thang , 2021\nLanguage-Team: Vietnamese (https://www.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["Hoàn tác"]}}}}},{"locale":"zh_CN","json":{"charset":"utf-8","headers":{"Last-Translator":"Henry Ji, 2022","Language-Team":"Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8","Language":"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nHenry Ji, 2022\n"},"msgstr":["Last-Translator: Henry Ji, 2022\nLanguage-Team: Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":[" 撤消"]}}}}},{"locale":"zh_HK","json":{"charset":"utf-8","headers":{"Last-Translator":"Cha Wong , 2021","Language-Team":"Chinese (Hong Kong) (https://www.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8","Language":"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nCha Wong , 2021\n"},"msgstr":["Last-Translator: Cha Wong , 2021\nLanguage-Team: Chinese (Hong Kong) (https://www.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:191"},"msgstr":["還原"]}}}}},{"locale":"zh_TW","json":{"charset":"utf-8","headers":{"Last-Translator":"Natashia Maxins , 2020","Language-Team":"Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8","Language":"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},"translations":{"":{"":{"msgid":"","comments":{"translator":"\nTranslators:\nNatashia Maxins , 2020\n"},"msgstr":["Last-Translator: Natashia Maxins , 2020\nLanguage-Team: Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"Undo":{"msgid":"Undo","comments":{"reference":"lib/toast.ts:192"},"msgstr":["復原"]}}}}}]}; - try { - if (process) { - process.env = Object.assign({}, process.env); - Object.assign(process.env, env); - return; - } - } catch (e) {} // avoid ReferenceError: process is not defined - globalThis.process = { env:env }; -})(); - -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {}; - -var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global$l = - // eslint-disable-next-line es-x/no-global-this -- safe - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - // eslint-disable-next-line no-restricted-globals -- safe - check(typeof self == 'object' && self) || - check(typeof commonjsGlobal == 'object' && commonjsGlobal) || - // eslint-disable-next-line no-new-func -- fallback - (function () { return this; })() || Function('return this')(); - -var shared$4 = {exports: {}}; - -var global$k = global$l; - -// eslint-disable-next-line es-x/no-object-defineproperty -- safe -var defineProperty$4 = Object.defineProperty; - -var defineGlobalProperty$3 = function (key, value) { - try { - defineProperty$4(global$k, key, { value: value, configurable: true, writable: true }); - } catch (error) { - global$k[key] = value; - } return value; -}; - -var global$j = global$l; -var defineGlobalProperty$2 = defineGlobalProperty$3; - -var SHARED = '__core-js_shared__'; -var store$3 = global$j[SHARED] || defineGlobalProperty$2(SHARED, {}); - -var sharedStore = store$3; - -var store$2 = sharedStore; - -(shared$4.exports = function (key, value) { - return store$2[key] || (store$2[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.24.1', - mode: 'global', - copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)', - license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE', - source: 'https://github.com/zloirock/core-js' -}); - -var fails$l = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - -var fails$k = fails$l; - -var functionBindNative = !fails$k(function () { - // eslint-disable-next-line es-x/no-function-prototype-bind -- safe - var test = (function () { /* empty */ }).bind(); - // eslint-disable-next-line no-prototype-builtins -- safe - return typeof test != 'function' || test.hasOwnProperty('prototype'); -}); - -var NATIVE_BIND$3 = functionBindNative; - -var FunctionPrototype$2 = Function.prototype; -var bind$6 = FunctionPrototype$2.bind; -var call$i = FunctionPrototype$2.call; -var uncurryThis$n = NATIVE_BIND$3 && bind$6.bind(call$i, call$i); - -var functionUncurryThis = NATIVE_BIND$3 ? function (fn) { - return fn && uncurryThis$n(fn); -} : function (fn) { - return fn && function () { - return call$i.apply(fn, arguments); - }; -}; - -var $TypeError$c = TypeError; - -// `RequireObjectCoercible` abstract operation -// https://tc39.es/ecma262/#sec-requireobjectcoercible -var requireObjectCoercible$6 = function (it) { - if (it == undefined) throw $TypeError$c("Can't call method on " + it); - return it; -}; - -var requireObjectCoercible$5 = requireObjectCoercible$6; - -var $Object$3 = Object; - -// `ToObject` abstract operation -// https://tc39.es/ecma262/#sec-toobject -var toObject$4 = function (argument) { - return $Object$3(requireObjectCoercible$5(argument)); -}; - -var uncurryThis$m = functionUncurryThis; -var toObject$3 = toObject$4; - -var hasOwnProperty$1 = uncurryThis$m({}.hasOwnProperty); - -// `HasOwnProperty` abstract operation -// https://tc39.es/ecma262/#sec-hasownproperty -// eslint-disable-next-line es-x/no-object-hasown -- safe -var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { - return hasOwnProperty$1(toObject$3(it), key); -}; - -var uncurryThis$l = functionUncurryThis; - -var id = 0; -var postfix = Math.random(); -var toString$9 = uncurryThis$l(1.0.toString); - -var uid$2 = function (key) { - return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$9(++id + postfix, 36); -}; - -// `IsCallable` abstract operation -// https://tc39.es/ecma262/#sec-iscallable -var isCallable$j = function (argument) { - return typeof argument == 'function'; -}; - -var global$i = global$l; -var isCallable$i = isCallable$j; - -var aFunction = function (argument) { - return isCallable$i(argument) ? argument : undefined; -}; - -var getBuiltIn$8 = function (namespace, method) { - return arguments.length < 2 ? aFunction(global$i[namespace]) : global$i[namespace] && global$i[namespace][method]; -}; - -var getBuiltIn$7 = getBuiltIn$8; - -var engineUserAgent = getBuiltIn$7('navigator', 'userAgent') || ''; - -var global$h = global$l; -var userAgent$3 = engineUserAgent; - -var process$4 = global$h.process; -var Deno$1 = global$h.Deno; -var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - // in old Chrome, versions of V8 isn't V8 = Chrome / 10 - // but their correct versions are not interesting for us - version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); -} - -// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` -// so check `userAgent` even if `.v8` exists, but 0 -if (!version && userAgent$3) { - match = userAgent$3.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent$3.match(/Chrome\/(\d+)/); - if (match) version = +match[1]; - } -} - -var engineV8Version = version; - -var V8_VERSION$2 = engineV8Version; -var fails$j = fails$l; - -// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing -var nativeSymbol = !!Object.getOwnPropertySymbols && !fails$j(function () { - var symbol = Symbol(); - // Chrome 38 Symbol has incorrect toString conversion - // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances - return !String(symbol) || !(Object(symbol) instanceof Symbol) || - // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances - !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; -}); - -var NATIVE_SYMBOL$1 = nativeSymbol; - -var useSymbolAsUid = NATIVE_SYMBOL$1 - && !Symbol.sham - && typeof Symbol.iterator == 'symbol'; - -var global$g = global$l; -var shared$3 = shared$4.exports; -var hasOwn$9 = hasOwnProperty_1; -var uid$1 = uid$2; -var NATIVE_SYMBOL = nativeSymbol; -var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; - -var WellKnownSymbolsStore = shared$3('wks'); -var Symbol$2 = global$g.Symbol; -var symbolFor = Symbol$2 && Symbol$2['for']; -var createWellKnownSymbol = USE_SYMBOL_AS_UID$1 ? Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$1; - -var wellKnownSymbol$f = function (name) { - if (!hasOwn$9(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { - var description = 'Symbol.' + name; - if (NATIVE_SYMBOL && hasOwn$9(Symbol$2, name)) { - WellKnownSymbolsStore[name] = Symbol$2[name]; - } else if (USE_SYMBOL_AS_UID$1 && symbolFor) { - WellKnownSymbolsStore[name] = symbolFor(description); - } else { - WellKnownSymbolsStore[name] = createWellKnownSymbol(description); - } - } return WellKnownSymbolsStore[name]; -}; - -var wellKnownSymbol$e = wellKnownSymbol$f; - -var TO_STRING_TAG$2 = wellKnownSymbol$e('toStringTag'); -var test = {}; - -test[TO_STRING_TAG$2] = 'z'; - -var toStringTagSupport = String(test) === '[object z]'; - -var objectDefineProperty = {}; - -var fails$i = fails$l; - -// Detect IE8's incomplete defineProperty implementation -var descriptors = !fails$i(function () { - // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - -var isCallable$h = isCallable$j; - -var isObject$a = function (it) { - return typeof it == 'object' ? it !== null : isCallable$h(it); -}; - -var global$f = global$l; -var isObject$9 = isObject$a; - -var document$3 = global$f.document; -// typeof document.createElement is 'object' in old IE -var EXISTS$1 = isObject$9(document$3) && isObject$9(document$3.createElement); - -var documentCreateElement$1 = function (it) { - return EXISTS$1 ? document$3.createElement(it) : {}; -}; - -var DESCRIPTORS$a = descriptors; -var fails$h = fails$l; -var createElement$1 = documentCreateElement$1; - -// Thanks to IE8 for its funny defineProperty -var ie8DomDefine = !DESCRIPTORS$a && !fails$h(function () { - // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing - return Object.defineProperty(createElement$1('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - -var DESCRIPTORS$9 = descriptors; -var fails$g = fails$l; - -// V8 ~ Chrome 36- -// https://bugs.chromium.org/p/v8/issues/detail?id=3334 -var v8PrototypeDefineBug = DESCRIPTORS$9 && fails$g(function () { - // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing - return Object.defineProperty(function () { /* empty */ }, 'prototype', { - value: 42, - writable: false - }).prototype != 42; -}); - -var isObject$8 = isObject$a; - -var $String$3 = String; -var $TypeError$b = TypeError; - -// `Assert: Type(argument) is Object` -var anObject$f = function (argument) { - if (isObject$8(argument)) return argument; - throw $TypeError$b($String$3(argument) + ' is not an object'); -}; - -var NATIVE_BIND$2 = functionBindNative; - -var call$h = Function.prototype.call; - -var functionCall = NATIVE_BIND$2 ? call$h.bind(call$h) : function () { - return call$h.apply(call$h, arguments); -}; - -var uncurryThis$k = functionUncurryThis; - -var objectIsPrototypeOf = uncurryThis$k({}.isPrototypeOf); - -var getBuiltIn$6 = getBuiltIn$8; -var isCallable$g = isCallable$j; -var isPrototypeOf$3 = objectIsPrototypeOf; -var USE_SYMBOL_AS_UID = useSymbolAsUid; - -var $Object$2 = Object; - -var isSymbol$3 = USE_SYMBOL_AS_UID ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - var $Symbol = getBuiltIn$6('Symbol'); - return isCallable$g($Symbol) && isPrototypeOf$3($Symbol.prototype, $Object$2(it)); -}; - -var $String$2 = String; - -var tryToString$4 = function (argument) { - try { - return $String$2(argument); - } catch (error) { - return 'Object'; - } -}; - -var isCallable$f = isCallable$j; -var tryToString$3 = tryToString$4; - -var $TypeError$a = TypeError; - -// `Assert: IsCallable(argument) is true` -var aCallable$7 = function (argument) { - if (isCallable$f(argument)) return argument; - throw $TypeError$a(tryToString$3(argument) + ' is not a function'); -}; - -var aCallable$6 = aCallable$7; - -// `GetMethod` abstract operation -// https://tc39.es/ecma262/#sec-getmethod -var getMethod$5 = function (V, P) { - var func = V[P]; - return func == null ? undefined : aCallable$6(func); -}; - -var call$g = functionCall; -var isCallable$e = isCallable$j; -var isObject$7 = isObject$a; - -var $TypeError$9 = TypeError; - -// `OrdinaryToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-ordinarytoprimitive -var ordinaryToPrimitive$1 = function (input, pref) { - var fn, val; - if (pref === 'string' && isCallable$e(fn = input.toString) && !isObject$7(val = call$g(fn, input))) return val; - if (isCallable$e(fn = input.valueOf) && !isObject$7(val = call$g(fn, input))) return val; - if (pref !== 'string' && isCallable$e(fn = input.toString) && !isObject$7(val = call$g(fn, input))) return val; - throw $TypeError$9("Can't convert object to primitive value"); -}; - -var call$f = functionCall; -var isObject$6 = isObject$a; -var isSymbol$2 = isSymbol$3; -var getMethod$4 = getMethod$5; -var ordinaryToPrimitive = ordinaryToPrimitive$1; -var wellKnownSymbol$d = wellKnownSymbol$f; - -var $TypeError$8 = TypeError; -var TO_PRIMITIVE = wellKnownSymbol$d('toPrimitive'); - -// `ToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-toprimitive -var toPrimitive$1 = function (input, pref) { - if (!isObject$6(input) || isSymbol$2(input)) return input; - var exoticToPrim = getMethod$4(input, TO_PRIMITIVE); - var result; - if (exoticToPrim) { - if (pref === undefined) pref = 'default'; - result = call$f(exoticToPrim, input, pref); - if (!isObject$6(result) || isSymbol$2(result)) return result; - throw $TypeError$8("Can't convert object to primitive value"); - } - if (pref === undefined) pref = 'number'; - return ordinaryToPrimitive(input, pref); -}; - -var toPrimitive = toPrimitive$1; -var isSymbol$1 = isSymbol$3; - -// `ToPropertyKey` abstract operation -// https://tc39.es/ecma262/#sec-topropertykey -var toPropertyKey$3 = function (argument) { - var key = toPrimitive(argument, 'string'); - return isSymbol$1(key) ? key : key + ''; -}; - -var DESCRIPTORS$8 = descriptors; -var IE8_DOM_DEFINE$1 = ie8DomDefine; -var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; -var anObject$e = anObject$f; -var toPropertyKey$2 = toPropertyKey$3; - -var $TypeError$7 = TypeError; -// eslint-disable-next-line es-x/no-object-defineproperty -- safe -var $defineProperty = Object.defineProperty; -// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe -var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; -var ENUMERABLE = 'enumerable'; -var CONFIGURABLE$1 = 'configurable'; -var WRITABLE = 'writable'; - -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -objectDefineProperty.f = DESCRIPTORS$8 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { - anObject$e(O); - P = toPropertyKey$2(P); - anObject$e(Attributes); - if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { - var current = $getOwnPropertyDescriptor$1(O, P); - if (current && current[WRITABLE]) { - O[P] = Attributes.value; - Attributes = { - configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], - enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], - writable: false - }; - } - } return $defineProperty(O, P, Attributes); -} : $defineProperty : function defineProperty(O, P, Attributes) { - anObject$e(O); - P = toPropertyKey$2(P); - anObject$e(Attributes); - if (IE8_DOM_DEFINE$1) try { - return $defineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw $TypeError$7('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -var makeBuiltIn$2 = {exports: {}}; - -var DESCRIPTORS$7 = descriptors; -var hasOwn$8 = hasOwnProperty_1; - -var FunctionPrototype$1 = Function.prototype; -// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe -var getDescriptor = DESCRIPTORS$7 && Object.getOwnPropertyDescriptor; - -var EXISTS = hasOwn$8(FunctionPrototype$1, 'name'); -// additional protection from minified / mangled / dropped function names -var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; -var CONFIGURABLE = EXISTS && (!DESCRIPTORS$7 || (DESCRIPTORS$7 && getDescriptor(FunctionPrototype$1, 'name').configurable)); - -var functionName = { - EXISTS: EXISTS, - PROPER: PROPER, - CONFIGURABLE: CONFIGURABLE -}; - -var uncurryThis$j = functionUncurryThis; -var isCallable$d = isCallable$j; -var store$1 = sharedStore; - -var functionToString = uncurryThis$j(Function.toString); - -// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper -if (!isCallable$d(store$1.inspectSource)) { - store$1.inspectSource = function (it) { - return functionToString(it); - }; -} - -var inspectSource$4 = store$1.inspectSource; - -var global$e = global$l; -var isCallable$c = isCallable$j; -var inspectSource$3 = inspectSource$4; - -var WeakMap$1 = global$e.WeakMap; - -var nativeWeakMap = isCallable$c(WeakMap$1) && /native code/.test(inspectSource$3(WeakMap$1)); - -var createPropertyDescriptor$3 = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -var DESCRIPTORS$6 = descriptors; -var definePropertyModule$5 = objectDefineProperty; -var createPropertyDescriptor$2 = createPropertyDescriptor$3; - -var createNonEnumerableProperty$3 = DESCRIPTORS$6 ? function (object, key, value) { - return definePropertyModule$5.f(object, key, createPropertyDescriptor$2(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -var shared$2 = shared$4.exports; -var uid = uid$2; - -var keys = shared$2('keys'); - -var sharedKey$2 = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - -var hiddenKeys$4 = {}; - -var NATIVE_WEAK_MAP = nativeWeakMap; -var global$d = global$l; -var uncurryThis$i = functionUncurryThis; -var isObject$5 = isObject$a; -var createNonEnumerableProperty$2 = createNonEnumerableProperty$3; -var hasOwn$7 = hasOwnProperty_1; -var shared$1 = sharedStore; -var sharedKey$1 = sharedKey$2; -var hiddenKeys$3 = hiddenKeys$4; - -var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; -var TypeError$2 = global$d.TypeError; -var WeakMap = global$d.WeakMap; -var set$1, get$2, has; - -var enforce = function (it) { - return has(it) ? get$2(it) : set$1(it, {}); -}; - -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject$5(it) || (state = get$2(it)).type !== TYPE) { - throw TypeError$2('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; - -if (NATIVE_WEAK_MAP || shared$1.state) { - var store = shared$1.state || (shared$1.state = new WeakMap()); - var wmget = uncurryThis$i(store.get); - var wmhas = uncurryThis$i(store.has); - var wmset = uncurryThis$i(store.set); - set$1 = function (it, metadata) { - if (wmhas(store, it)) throw new TypeError$2(OBJECT_ALREADY_INITIALIZED); - metadata.facade = it; - wmset(store, it, metadata); - return metadata; - }; - get$2 = function (it) { - return wmget(store, it) || {}; - }; - has = function (it) { - return wmhas(store, it); - }; -} else { - var STATE = sharedKey$1('state'); - hiddenKeys$3[STATE] = true; - set$1 = function (it, metadata) { - if (hasOwn$7(it, STATE)) throw new TypeError$2(OBJECT_ALREADY_INITIALIZED); - metadata.facade = it; - createNonEnumerableProperty$2(it, STATE, metadata); - return metadata; - }; - get$2 = function (it) { - return hasOwn$7(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return hasOwn$7(it, STATE); - }; -} - -var internalState = { - set: set$1, - get: get$2, - has: has, - enforce: enforce, - getterFor: getterFor -}; - -var fails$f = fails$l; -var isCallable$b = isCallable$j; -var hasOwn$6 = hasOwnProperty_1; -var DESCRIPTORS$5 = descriptors; -var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; -var inspectSource$2 = inspectSource$4; -var InternalStateModule$1 = internalState; - -var enforceInternalState = InternalStateModule$1.enforce; -var getInternalState$1 = InternalStateModule$1.get; -// eslint-disable-next-line es-x/no-object-defineproperty -- safe -var defineProperty$3 = Object.defineProperty; - -var CONFIGURABLE_LENGTH = DESCRIPTORS$5 && !fails$f(function () { - return defineProperty$3(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; -}); - -var TEMPLATE = String(String).split('String'); - -var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { - if (String(name).slice(0, 7) === 'Symbol(') { - name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; - } - if (options && options.getter) name = 'get ' + name; - if (options && options.setter) name = 'set ' + name; - if (!hasOwn$6(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { - if (DESCRIPTORS$5) defineProperty$3(value, 'name', { value: name, configurable: true }); - else value.name = name; - } - if (CONFIGURABLE_LENGTH && options && hasOwn$6(options, 'arity') && value.length !== options.arity) { - defineProperty$3(value, 'length', { value: options.arity }); - } - try { - if (options && hasOwn$6(options, 'constructor') && options.constructor) { - if (DESCRIPTORS$5) defineProperty$3(value, 'prototype', { writable: false }); - // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable - } else if (value.prototype) value.prototype = undefined; - } catch (error) { /* empty */ } - var state = enforceInternalState(value); - if (!hasOwn$6(state, 'source')) { - state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); - } return value; -}; - -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -// eslint-disable-next-line no-extend-native -- required -Function.prototype.toString = makeBuiltIn$1(function toString() { - return isCallable$b(this) && getInternalState$1(this).source || inspectSource$2(this); -}, 'toString'); - -var isCallable$a = isCallable$j; -var definePropertyModule$4 = objectDefineProperty; -var makeBuiltIn = makeBuiltIn$2.exports; -var defineGlobalProperty$1 = defineGlobalProperty$3; - -var defineBuiltIn$6 = function (O, key, value, options) { - if (!options) options = {}; - var simple = options.enumerable; - var name = options.name !== undefined ? options.name : key; - if (isCallable$a(value)) makeBuiltIn(value, name, options); - if (options.global) { - if (simple) O[key] = value; - else defineGlobalProperty$1(key, value); - } else { - try { - if (!options.unsafe) delete O[key]; - else if (O[key]) simple = true; - } catch (error) { /* empty */ } - if (simple) O[key] = value; - else definePropertyModule$4.f(O, key, { - value: value, - enumerable: false, - configurable: !options.nonConfigurable, - writable: !options.nonWritable - }); - } return O; -}; - -var uncurryThis$h = functionUncurryThis; - -var toString$8 = uncurryThis$h({}.toString); -var stringSlice$5 = uncurryThis$h(''.slice); - -var classofRaw$1 = function (it) { - return stringSlice$5(toString$8(it), 8, -1); -}; - -var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; -var isCallable$9 = isCallable$j; -var classofRaw = classofRaw$1; -var wellKnownSymbol$c = wellKnownSymbol$f; - -var TO_STRING_TAG$1 = wellKnownSymbol$c('toStringTag'); -var $Object$1 = Object; - -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; - -// getting tag from ES6+ `Object.prototype.toString` -var classof$9 = TO_STRING_TAG_SUPPORT$2 ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$1)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && isCallable$9(O.callee) ? 'Arguments' : result; -}; - -var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; -var classof$8 = classof$9; - -// `Object.prototype.toString` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.tostring -var objectToString$1 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { - return '[object ' + classof$8(this) + ']'; -}; - -var TO_STRING_TAG_SUPPORT = toStringTagSupport; -var defineBuiltIn$5 = defineBuiltIn$6; -var toString$7 = objectToString$1; - -// `Object.prototype.toString` method -// https://tc39.es/ecma262/#sec-object.prototype.tostring -if (!TO_STRING_TAG_SUPPORT) { - defineBuiltIn$5(Object.prototype, 'toString', toString$7, { unsafe: true }); -} - -var objectGetOwnPropertyDescriptor = {}; - -var objectPropertyIsEnumerable = {}; - -var $propertyIsEnumerable = {}.propertyIsEnumerable; -// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe -var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; - -// Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); - -// `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable -objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor$2(this, V); - return !!descriptor && descriptor.enumerable; -} : $propertyIsEnumerable; - -var uncurryThis$g = functionUncurryThis; -var fails$e = fails$l; -var classof$7 = classofRaw$1; - -var $Object = Object; -var split = uncurryThis$g(''.split); - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var indexedObject = fails$e(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins -- safe - return !$Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof$7(it) == 'String' ? split(it, '') : $Object(it); -} : $Object; - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject$2 = indexedObject; -var requireObjectCoercible$4 = requireObjectCoercible$6; - -var toIndexedObject$4 = function (it) { - return IndexedObject$2(requireObjectCoercible$4(it)); -}; - -var DESCRIPTORS$4 = descriptors; -var call$e = functionCall; -var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; -var createPropertyDescriptor$1 = createPropertyDescriptor$3; -var toIndexedObject$3 = toIndexedObject$4; -var toPropertyKey$1 = toPropertyKey$3; -var hasOwn$5 = hasOwnProperty_1; -var IE8_DOM_DEFINE = ie8DomDefine; - -// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe -var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -objectGetOwnPropertyDescriptor.f = DESCRIPTORS$4 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject$3(O); - P = toPropertyKey$1(P); - if (IE8_DOM_DEFINE) try { - return $getOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (hasOwn$5(O, P)) return createPropertyDescriptor$1(!call$e(propertyIsEnumerableModule$1.f, O, P), O[P]); -}; - -var objectGetOwnPropertyNames = {}; - -var ceil = Math.ceil; -var floor$1 = Math.floor; - -// `Math.trunc` method -// https://tc39.es/ecma262/#sec-math.trunc -// eslint-disable-next-line es-x/no-math-trunc -- safe -var mathTrunc = Math.trunc || function trunc(x) { - var n = +x; - return (n > 0 ? floor$1 : ceil)(n); -}; - -var trunc = mathTrunc; - -// `ToIntegerOrInfinity` abstract operation -// https://tc39.es/ecma262/#sec-tointegerorinfinity -var toIntegerOrInfinity$4 = function (argument) { - var number = +argument; - // eslint-disable-next-line no-self-compare -- NaN check - return number !== number || number === 0 ? 0 : trunc(number); -}; - -var toIntegerOrInfinity$3 = toIntegerOrInfinity$4; - -var max$2 = Math.max; -var min$3 = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -var toAbsoluteIndex$2 = function (index, length) { - var integer = toIntegerOrInfinity$3(index); - return integer < 0 ? max$2(integer + length, 0) : min$3(integer, length); -}; - -var toIntegerOrInfinity$2 = toIntegerOrInfinity$4; - -var min$2 = Math.min; - -// `ToLength` abstract operation -// https://tc39.es/ecma262/#sec-tolength -var toLength$3 = function (argument) { - return argument > 0 ? min$2(toIntegerOrInfinity$2(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - -var toLength$2 = toLength$3; - -// `LengthOfArrayLike` abstract operation -// https://tc39.es/ecma262/#sec-lengthofarraylike -var lengthOfArrayLike$4 = function (obj) { - return toLength$2(obj.length); -}; - -var toIndexedObject$2 = toIndexedObject$4; -var toAbsoluteIndex$1 = toAbsoluteIndex$2; -var lengthOfArrayLike$3 = lengthOfArrayLike$4; - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod$3 = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject$2($this); - var length = lengthOfArrayLike$3(O); - var index = toAbsoluteIndex$1(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare -- NaN check - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare -- NaN check - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -var arrayIncludes = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod$3(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod$3(false) -}; - -var uncurryThis$f = functionUncurryThis; -var hasOwn$4 = hasOwnProperty_1; -var toIndexedObject$1 = toIndexedObject$4; -var indexOf$1 = arrayIncludes.indexOf; -var hiddenKeys$2 = hiddenKeys$4; - -var push$3 = uncurryThis$f([].push); - -var objectKeysInternal = function (object, names) { - var O = toIndexedObject$1(object); - var i = 0; - var result = []; - var key; - for (key in O) !hasOwn$4(hiddenKeys$2, key) && hasOwn$4(O, key) && push$3(result, key); - // Don't enum bug & hidden keys - while (names.length > i) if (hasOwn$4(O, key = names[i++])) { - ~indexOf$1(result, key) || push$3(result, key); - } - return result; -}; - -// IE8- don't enum bug keys -var enumBugKeys$3 = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - -var internalObjectKeys$1 = objectKeysInternal; -var enumBugKeys$2 = enumBugKeys$3; - -var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); - -// `Object.getOwnPropertyNames` method -// https://tc39.es/ecma262/#sec-object.getownpropertynames -// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe -objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys$1(O, hiddenKeys$1); -}; - -var objectGetOwnPropertySymbols = {}; - -// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe -objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; - -var getBuiltIn$5 = getBuiltIn$8; -var uncurryThis$e = functionUncurryThis; -var getOwnPropertyNamesModule = objectGetOwnPropertyNames; -var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; -var anObject$d = anObject$f; - -var concat$2 = uncurryThis$e([].concat); - -// all object keys, includes non-enumerable and symbols -var ownKeys$1 = getBuiltIn$5('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject$d(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; - return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys; -}; - -var hasOwn$3 = hasOwnProperty_1; -var ownKeys = ownKeys$1; -var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; -var definePropertyModule$3 = objectDefineProperty; - -var copyConstructorProperties$1 = function (target, source, exceptions) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule$3.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!hasOwn$3(target, key) && !(exceptions && hasOwn$3(exceptions, key))) { - defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } - } -}; - -var fails$d = fails$l; -var isCallable$8 = isCallable$j; - -var replacement = /#|\.prototype\./; - -var isForced$2 = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : isCallable$8(detection) ? fails$d(detection) - : !!detection; -}; - -var normalize = isForced$2.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; - -var data = isForced$2.data = {}; -var NATIVE = isForced$2.NATIVE = 'N'; -var POLYFILL = isForced$2.POLYFILL = 'P'; - -var isForced_1 = isForced$2; - -var global$c = global$l; -var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; -var createNonEnumerableProperty$1 = createNonEnumerableProperty$3; -var defineBuiltIn$4 = defineBuiltIn$6; -var defineGlobalProperty = defineGlobalProperty$3; -var copyConstructorProperties = copyConstructorProperties$1; -var isForced$1 = isForced_1; - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.dontCallGetSet - prevent calling a getter on target - options.name - the .name of the function if it does not match the key -*/ -var _export = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global$c; - } else if (STATIC) { - target = global$c[TARGET] || defineGlobalProperty(TARGET, {}); - } else { - target = (global$c[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.dontCallGetSet) { - descriptor = getOwnPropertyDescriptor$1(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty == typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty$1(sourceProperty, 'sham', true); - } - defineBuiltIn$4(target, key, sourceProperty, options); - } -}; - -var classof$6 = classofRaw$1; -var global$b = global$l; - -var engineIsNode = classof$6(global$b.process) == 'process'; - -var isCallable$7 = isCallable$j; - -var $String$1 = String; -var $TypeError$6 = TypeError; - -var aPossiblePrototype$1 = function (argument) { - if (typeof argument == 'object' || isCallable$7(argument)) return argument; - throw $TypeError$6("Can't set " + $String$1(argument) + ' as a prototype'); -}; - -var uncurryThis$d = functionUncurryThis; -var anObject$c = anObject$f; -var aPossiblePrototype = aPossiblePrototype$1; - -// `Object.setPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.setprototypeof -// Works with __proto__ only. Old v8 can't work with null proto objects. -// eslint-disable-next-line es-x/no-object-setprototypeof -- safe -var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe - setter = uncurryThis$d(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); - setter(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject$c(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter(O, proto); - else O.__proto__ = proto; - return O; - }; -}() : undefined); - -var defineProperty$2 = objectDefineProperty.f; -var hasOwn$2 = hasOwnProperty_1; -var wellKnownSymbol$b = wellKnownSymbol$f; - -var TO_STRING_TAG = wellKnownSymbol$b('toStringTag'); - -var setToStringTag$1 = function (target, TAG, STATIC) { - if (target && !STATIC) target = target.prototype; - if (target && !hasOwn$2(target, TO_STRING_TAG)) { - defineProperty$2(target, TO_STRING_TAG, { configurable: true, value: TAG }); - } -}; - -var getBuiltIn$4 = getBuiltIn$8; -var definePropertyModule$2 = objectDefineProperty; -var wellKnownSymbol$a = wellKnownSymbol$f; -var DESCRIPTORS$3 = descriptors; - -var SPECIES$5 = wellKnownSymbol$a('species'); - -var setSpecies$1 = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn$4(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule$2.f; - - if (DESCRIPTORS$3 && Constructor && !Constructor[SPECIES$5]) { - defineProperty(Constructor, SPECIES$5, { - configurable: true, - get: function () { return this; } - }); - } -}; - -var isPrototypeOf$2 = objectIsPrototypeOf; - -var $TypeError$5 = TypeError; - -var anInstance$1 = function (it, Prototype) { - if (isPrototypeOf$2(Prototype, it)) return it; - throw $TypeError$5('Incorrect invocation'); -}; - -var uncurryThis$c = functionUncurryThis; -var fails$c = fails$l; -var isCallable$6 = isCallable$j; -var classof$5 = classof$9; -var getBuiltIn$3 = getBuiltIn$8; -var inspectSource$1 = inspectSource$4; - -var noop = function () { /* empty */ }; -var empty = []; -var construct = getBuiltIn$3('Reflect', 'construct'); -var constructorRegExp = /^\s*(?:class|function)\b/; -var exec$2 = uncurryThis$c(constructorRegExp.exec); -var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); - -var isConstructorModern = function isConstructor(argument) { - if (!isCallable$6(argument)) return false; - try { - construct(noop, empty, argument); - return true; - } catch (error) { - return false; - } -}; - -var isConstructorLegacy = function isConstructor(argument) { - if (!isCallable$6(argument)) return false; - switch (classof$5(argument)) { - case 'AsyncFunction': - case 'GeneratorFunction': - case 'AsyncGeneratorFunction': return false; - } - try { - // we can't check .prototype since constructors produced by .bind haven't it - // `Function#toString` throws on some built-it function in some legacy engines - // (for example, `DOMQuad` and similar in FF41-) - return INCORRECT_TO_STRING || !!exec$2(constructorRegExp, inspectSource$1(argument)); - } catch (error) { - return true; - } -}; - -isConstructorLegacy.sham = true; - -// `IsConstructor` abstract operation -// https://tc39.es/ecma262/#sec-isconstructor -var isConstructor$2 = !construct || fails$c(function () { - var called; - return isConstructorModern(isConstructorModern.call) - || !isConstructorModern(Object) - || !isConstructorModern(function () { called = true; }) - || called; -}) ? isConstructorLegacy : isConstructorModern; - -var isConstructor$1 = isConstructor$2; -var tryToString$2 = tryToString$4; - -var $TypeError$4 = TypeError; - -// `Assert: IsConstructor(argument) is true` -var aConstructor$1 = function (argument) { - if (isConstructor$1(argument)) return argument; - throw $TypeError$4(tryToString$2(argument) + ' is not a constructor'); -}; - -var anObject$b = anObject$f; -var aConstructor = aConstructor$1; -var wellKnownSymbol$9 = wellKnownSymbol$f; - -var SPECIES$4 = wellKnownSymbol$9('species'); - -// `SpeciesConstructor` abstract operation -// https://tc39.es/ecma262/#sec-speciesconstructor -var speciesConstructor$2 = function (O, defaultConstructor) { - var C = anObject$b(O).constructor; - var S; - return C === undefined || (S = anObject$b(C)[SPECIES$4]) == undefined ? defaultConstructor : aConstructor(S); -}; - -var NATIVE_BIND$1 = functionBindNative; - -var FunctionPrototype = Function.prototype; -var apply$3 = FunctionPrototype.apply; -var call$d = FunctionPrototype.call; - -// eslint-disable-next-line es-x/no-reflect -- safe -var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$1 ? call$d.bind(apply$3) : function () { - return call$d.apply(apply$3, arguments); -}); - -var uncurryThis$b = functionUncurryThis; -var aCallable$5 = aCallable$7; -var NATIVE_BIND = functionBindNative; - -var bind$5 = uncurryThis$b(uncurryThis$b.bind); - -// optional / simple context binding -var functionBindContext = function (fn, that) { - aCallable$5(fn); - return that === undefined ? fn : NATIVE_BIND ? bind$5(fn, that) : function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - -var getBuiltIn$2 = getBuiltIn$8; - -var html$2 = getBuiltIn$2('document', 'documentElement'); - -var uncurryThis$a = functionUncurryThis; - -var arraySlice$2 = uncurryThis$a([].slice); - -var $TypeError$3 = TypeError; - -var validateArgumentsLength$1 = function (passed, required) { - if (passed < required) throw $TypeError$3('Not enough arguments'); - return passed; -}; - -var userAgent$2 = engineUserAgent; - -var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); - -var global$a = global$l; -var apply$2 = functionApply; -var bind$4 = functionBindContext; -var isCallable$5 = isCallable$j; -var hasOwn$1 = hasOwnProperty_1; -var fails$b = fails$l; -var html$1 = html$2; -var arraySlice$1 = arraySlice$2; -var createElement = documentCreateElement$1; -var validateArgumentsLength = validateArgumentsLength$1; -var IS_IOS$1 = engineIsIos; -var IS_NODE$3 = engineIsNode; - -var set = global$a.setImmediate; -var clear = global$a.clearImmediate; -var process$3 = global$a.process; -var Dispatch = global$a.Dispatch; -var Function$1 = global$a.Function; -var MessageChannel = global$a.MessageChannel; -var String$1 = global$a.String; -var counter = 0; -var queue$1 = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var location, defer, channel, port; - -try { - // Deno throws a ReferenceError on `location` access without `--location` flag - location = global$a.location; -} catch (error) { /* empty */ } - -var run = function (id) { - if (hasOwn$1(queue$1, id)) { - var fn = queue$1[id]; - delete queue$1[id]; - fn(); - } -}; - -var runner = function (id) { - return function () { - run(id); - }; -}; - -var listener = function (event) { - run(event.data); -}; - -var post = function (id) { - // old engines have not location.origin - global$a.postMessage(String$1(id), location.protocol + '//' + location.host); -}; - -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if (!set || !clear) { - set = function setImmediate(handler) { - validateArgumentsLength(arguments.length, 1); - var fn = isCallable$5(handler) ? handler : Function$1(handler); - var args = arraySlice$1(arguments, 1); - queue$1[++counter] = function () { - apply$2(fn, undefined, args); - }; - defer(counter); - return counter; - }; - clear = function clearImmediate(id) { - delete queue$1[id]; - }; - // Node.js 0.8- - if (IS_NODE$3) { - defer = function (id) { - process$3.nextTick(runner(id)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(runner(id)); - }; - // Browsers with MessageChannel, includes WebWorkers - // except iOS - https://github.com/zloirock/core-js/issues/624 - } else if (MessageChannel && !IS_IOS$1) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = bind$4(port.postMessage, port); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if ( - global$a.addEventListener && - isCallable$5(global$a.postMessage) && - !global$a.importScripts && - location && location.protocol !== 'file:' && - !fails$b(post) - ) { - defer = post; - global$a.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in createElement('script')) { - defer = function (id) { - html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { - html$1.removeChild(this); - run(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(runner(id), 0); - }; - } -} - -var task$1 = { - set: set, - clear: clear -}; - -var userAgent$1 = engineUserAgent; -var global$9 = global$l; - -var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && global$9.Pebble !== undefined; - -var userAgent = engineUserAgent; - -var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); - -var global$8 = global$l; -var bind$3 = functionBindContext; -var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; -var macrotask = task$1.set; -var IS_IOS = engineIsIos; -var IS_IOS_PEBBLE = engineIsIosPebble; -var IS_WEBOS_WEBKIT = engineIsWebosWebkit; -var IS_NODE$2 = engineIsNode; - -var MutationObserver = global$8.MutationObserver || global$8.WebKitMutationObserver; -var document$2 = global$8.document; -var process$2 = global$8.process; -var Promise$1 = global$8.Promise; -// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` -var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$8, 'queueMicrotask'); -var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; - -var flush, head, last, notify$1, toggle, node, promise, then; - -// modern engines have queueMicrotask method -if (!queueMicrotask) { - flush = function () { - var parent, fn; - if (IS_NODE$2 && (parent = process$2.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (error) { - if (head) notify$1(); - else last = undefined; - throw error; - } - } last = undefined; - if (parent) parent.enter(); - }; - - // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 - if (!IS_IOS && !IS_NODE$2 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) { - toggle = true; - node = document$2.createTextNode(''); - new MutationObserver(flush).observe(node, { characterData: true }); - notify$1 = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (!IS_IOS_PEBBLE && Promise$1 && Promise$1.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - promise = Promise$1.resolve(undefined); - // workaround of WebKit ~ iOS Safari 10.1 bug - promise.constructor = Promise$1; - then = bind$3(promise.then, promise); - notify$1 = function () { - then(flush); - }; - // Node.js without promises - } else if (IS_NODE$2) { - notify$1 = function () { - process$2.nextTick(flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessage - // - onreadystatechange - // - setTimeout - } else { - // strange IE + webpack dev server bug - use .bind(global) - macrotask = bind$3(macrotask, global$8); - notify$1 = function () { - macrotask(flush); - }; - } -} - -var microtask$1 = queueMicrotask || function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify$1(); - } last = task; -}; - -var global$7 = global$l; - -var hostReportErrors$1 = function (a, b) { - var console = global$7.console; - if (console && console.error) { - arguments.length == 1 ? console.error(a) : console.error(a, b); - } -}; - -var perform$3 = function (exec) { - try { - return { error: false, value: exec() }; - } catch (error) { - return { error: true, value: error }; - } -}; - -var Queue$1 = function () { - this.head = null; - this.tail = null; -}; - -Queue$1.prototype = { - add: function (item) { - var entry = { item: item, next: null }; - if (this.head) this.tail.next = entry; - else this.head = entry; - this.tail = entry; - }, - get: function () { - var entry = this.head; - if (entry) { - this.head = entry.next; - if (this.tail === entry) this.tail = null; - return entry.item; - } - } -}; - -var queue = Queue$1; - -var global$6 = global$l; - -var promiseNativeConstructor = global$6.Promise; - -var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; - -var IS_DENO$1 = engineIsDeno; -var IS_NODE$1 = engineIsNode; - -var engineIsBrowser = !IS_DENO$1 && !IS_NODE$1 - && typeof window == 'object' - && typeof document == 'object'; - -var global$5 = global$l; -var NativePromiseConstructor$3 = promiseNativeConstructor; -var isCallable$4 = isCallable$j; -var isForced = isForced_1; -var inspectSource = inspectSource$4; -var wellKnownSymbol$8 = wellKnownSymbol$f; -var IS_BROWSER = engineIsBrowser; -var IS_DENO = engineIsDeno; -var V8_VERSION$1 = engineV8Version; - -NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype; -var SPECIES$3 = wellKnownSymbol$8('species'); -var SUBCLASSING = false; -var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$4(global$5.PromiseRejectionEvent); - -var FORCED_PROMISE_CONSTRUCTOR$5 = isForced('Promise', function () { - var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$3); - var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$3); - // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // We can't detect it synchronously, so just check versions - if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION$1 === 66) return true; - // We can't use @@species feature detection in V8 since it causes - // deoptimization and performance degradation - // https://github.com/zloirock/core-js/issues/679 - if (!V8_VERSION$1 || V8_VERSION$1 < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { - // Detect correctness of subclassing with @@species support - var promise = new NativePromiseConstructor$3(function (resolve) { resolve(1); }); - var FakePromise = function (exec) { - exec(function () { /* empty */ }, function () { /* empty */ }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES$3] = FakePromise; - SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; - if (!SUBCLASSING) return true; - // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test - } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; -}); - -var promiseConstructorDetection = { - CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, - REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, - SUBCLASSING: SUBCLASSING -}; - -var newPromiseCapability$2 = {}; - -var aCallable$4 = aCallable$7; - -var PromiseCapability = function (C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aCallable$4(resolve); - this.reject = aCallable$4(reject); -}; - -// `NewPromiseCapability` abstract operation -// https://tc39.es/ecma262/#sec-newpromisecapability -newPromiseCapability$2.f = function (C) { - return new PromiseCapability(C); -}; - -var $$b = _export; -var IS_NODE = engineIsNode; -var global$4 = global$l; -var call$c = functionCall; -var defineBuiltIn$3 = defineBuiltIn$6; -var setPrototypeOf = objectSetPrototypeOf; -var setToStringTag = setToStringTag$1; -var setSpecies = setSpecies$1; -var aCallable$3 = aCallable$7; -var isCallable$3 = isCallable$j; -var isObject$4 = isObject$a; -var anInstance = anInstance$1; -var speciesConstructor$1 = speciesConstructor$2; -var task = task$1.set; -var microtask = microtask$1; -var hostReportErrors = hostReportErrors$1; -var perform$2 = perform$3; -var Queue = queue; -var InternalStateModule = internalState; -var NativePromiseConstructor$2 = promiseNativeConstructor; -var PromiseConstructorDetection = promiseConstructorDetection; -var newPromiseCapabilityModule$3 = newPromiseCapability$2; - -var PROMISE = 'Promise'; -var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; -var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; -var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; -var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); -var setInternalState = InternalStateModule.set; -var NativePromisePrototype$1 = NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; -var PromiseConstructor = NativePromiseConstructor$2; -var PromisePrototype = NativePromisePrototype$1; -var TypeError$1 = global$4.TypeError; -var document$1 = global$4.document; -var process$1 = global$4.process; -var newPromiseCapability$1 = newPromiseCapabilityModule$3.f; -var newGenericPromiseCapability = newPromiseCapability$1; - -var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$4.dispatchEvent); -var UNHANDLED_REJECTION = 'unhandledrejection'; -var REJECTION_HANDLED = 'rejectionhandled'; -var PENDING = 0; -var FULFILLED = 1; -var REJECTED = 2; -var HANDLED = 1; -var UNHANDLED = 2; - -var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; - -// helpers -var isThenable = function (it) { - var then; - return isObject$4(it) && isCallable$3(then = it.then) ? then : false; -}; - -var callReaction = function (reaction, state) { - var value = state.value; - var ok = state.state == FULFILLED; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) onHandleUnhandled(state); - state.rejection = HANDLED; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // can throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError$1('Promise-chain cycle')); - } else if (then = isThenable(result)) { - call$c(then, result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (error) { - if (domain && !exited) domain.exit(); - reject(error); - } -}; - -var notify = function (state, isReject) { - if (state.notified) return; - state.notified = true; - microtask(function () { - var reactions = state.reactions; - var reaction; - while (reaction = reactions.get()) { - callReaction(reaction, state); - } - state.notified = false; - if (isReject && !state.rejection) onUnhandled(state); - }); -}; - -var dispatchEvent = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT) { - event = document$1.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global$4.dispatchEvent(event); - } else event = { promise: promise, reason: reason }; - if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$4['on' + name])) handler(event); - else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); -}; - -var onUnhandled = function (state) { - call$c(task, global$4, function () { - var promise = state.facade; - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - if (IS_UNHANDLED) { - result = perform$2(function () { - if (IS_NODE) { - process$1.emit('unhandledRejection', value, promise); - } else dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) throw result.value; - } - }); -}; - -var isUnhandled = function (state) { - return state.rejection !== HANDLED && !state.parent; -}; - -var onHandleUnhandled = function (state) { - call$c(task, global$4, function () { - var promise = state.facade; - if (IS_NODE) { - process$1.emit('rejectionHandled', promise); - } else dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); -}; - -var bind$2 = function (fn, state, unwrap) { - return function (value) { - fn(state, value, unwrap); - }; -}; - -var internalReject = function (state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - state.value = value; - state.state = REJECTED; - notify(state, true); -}; - -var internalResolve = function (state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - try { - if (state.facade === value) throw TypeError$1("Promise can't be resolved itself"); - var then = isThenable(value); - if (then) { - microtask(function () { - var wrapper = { done: false }; - try { - call$c(then, value, - bind$2(internalResolve, wrapper, state), - bind$2(internalReject, wrapper, state) - ); - } catch (error) { - internalReject(wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify(state, false); - } - } catch (error) { - internalReject({ done: false }, error, state); - } -}; - -// constructor polyfill -if (FORCED_PROMISE_CONSTRUCTOR$4) { - // 25.4.3.1 Promise(executor) - PromiseConstructor = function Promise(executor) { - anInstance(this, PromisePrototype); - aCallable$3(executor); - call$c(Internal, this); - var state = getInternalPromiseState(this); - try { - executor(bind$2(internalResolve, state), bind$2(internalReject, state)); - } catch (error) { - internalReject(state, error); - } - }; - - PromisePrototype = PromiseConstructor.prototype; - - // eslint-disable-next-line no-unused-vars -- required for `.length` - Internal = function Promise(executor) { - setInternalState(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: new Queue(), - rejection: false, - state: PENDING, - value: undefined - }); - }; - - // `Promise.prototype.then` method - // https://tc39.es/ecma262/#sec-promise.prototype.then - Internal.prototype = defineBuiltIn$3(PromisePrototype, 'then', function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability$1(speciesConstructor$1(this, PromiseConstructor)); - state.parent = true; - reaction.ok = isCallable$3(onFulfilled) ? onFulfilled : true; - reaction.fail = isCallable$3(onRejected) && onRejected; - reaction.domain = IS_NODE ? process$1.domain : undefined; - if (state.state == PENDING) state.reactions.add(reaction); - else microtask(function () { - callReaction(reaction, state); - }); - return reaction.promise; - }); - - OwnPromiseCapability = function () { - var promise = new Internal(); - var state = getInternalPromiseState(promise); - this.promise = promise; - this.resolve = bind$2(internalResolve, state); - this.reject = bind$2(internalReject, state); - }; - - newPromiseCapabilityModule$3.f = newPromiseCapability$1 = function (C) { - return C === PromiseConstructor || C === PromiseWrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; - - if (isCallable$3(NativePromiseConstructor$2) && NativePromisePrototype$1 !== Object.prototype) { - nativeThen = NativePromisePrototype$1.then; - - if (!NATIVE_PROMISE_SUBCLASSING) { - // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs - defineBuiltIn$3(NativePromisePrototype$1, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - call$c(nativeThen, that, resolve, reject); - }).then(onFulfilled, onRejected); - // https://github.com/zloirock/core-js/issues/640 - }, { unsafe: true }); - } - - // make `.constructor === Promise` work for native promise-based APIs - try { - delete NativePromisePrototype$1.constructor; - } catch (error) { /* empty */ } - - // make `instanceof Promise` work for native promise-based APIs - if (setPrototypeOf) { - setPrototypeOf(NativePromisePrototype$1, PromisePrototype); - } - } -} - -$$b({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { - Promise: PromiseConstructor -}); - -setToStringTag(PromiseConstructor, PROMISE, false); -setSpecies(PROMISE); - -var iterators = {}; - -var wellKnownSymbol$7 = wellKnownSymbol$f; -var Iterators$1 = iterators; - -var ITERATOR$2 = wellKnownSymbol$7('iterator'); -var ArrayPrototype = Array.prototype; - -// check on default Array iterator -var isArrayIteratorMethod$1 = function (it) { - return it !== undefined && (Iterators$1.Array === it || ArrayPrototype[ITERATOR$2] === it); -}; - -var classof$4 = classof$9; -var getMethod$3 = getMethod$5; -var Iterators = iterators; -var wellKnownSymbol$6 = wellKnownSymbol$f; - -var ITERATOR$1 = wellKnownSymbol$6('iterator'); - -var getIteratorMethod$2 = function (it) { - if (it != undefined) return getMethod$3(it, ITERATOR$1) - || getMethod$3(it, '@@iterator') - || Iterators[classof$4(it)]; -}; - -var call$b = functionCall; -var aCallable$2 = aCallable$7; -var anObject$a = anObject$f; -var tryToString$1 = tryToString$4; -var getIteratorMethod$1 = getIteratorMethod$2; - -var $TypeError$2 = TypeError; - -var getIterator$1 = function (argument, usingIterator) { - var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; - if (aCallable$2(iteratorMethod)) return anObject$a(call$b(iteratorMethod, argument)); - throw $TypeError$2(tryToString$1(argument) + ' is not iterable'); -}; - -var call$a = functionCall; -var anObject$9 = anObject$f; -var getMethod$2 = getMethod$5; - -var iteratorClose$1 = function (iterator, kind, value) { - var innerResult, innerError; - anObject$9(iterator); - try { - innerResult = getMethod$2(iterator, 'return'); - if (!innerResult) { - if (kind === 'throw') throw value; - return value; - } - innerResult = call$a(innerResult, iterator); - } catch (error) { - innerError = true; - innerResult = error; - } - if (kind === 'throw') throw value; - if (innerError) throw innerResult; - anObject$9(innerResult); - return value; -}; - -var bind$1 = functionBindContext; -var call$9 = functionCall; -var anObject$8 = anObject$f; -var tryToString = tryToString$4; -var isArrayIteratorMethod = isArrayIteratorMethod$1; -var lengthOfArrayLike$2 = lengthOfArrayLike$4; -var isPrototypeOf$1 = objectIsPrototypeOf; -var getIterator = getIterator$1; -var getIteratorMethod = getIteratorMethod$2; -var iteratorClose = iteratorClose$1; - -var $TypeError$1 = TypeError; - -var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; -}; - -var ResultPrototype = Result.prototype; - -var iterate$2 = function (iterable, unboundFunction, options) { - var that = options && options.that; - var AS_ENTRIES = !!(options && options.AS_ENTRIES); - var IS_RECORD = !!(options && options.IS_RECORD); - var IS_ITERATOR = !!(options && options.IS_ITERATOR); - var INTERRUPTED = !!(options && options.INTERRUPTED); - var fn = bind$1(unboundFunction, that); - var iterator, iterFn, index, length, result, next, step; - - var stop = function (condition) { - if (iterator) iteratorClose(iterator, 'normal', condition); - return new Result(true, condition); - }; - - var callFn = function (value) { - if (AS_ENTRIES) { - anObject$8(value); - return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); - } return INTERRUPTED ? fn(value, stop) : fn(value); - }; - - if (IS_RECORD) { - iterator = iterable.iterator; - } else if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (!iterFn) throw $TypeError$1(tryToString(iterable) + ' is not iterable'); - // optimisation for array iterators - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = lengthOfArrayLike$2(iterable); length > index; index++) { - result = callFn(iterable[index]); - if (result && isPrototypeOf$1(ResultPrototype, result)) return result; - } return new Result(false); - } - iterator = getIterator(iterable, iterFn); - } - - next = IS_RECORD ? iterable.next : iterator.next; - while (!(step = call$9(next, iterator)).done) { - try { - result = callFn(step.value); - } catch (error) { - iteratorClose(iterator, 'throw', error); - } - if (typeof result == 'object' && result && isPrototypeOf$1(ResultPrototype, result)) return result; - } return new Result(false); -}; - -var wellKnownSymbol$5 = wellKnownSymbol$f; - -var ITERATOR = wellKnownSymbol$5('iterator'); -var SAFE_CLOSING = false; - -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR] = function () { - return this; - }; - // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing - Array.from(iteratorWithReturn, function () { throw 2; }); -} catch (error) { /* empty */ } - -var checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; -}; - -var NativePromiseConstructor$1 = promiseNativeConstructor; -var checkCorrectnessOfIteration = checkCorrectnessOfIteration$1; -var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; - -var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration(function (iterable) { - NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ }); -}); - -var $$a = _export; -var call$8 = functionCall; -var aCallable$1 = aCallable$7; -var newPromiseCapabilityModule$2 = newPromiseCapability$2; -var perform$1 = perform$3; -var iterate$1 = iterate$2; -var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; - -// `Promise.all` method -// https://tc39.es/ecma262/#sec-promise.all -$$a({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapabilityModule$2.f(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform$1(function () { - var $promiseResolve = aCallable$1(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate$1(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - remaining++; - call$8($promiseResolve, C, promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) reject(result.value); - return capability.promise; - } -}); - -var $$9 = _export; -var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; -var NativePromiseConstructor = promiseNativeConstructor; -var getBuiltIn$1 = getBuiltIn$8; -var isCallable$2 = isCallable$j; -var defineBuiltIn$2 = defineBuiltIn$6; - -var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; - -// `Promise.prototype.catch` method -// https://tc39.es/ecma262/#sec-promise.prototype.catch -$$9({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } -}); - -// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` -if (isCallable$2(NativePromiseConstructor)) { - var method = getBuiltIn$1('Promise').prototype['catch']; - if (NativePromisePrototype['catch'] !== method) { - defineBuiltIn$2(NativePromisePrototype, 'catch', method, { unsafe: true }); - } -} - -var $$8 = _export; -var call$7 = functionCall; -var aCallable = aCallable$7; -var newPromiseCapabilityModule$1 = newPromiseCapability$2; -var perform = perform$3; -var iterate = iterate$2; -var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; - -// `Promise.race` method -// https://tc39.es/ecma262/#sec-promise.race -$$8({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { - race: function race(iterable) { - var C = this; - var capability = newPromiseCapabilityModule$1.f(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aCallable(C.resolve); - iterate(iterable, function (promise) { - call$7($promiseResolve, C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) reject(result.value); - return capability.promise; - } -}); - -var $$7 = _export; -var call$6 = functionCall; -var newPromiseCapabilityModule = newPromiseCapability$2; -var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; - -// `Promise.reject` method -// https://tc39.es/ecma262/#sec-promise.reject -$$7({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { - reject: function reject(r) { - var capability = newPromiseCapabilityModule.f(this); - call$6(capability.reject, undefined, r); - return capability.promise; - } -}); - -var anObject$7 = anObject$f; -var isObject$3 = isObject$a; -var newPromiseCapability = newPromiseCapability$2; - -var promiseResolve$1 = function (C, x) { - anObject$7(C); - if (isObject$3(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - -var $$6 = _export; -var getBuiltIn = getBuiltIn$8; -var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; -var promiseResolve = promiseResolve$1; - -getBuiltIn('Promise'); - -// `Promise.resolve` method -// https://tc39.es/ecma262/#sec-promise.resolve -$$6({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { - resolve: function resolve(x) { - return promiseResolve(this, x); - } -}); - -var FilePickerType; - -(function (FilePickerType) { - FilePickerType[FilePickerType["Choose"] = 1] = "Choose"; - FilePickerType[FilePickerType["Move"] = 2] = "Move"; - FilePickerType[FilePickerType["Copy"] = 3] = "Copy"; - FilePickerType[FilePickerType["CopyMove"] = 4] = "CopyMove"; -})(FilePickerType || (FilePickerType = {})); - -var FilePicker = -/** @class */ -function () { - function FilePicker(title, multiSelect, mimeTypeFilter, modal, type, directoriesAllowed, path) { - this.title = title; - this.multiSelect = multiSelect; - this.mimeTypeFiler = mimeTypeFilter; - this.modal = modal; - this.type = type; - this.directoriesAllowed = directoriesAllowed; - this.path = path; - } - - FilePicker.prototype.pick = function () { - var _this = this; - - return new Promise(function (res, rej) { - OC.dialogs.filepicker(_this.title, res, _this.multiSelect, _this.mimeTypeFiler, _this.modal, _this.type, _this.path, { - allowDirectoryChooser: _this.directoriesAllowed - }); - }); - }; - - return FilePicker; -}(); - -var FilePickerBuilder = -/** @class */ -function () { - function FilePickerBuilder(title) { - this.multiSelect = false; - this.mimeTypeFiler = []; - this.modal = true; - this.type = FilePickerType.Choose; - this.directoriesAllowed = false; - this.title = title; - } - - FilePickerBuilder.prototype.setMultiSelect = function (ms) { - this.multiSelect = ms; - return this; - }; - - FilePickerBuilder.prototype.addMimeTypeFilter = function (filter) { - this.mimeTypeFiler.push(filter); - return this; - }; - - FilePickerBuilder.prototype.setMimeTypeFilter = function (filter) { - this.mimeTypeFiler = filter; - return this; - }; - - FilePickerBuilder.prototype.setModal = function (modal) { - this.modal = modal; - return this; - }; - - FilePickerBuilder.prototype.setType = function (type) { - this.type = type; - return this; - }; - - FilePickerBuilder.prototype.allowDirectories = function (allow) { - if (allow === void 0) { - allow = true; - } - - this.directoriesAllowed = allow; - return this; - }; - - FilePickerBuilder.prototype.startAt = function (path) { - this.path = path; - return this; - }; - - FilePickerBuilder.prototype.build = function () { - return new FilePicker(this.title, this.multiSelect, this.mimeTypeFiler, this.modal, this.type, this.directoriesAllowed, this.path); - }; - - return FilePickerBuilder; -}(); -function getFilePickerBuilder(title) { - return new FilePickerBuilder(title); -} - -var internalObjectKeys = objectKeysInternal; -var enumBugKeys$1 = enumBugKeys$3; - -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -// eslint-disable-next-line es-x/no-object-keys -- safe -var objectKeys$2 = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys$1); -}; - -var DESCRIPTORS$2 = descriptors; -var uncurryThis$9 = functionUncurryThis; -var call$5 = functionCall; -var fails$a = fails$l; -var objectKeys$1 = objectKeys$2; -var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; -var propertyIsEnumerableModule = objectPropertyIsEnumerable; -var toObject$2 = toObject$4; -var IndexedObject$1 = indexedObject; - -// eslint-disable-next-line es-x/no-object-assign -- safe -var $assign = Object.assign; -// eslint-disable-next-line es-x/no-object-defineproperty -- required for testing -var defineProperty$1 = Object.defineProperty; -var concat$1 = uncurryThis$9([].concat); - -// `Object.assign` method -// https://tc39.es/ecma262/#sec-object.assign -var objectAssign = !$assign || fails$a(function () { - // should have correct order of operations (Edge bug) - if (DESCRIPTORS$2 && $assign({ b: 1 }, $assign(defineProperty$1({}, 'a', { - enumerable: true, - get: function () { - defineProperty$1(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { b: 2 })).b !== 1) return true; - // should work with symbols and should have deterministic property order (V8 bug) - var A = {}; - var B = {}; - // eslint-disable-next-line es-x/no-symbol -- safe - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return $assign({}, A)[symbol] != 7 || objectKeys$1($assign({}, B)).join('') != alphabet; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` - var T = toObject$2(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - var propertyIsEnumerable = propertyIsEnumerableModule.f; - while (argumentsLength > index) { - var S = IndexedObject$1(arguments[index++]); - var keys = getOwnPropertySymbols ? concat$1(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS$2 || call$5(propertyIsEnumerable, S, key)) T[key] = S[key]; - } - } return T; -} : $assign; - -var $$5 = _export; -var assign = objectAssign; - -// `Object.assign` method -// https://tc39.es/ecma262/#sec-object.assign -// eslint-disable-next-line es-x/no-object-assign -- required for testing -$$5({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { - assign: assign -}); - -var classof$3 = classof$9; - -var $String = String; - -var toString$6 = function (argument) { - if (classof$3(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); - return $String(argument); -}; - -var anObject$6 = anObject$f; - -// `RegExp.prototype.flags` getter implementation -// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags -var regexpFlags$1 = function () { - var that = anObject$6(this); - var result = ''; - if (that.hasIndices) result += 'd'; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.unicodeSets) result += 'v'; - if (that.sticky) result += 'y'; - return result; -}; - -var call$4 = functionCall; -var hasOwn = hasOwnProperty_1; -var isPrototypeOf = objectIsPrototypeOf; -var regExpFlags = regexpFlags$1; - -var RegExpPrototype$2 = RegExp.prototype; - -var regexpGetFlags = function (R) { - var flags = R.flags; - return flags === undefined && !('flags' in RegExpPrototype$2) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype$2, R) - ? call$4(regExpFlags, R) : flags; -}; - -var PROPER_FUNCTION_NAME$1 = functionName.PROPER; -var defineBuiltIn$1 = defineBuiltIn$6; -var anObject$5 = anObject$f; -var $toString = toString$6; -var fails$9 = fails$l; -var getRegExpFlags = regexpGetFlags; - -var TO_STRING = 'toString'; -var RegExpPrototype$1 = RegExp.prototype; -var n$ToString = RegExpPrototype$1[TO_STRING]; - -var NOT_GENERIC = fails$9(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); -// FF44- RegExp#toString has a wrong name -var INCORRECT_NAME = PROPER_FUNCTION_NAME$1 && n$ToString.name != TO_STRING; - -// `RegExp.prototype.toString` method -// https://tc39.es/ecma262/#sec-regexp.prototype.tostring -if (NOT_GENERIC || INCORRECT_NAME) { - defineBuiltIn$1(RegExp.prototype, TO_STRING, function toString() { - var R = anObject$5(this); - var pattern = $toString(R.source); - var flags = $toString(getRegExpFlags(R)); - return '/' + pattern + '/' + flags; - }, { unsafe: true }); -} - -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); -}; - -function _typeof(obj) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, _typeof(obj); -} - -var fails$8 = fails$l; -var global$3 = global$l; - -// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError -var $RegExp$2 = global$3.RegExp; - -var UNSUPPORTED_Y$2 = fails$8(function () { - var re = $RegExp$2('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; -}); - -// UC Browser bug -// https://github.com/zloirock/core-js/issues/1008 -var MISSED_STICKY = UNSUPPORTED_Y$2 || fails$8(function () { - return !$RegExp$2('a', 'y').sticky; -}); - -var BROKEN_CARET = UNSUPPORTED_Y$2 || fails$8(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = $RegExp$2('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; -}); - -var regexpStickyHelpers = { - BROKEN_CARET: BROKEN_CARET, - MISSED_STICKY: MISSED_STICKY, - UNSUPPORTED_Y: UNSUPPORTED_Y$2 -}; - -var objectDefineProperties = {}; - -var DESCRIPTORS$1 = descriptors; -var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; -var definePropertyModule$1 = objectDefineProperty; -var anObject$4 = anObject$f; -var toIndexedObject = toIndexedObject$4; -var objectKeys = objectKeys$2; - -// `Object.defineProperties` method -// https://tc39.es/ecma262/#sec-object.defineproperties -// eslint-disable-next-line es-x/no-object-defineproperties -- safe -objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { - anObject$4(O); - var props = toIndexedObject(Properties); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) definePropertyModule$1.f(O, key = keys[index++], props[key]); - return O; -}; - -var anObject$3 = anObject$f; -var definePropertiesModule = objectDefineProperties; -var enumBugKeys = enumBugKeys$3; -var hiddenKeys = hiddenKeys$4; -var html = html$2; -var documentCreateElement = documentCreateElement$1; -var sharedKey = sharedKey$2; - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - activeXDocument = new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = typeof document != 'undefined' - ? document.domain && activeXDocument - ? NullProtoObjectViaActiveX(activeXDocument) // old IE - : NullProtoObjectViaIFrame() - : NullProtoObjectViaActiveX(activeXDocument); // WSH - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys[IE_PROTO] = true; - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -// eslint-disable-next-line es-x/no-object-create -- safe -var objectCreate = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject$3(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : definePropertiesModule.f(result, Properties); -}; - -var fails$7 = fails$l; -var global$2 = global$l; - -// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError -var $RegExp$1 = global$2.RegExp; - -var regexpUnsupportedDotAll = fails$7(function () { - var re = $RegExp$1('.', 's'); - return !(re.dotAll && re.exec('\n') && re.flags === 's'); -}); - -var fails$6 = fails$l; -var global$1 = global$l; - -// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError -var $RegExp = global$1.RegExp; - -var regexpUnsupportedNcg = fails$6(function () { - var re = $RegExp('(?b)', 'g'); - return re.exec('b').groups.a !== 'b' || - 'b'.replace(re, '$c') !== 'bc'; -}); - -/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ -/* eslint-disable regexp/no-useless-quantifier -- testing */ -var call$3 = functionCall; -var uncurryThis$8 = functionUncurryThis; -var toString$5 = toString$6; -var regexpFlags = regexpFlags$1; -var stickyHelpers$1 = regexpStickyHelpers; -var shared = shared$4.exports; -var create = objectCreate; -var getInternalState = internalState.get; -var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; -var UNSUPPORTED_NCG = regexpUnsupportedNcg; - -var nativeReplace = shared('native-string-replace', String.prototype.replace); -var nativeExec = RegExp.prototype.exec; -var patchedExec = nativeExec; -var charAt$3 = uncurryThis$8(''.charAt); -var indexOf = uncurryThis$8(''.indexOf); -var replace$2 = uncurryThis$8(''.replace); -var stringSlice$4 = uncurryThis$8(''.slice); - -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - call$3(nativeExec, re1, 'a'); - call$3(nativeExec, re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; -})(); - -var UNSUPPORTED_Y$1 = stickyHelpers$1.BROKEN_CARET; - -// nonparticipating capturing group, copied from es5-shim's String#split patch. -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1 || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; - -if (PATCH) { - patchedExec = function exec(string) { - var re = this; - var state = getInternalState(re); - var str = toString$5(string); - var raw = state.raw; - var result, reCopy, lastIndex, match, i, object, group; - - if (raw) { - raw.lastIndex = re.lastIndex; - result = call$3(patchedExec, raw, str); - re.lastIndex = raw.lastIndex; - return result; - } - - var groups = state.groups; - var sticky = UNSUPPORTED_Y$1 && re.sticky; - var flags = call$3(regexpFlags, re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = replace$2(flags, 'y', ''); - if (indexOf(flags, 'g') === -1) { - flags += 'g'; - } - - strCopy = stringSlice$4(str, re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - - match = call$3(nativeExec, sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = stringSlice$4(match.input, charsAdded); - match[0] = stringSlice$4(match[0], charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ - call$3(nativeReplace, match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - if (match && groups) { - match.groups = object = create(null); - for (i = 0; i < groups.length; i++) { - group = groups[i]; - object[group[0]] = match[group[1]]; - } - } - - return match; - }; -} - -var regexpExec$3 = patchedExec; - -var $$4 = _export; -var exec$1 = regexpExec$3; - -// `RegExp.prototype.exec` method -// https://tc39.es/ecma262/#sec-regexp.prototype.exec -$$4({ target: 'RegExp', proto: true, forced: /./.exec !== exec$1 }, { - exec: exec$1 -}); - -// TODO: Remove from `core-js@4` since it's moved to entry points - -var uncurryThis$7 = functionUncurryThis; -var defineBuiltIn = defineBuiltIn$6; -var regexpExec$2 = regexpExec$3; -var fails$5 = fails$l; -var wellKnownSymbol$4 = wellKnownSymbol$f; -var createNonEnumerableProperty = createNonEnumerableProperty$3; - -var SPECIES$2 = wellKnownSymbol$4('species'); -var RegExpPrototype = RegExp.prototype; - -var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { - var SYMBOL = wellKnownSymbol$4(KEY); - - var DELEGATES_TO_SYMBOL = !fails$5(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$5(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES$2] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - FORCED - ) { - var uncurriedNativeRegExpMethod = uncurryThis$7(/./[SYMBOL]); - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - var uncurriedNativeMethod = uncurryThis$7(nativeMethod); - var $exec = regexp.exec; - if ($exec === regexpExec$2 || $exec === RegExpPrototype.exec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) }; - } - return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) }; - } - return { done: false }; - }); - - defineBuiltIn(String.prototype, KEY, methods[0]); - defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); - } - - if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); -}; - -var uncurryThis$6 = functionUncurryThis; -var toIntegerOrInfinity$1 = toIntegerOrInfinity$4; -var toString$4 = toString$6; -var requireObjectCoercible$3 = requireObjectCoercible$6; - -var charAt$2 = uncurryThis$6(''.charAt); -var charCodeAt = uncurryThis$6(''.charCodeAt); -var stringSlice$3 = uncurryThis$6(''.slice); - -var createMethod$2 = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = toString$4(requireObjectCoercible$3($this)); - var position = toIntegerOrInfinity$1(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = charCodeAt(S, position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING - ? charAt$2(S, position) - : first - : CONVERT_TO_STRING - ? stringSlice$3(S, position, position + 2) - : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; - -var stringMultibyte = { - // `String.prototype.codePointAt` method - // https://tc39.es/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod$2(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod$2(true) -}; - -var charAt$1 = stringMultibyte.charAt; - -// `AdvanceStringIndex` abstract operation -// https://tc39.es/ecma262/#sec-advancestringindex -var advanceStringIndex$2 = function (S, index, unicode) { - return index + (unicode ? charAt$1(S, index).length : 1); -}; - -var uncurryThis$5 = functionUncurryThis; -var toObject$1 = toObject$4; - -var floor = Math.floor; -var charAt = uncurryThis$5(''.charAt); -var replace$1 = uncurryThis$5(''.replace); -var stringSlice$2 = uncurryThis$5(''.slice); -var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; -var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; - -// `GetSubstitution` abstract operation -// https://tc39.es/ecma262/#sec-getsubstitution -var getSubstitution$1 = function (matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject$1(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return replace$1(replacement, symbols, function (match, ch) { - var capture; - switch (charAt(ch, 0)) { - case '$': return '$'; - case '&': return matched; - case '`': return stringSlice$2(str, 0, position); - case "'": return stringSlice$2(str, tailPos); - case '<': - capture = namedCaptures[stringSlice$2(ch, 1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); -}; - -var call$2 = functionCall; -var anObject$2 = anObject$f; -var isCallable$1 = isCallable$j; -var classof$2 = classofRaw$1; -var regexpExec$1 = regexpExec$3; - -var $TypeError = TypeError; - -// `RegExpExec` abstract operation -// https://tc39.es/ecma262/#sec-regexpexec -var regexpExecAbstract = function (R, S) { - var exec = R.exec; - if (isCallable$1(exec)) { - var result = call$2(exec, R, S); - if (result !== null) anObject$2(result); - return result; - } - if (classof$2(R) === 'RegExp') return call$2(regexpExec$1, R, S); - throw $TypeError('RegExp#exec called on incompatible receiver'); -}; - -var apply$1 = functionApply; -var call$1 = functionCall; -var uncurryThis$4 = functionUncurryThis; -var fixRegExpWellKnownSymbolLogic$1 = fixRegexpWellKnownSymbolLogic; -var fails$4 = fails$l; -var anObject$1 = anObject$f; -var isCallable = isCallable$j; -var toIntegerOrInfinity = toIntegerOrInfinity$4; -var toLength$1 = toLength$3; -var toString$3 = toString$6; -var requireObjectCoercible$2 = requireObjectCoercible$6; -var advanceStringIndex$1 = advanceStringIndex$2; -var getMethod$1 = getMethod$5; -var getSubstitution = getSubstitution$1; -var regExpExec = regexpExecAbstract; -var wellKnownSymbol$3 = wellKnownSymbol$f; - -var REPLACE = wellKnownSymbol$3('replace'); -var max$1 = Math.max; -var min$1 = Math.min; -var concat = uncurryThis$4([].concat); -var push$2 = uncurryThis$4([].push); -var stringIndexOf = uncurryThis$4(''.indexOf); -var stringSlice$1 = uncurryThis$4(''.slice); - -var maybeToString = function (it) { - return it === undefined ? it : String(it); -}; - -// IE <= 11 replaces $0 with the whole match, as if it was $& -// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 -var REPLACE_KEEPS_$0 = (function () { - // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing - return 'a'.replace(/./, '$0') === '$0'; -})(); - -// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string -var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - return false; -})(); - -var REPLACE_SUPPORTS_NAMED_GROUPS = !fails$4(function () { - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive - return ''.replace(re, '$') !== '7'; -}); - -// @@replace logic -fixRegExpWellKnownSymbolLogic$1('replace', function (_, nativeReplace, maybeCallNative) { - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - - return [ - // `String.prototype.replace` method - // https://tc39.es/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible$2(this); - var replacer = searchValue == undefined ? undefined : getMethod$1(searchValue, REPLACE); - return replacer - ? call$1(replacer, searchValue, O, replaceValue) - : call$1(nativeReplace, toString$3(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace - function (string, replaceValue) { - var rx = anObject$1(this); - var S = toString$3(string); - - if ( - typeof replaceValue == 'string' && - stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && - stringIndexOf(replaceValue, '$<') === -1 - ) { - var res = maybeCallNative(nativeReplace, rx, S, replaceValue); - if (res.done) return res.value; - } - - var functionalReplace = isCallable(replaceValue); - if (!functionalReplace) replaceValue = toString$3(replaceValue); - - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - - push$2(results, result); - if (!global) break; - - var matchStr = toString$3(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex$1(S, toLength$1(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - - var matched = toString$3(result[0]); - var position = max$1(min$1(toIntegerOrInfinity(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) push$2(captures, maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = concat([matched], captures, position, S); - if (namedCaptures !== undefined) push$2(replacerArgs, namedCaptures); - var replacement = toString$3(apply$1(replaceValue, undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += stringSlice$1(S, nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + stringSlice$1(S, nextSourcePosition); - } - ]; -}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); - -var fails$3 = fails$l; - -var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails$3(function () { - // eslint-disable-next-line no-useless-call -- required for testing - method.call(null, argument || function () { return 1; }, 1); - }); -}; - -/* eslint-disable es-x/no-array-prototype-indexof -- required for testing */ -var $$3 = _export; -var uncurryThis$3 = functionUncurryThis; -var $IndexOf = arrayIncludes.indexOf; -var arrayMethodIsStrict = arrayMethodIsStrict$1; - -var un$IndexOf = uncurryThis$3([].indexOf); - -var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0; -var STRICT_METHOD = arrayMethodIsStrict('indexOf'); - -// `Array.prototype.indexOf` method -// https://tc39.es/ecma262/#sec-array.prototype.indexof -$$3({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, { - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - var fromIndex = arguments.length > 1 ? arguments[1] : undefined; - return NEGATIVE_ZERO - // convert -0 to +0 - ? un$IndexOf(this, searchElement, fromIndex) || 0 - : $IndexOf(this, searchElement, fromIndex); - } -}); - -var isObject$2 = isObject$a; -var classof$1 = classofRaw$1; -var wellKnownSymbol$2 = wellKnownSymbol$f; - -var MATCH = wellKnownSymbol$2('match'); - -// `IsRegExp` abstract operation -// https://tc39.es/ecma262/#sec-isregexp -var isRegexp = function (it) { - var isRegExp; - return isObject$2(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof$1(it) == 'RegExp'); -}; - -var toPropertyKey = toPropertyKey$3; -var definePropertyModule = objectDefineProperty; -var createPropertyDescriptor = createPropertyDescriptor$3; - -var createProperty$1 = function (object, key, value) { - var propertyKey = toPropertyKey(key); - if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; -}; - -var toAbsoluteIndex = toAbsoluteIndex$2; -var lengthOfArrayLike$1 = lengthOfArrayLike$4; -var createProperty = createProperty$1; - -var $Array$1 = Array; -var max = Math.max; - -var arraySliceSimple = function (O, start, end) { - var length = lengthOfArrayLike$1(O); - var k = toAbsoluteIndex(start, length); - var fin = toAbsoluteIndex(end === undefined ? length : end, length); - var result = $Array$1(max(fin - k, 0)); - for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]); - result.length = n; - return result; -}; - -var apply = functionApply; -var call = functionCall; -var uncurryThis$2 = functionUncurryThis; -var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; -var isRegExp = isRegexp; -var anObject = anObject$f; -var requireObjectCoercible$1 = requireObjectCoercible$6; -var speciesConstructor = speciesConstructor$2; -var advanceStringIndex = advanceStringIndex$2; -var toLength = toLength$3; -var toString$2 = toString$6; -var getMethod = getMethod$5; -var arraySlice = arraySliceSimple; -var callRegExpExec = regexpExecAbstract; -var regexpExec = regexpExec$3; -var stickyHelpers = regexpStickyHelpers; -var fails$2 = fails$l; - -var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; -var MAX_UINT32 = 0xFFFFFFFF; -var min = Math.min; -var $push = [].push; -var exec = uncurryThis$2(/./.exec); -var push$1 = uncurryThis$2($push); -var stringSlice = uncurryThis$2(''.slice); - -// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec -// Weex JS has frozen built-in prototypes, so use try / catch wrapper -var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails$2(function () { - // eslint-disable-next-line regexp/no-empty-group -- required for testing - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; -}); - -// @@split logic -fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - // eslint-disable-next-line regexp/no-empty-group -- required for testing - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = toString$2(requireObjectCoercible$1(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) { - return call(nativeSplit, string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = call(regexpExec, separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - push$1(output, stringSlice(string, lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !exec(separatorCopy, '')) push$1(output, ''); - } else push$1(output, stringSlice(string, lastLastIndex)); - return output.length > lim ? arraySlice(output, 0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.es/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible$1(this); - var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT); - return splitter - ? call(splitter, separator, O, limit) - : call(internalSplit, toString$2(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (string, limit) { - var rx = anObject(this); - var S = toString$2(string); - var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); - - if (res.done) return res.value; - - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (UNSUPPORTED_Y ? 'g' : 'y'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; - var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); - var e; - if ( - z === null || - (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - push$1(A, stringSlice(S, p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - push$1(A, z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - push$1(A, stringSlice(S, p)); - return A; - } - ]; -}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); - -// a string of all valid unicode whitespaces -var whitespaces$2 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + - '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - -var uncurryThis$1 = functionUncurryThis; -var requireObjectCoercible = requireObjectCoercible$6; -var toString$1 = toString$6; -var whitespaces$1 = whitespaces$2; - -var replace = uncurryThis$1(''.replace); -var whitespace = '[' + whitespaces$1 + ']'; -var ltrim = RegExp('^' + whitespace + whitespace + '*'); -var rtrim = RegExp(whitespace + whitespace + '*$'); - -// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation -var createMethod$1 = function (TYPE) { - return function ($this) { - var string = toString$1(requireObjectCoercible($this)); - if (TYPE & 1) string = replace(string, ltrim, ''); - if (TYPE & 2) string = replace(string, rtrim, ''); - return string; - }; -}; - -var stringTrim = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimstart - start: createMethod$1(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimend - end: createMethod$1(2), - // `String.prototype.trim` method - // https://tc39.es/ecma262/#sec-string.prototype.trim - trim: createMethod$1(3) -}; - -var PROPER_FUNCTION_NAME = functionName.PROPER; -var fails$1 = fails$l; -var whitespaces = whitespaces$2; - -var non = '\u200B\u0085\u180E'; - -// check that a method works with the correct list -// of whitespaces and has a correct name -var stringTrimForced = function (METHOD_NAME) { - return fails$1(function () { - return !!whitespaces[METHOD_NAME]() - || non[METHOD_NAME]() !== non - || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); - }); -}; - -var $$2 = _export; -var $trim = stringTrim.trim; -var forcedStringTrimMethod = stringTrimForced; - -// `String.prototype.trim` method -// https://tc39.es/ecma262/#sec-string.prototype.trim -$$2({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { - trim: function trim() { - return $trim(this); - } -}); - -var toastify = {exports: {}}; - -(function (module) { - (function (root, factory) { - if (module.exports) { - module.exports = factory(); - } else { - root.Toastify = factory(); - } - })(commonjsGlobal, function (global) { - // Object initialization - var Toastify = function Toastify(options) { - // Returning a new init object - return new Toastify.lib.init(options); - }, - // Library version - version = "1.12.0"; // Set the default global options - - - Toastify.defaults = { - oldestFirst: true, - text: "Toastify is awesome!", - node: undefined, - duration: 3000, - selector: undefined, - callback: function callback() {}, - destination: undefined, - newWindow: false, - close: false, - gravity: "toastify-top", - positionLeft: false, - position: '', - backgroundColor: '', - avatar: "", - className: "", - stopOnFocus: true, - onClick: function onClick() {}, - offset: { - x: 0, - y: 0 - }, - escapeMarkup: true, - ariaLive: 'polite', - style: { - background: '' - } - }; // Defining the prototype of the object - - Toastify.lib = Toastify.prototype = { - toastify: version, - constructor: Toastify, - // Initializing the object with required parameters - init: function init(options) { - // Verifying and validating the input object - if (!options) { - options = {}; - } // Creating the options object - - - this.options = {}; - this.toastElement = null; // Validating the options - - this.options.text = options.text || Toastify.defaults.text; // Display message - - this.options.node = options.node || Toastify.defaults.node; // Display content as node - - this.options.duration = options.duration === 0 ? 0 : options.duration || Toastify.defaults.duration; // Display duration - - this.options.selector = options.selector || Toastify.defaults.selector; // Parent selector - - this.options.callback = options.callback || Toastify.defaults.callback; // Callback after display - - this.options.destination = options.destination || Toastify.defaults.destination; // On-click destination - - this.options.newWindow = options.newWindow || Toastify.defaults.newWindow; // Open destination in new window - - this.options.close = options.close || Toastify.defaults.close; // Show toast close icon - - this.options.gravity = options.gravity === "bottom" ? "toastify-bottom" : Toastify.defaults.gravity; // toast position - top or bottom - - this.options.positionLeft = options.positionLeft || Toastify.defaults.positionLeft; // toast position - left or right - - this.options.position = options.position || Toastify.defaults.position; // toast position - left or right - - this.options.backgroundColor = options.backgroundColor || Toastify.defaults.backgroundColor; // toast background color - - this.options.avatar = options.avatar || Toastify.defaults.avatar; // img element src - url or a path - - this.options.className = options.className || Toastify.defaults.className; // additional class names for the toast - - this.options.stopOnFocus = options.stopOnFocus === undefined ? Toastify.defaults.stopOnFocus : options.stopOnFocus; // stop timeout on focus - - this.options.onClick = options.onClick || Toastify.defaults.onClick; // Callback after click - - this.options.offset = options.offset || Toastify.defaults.offset; // toast offset - - this.options.escapeMarkup = options.escapeMarkup !== undefined ? options.escapeMarkup : Toastify.defaults.escapeMarkup; - this.options.ariaLive = options.ariaLive || Toastify.defaults.ariaLive; - this.options.style = options.style || Toastify.defaults.style; - - if (options.backgroundColor) { - this.options.style.background = options.backgroundColor; - } // Returning the current object for chaining functions - - - return this; - }, - // Building the DOM element - buildToast: function buildToast() { - // Validating if the options are defined - if (!this.options) { - throw "Toastify is not initialized"; - } // Creating the DOM object - - - var divElement = document.createElement("div"); - divElement.className = "toastify on " + this.options.className; // Positioning toast to left or right or center - - if (!!this.options.position) { - divElement.className += " toastify-" + this.options.position; - } else { - // To be depreciated in further versions - if (this.options.positionLeft === true) { - divElement.className += " toastify-left"; - console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.'); - } else { - // Default position - divElement.className += " toastify-right"; - } - } // Assigning gravity of element - - - divElement.className += " " + this.options.gravity; - - if (this.options.backgroundColor) { - // This is being deprecated in favor of using the style HTML DOM property - console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.'); - } // Loop through our style object and apply styles to divElement - - - for (var property in this.options.style) { - divElement.style[property] = this.options.style[property]; - } // Announce the toast to screen readers - - - if (this.options.ariaLive) { - divElement.setAttribute('aria-live', this.options.ariaLive); - } // Adding the toast message/node - - - if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) { - // If we have a valid node, we insert it - divElement.appendChild(this.options.node); - } else { - if (this.options.escapeMarkup) { - divElement.innerText = this.options.text; - } else { - divElement.innerHTML = this.options.text; - } - - if (this.options.avatar !== "") { - var avatarElement = document.createElement("img"); - avatarElement.src = this.options.avatar; - avatarElement.className = "toastify-avatar"; - - if (this.options.position == "left" || this.options.positionLeft === true) { - // Adding close icon on the left of content - divElement.appendChild(avatarElement); - } else { - // Adding close icon on the right of content - divElement.insertAdjacentElement("afterbegin", avatarElement); - } - } - } // Adding a close icon to the toast - - - if (this.options.close === true) { - // Create a span for close element - var closeElement = document.createElement("button"); - closeElement.type = "button"; - closeElement.setAttribute("aria-label", "Close"); - closeElement.className = "toast-close"; - closeElement.innerHTML = "✖"; // Triggering the removal of toast from DOM on close click - - closeElement.addEventListener("click", function (event) { - event.stopPropagation(); - this.removeElement(this.toastElement); - window.clearTimeout(this.toastElement.timeOutValue); - }.bind(this)); //Calculating screen width - - var width = window.innerWidth > 0 ? window.innerWidth : screen.width; // Adding the close icon to the toast element - // Display on the right if screen width is less than or equal to 360px - - if ((this.options.position == "left" || this.options.positionLeft === true) && width > 360) { - // Adding close icon on the left of content - divElement.insertAdjacentElement("afterbegin", closeElement); - } else { - // Adding close icon on the right of content - divElement.appendChild(closeElement); - } - } // Clear timeout while toast is focused - - - if (this.options.stopOnFocus && this.options.duration > 0) { - var self = this; // stop countdown - - divElement.addEventListener("mouseover", function (event) { - window.clearTimeout(divElement.timeOutValue); - }); // add back the timeout - - divElement.addEventListener("mouseleave", function () { - divElement.timeOutValue = window.setTimeout(function () { - // Remove the toast from DOM - self.removeElement(divElement); - }, self.options.duration); - }); - } // Adding an on-click destination path - - - if (typeof this.options.destination !== "undefined") { - divElement.addEventListener("click", function (event) { - event.stopPropagation(); - - if (this.options.newWindow === true) { - window.open(this.options.destination, "_blank"); - } else { - window.location = this.options.destination; - } - }.bind(this)); - } - - if (typeof this.options.onClick === "function" && typeof this.options.destination === "undefined") { - divElement.addEventListener("click", function (event) { - event.stopPropagation(); - this.options.onClick(); - }.bind(this)); - } // Adding offset - - - if (_typeof(this.options.offset) === "object") { - var x = getAxisOffsetAValue("x", this.options); - var y = getAxisOffsetAValue("y", this.options); - var xOffset = this.options.position == "left" ? x : "-" + x; - var yOffset = this.options.gravity == "toastify-top" ? y : "-" + y; - divElement.style.transform = "translate(" + xOffset + "," + yOffset + ")"; - } // Returning the generated element - - - return divElement; - }, - // Displaying the toast - showToast: function showToast() { - // Creating the DOM object for the toast - this.toastElement = this.buildToast(); // Getting the root element to with the toast needs to be added - - var rootElement; - - if (typeof this.options.selector === "string") { - rootElement = document.getElementById(this.options.selector); - } else if (this.options.selector instanceof HTMLElement || typeof ShadowRoot !== 'undefined' && this.options.selector instanceof ShadowRoot) { - rootElement = this.options.selector; - } else { - rootElement = document.body; - } // Validating if root element is present in DOM - - - if (!rootElement) { - throw "Root element is not defined"; - } // Adding the DOM element - - - var elementToInsert = Toastify.defaults.oldestFirst ? rootElement.firstChild : rootElement.lastChild; - rootElement.insertBefore(this.toastElement, elementToInsert); // Repositioning the toasts in case multiple toasts are present - - Toastify.reposition(); - - if (this.options.duration > 0) { - this.toastElement.timeOutValue = window.setTimeout(function () { - // Remove the toast from DOM - this.removeElement(this.toastElement); - }.bind(this), this.options.duration); // Binding `this` for function invocation - } // Supporting function chaining - - - return this; - }, - hideToast: function hideToast() { - if (this.toastElement.timeOutValue) { - clearTimeout(this.toastElement.timeOutValue); - } - - this.removeElement(this.toastElement); - }, - // Removing the element from the DOM - removeElement: function removeElement(toastElement) { - // Hiding the element - // toastElement.classList.remove("on"); - toastElement.className = toastElement.className.replace(" on", ""); // Removing the element from DOM after transition end - - window.setTimeout(function () { - // remove options node if any - if (this.options.node && this.options.node.parentNode) { - this.options.node.parentNode.removeChild(this.options.node); - } // Remove the element from the DOM, only when the parent node was not removed before. - - - if (toastElement.parentNode) { - toastElement.parentNode.removeChild(toastElement); - } // Calling the callback function - - - this.options.callback.call(toastElement); // Repositioning the toasts again - - Toastify.reposition(); - }.bind(this), 400); // Binding `this` for function invocation - } - }; // Positioning the toasts on the DOM - - Toastify.reposition = function () { - // Top margins with gravity - var topLeftOffsetSize = { - top: 15, - bottom: 15 - }; - var topRightOffsetSize = { - top: 15, - bottom: 15 - }; - var offsetSize = { - top: 15, - bottom: 15 - }; // Get all toast messages on the DOM - - var allToasts = document.getElementsByClassName("toastify"); - var classUsed; // Modifying the position of each toast element - - for (var i = 0; i < allToasts.length; i++) { - // Getting the applied gravity - if (containsClass(allToasts[i], "toastify-top") === true) { - classUsed = "toastify-top"; - } else { - classUsed = "toastify-bottom"; - } - - var height = allToasts[i].offsetHeight; - classUsed = classUsed.substr(9, classUsed.length - 1); // Spacing between toasts - - var offset = 15; - var width = window.innerWidth > 0 ? window.innerWidth : screen.width; // Show toast in center if screen with less than or equal to 360px - - if (width <= 360) { - // Setting the position - allToasts[i].style[classUsed] = offsetSize[classUsed] + "px"; - offsetSize[classUsed] += height + offset; - } else { - if (containsClass(allToasts[i], "toastify-left") === true) { - // Setting the position - allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + "px"; - topLeftOffsetSize[classUsed] += height + offset; - } else { - // Setting the position - allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + "px"; - topRightOffsetSize[classUsed] += height + offset; - } - } - } // Supporting function chaining - - - return this; - }; // Helper function to get offset. - - - function getAxisOffsetAValue(axis, options) { - if (options.offset[axis]) { - if (isNaN(options.offset[axis])) { - return options.offset[axis]; - } else { - return options.offset[axis] + 'px'; - } - } - - return '0px'; - } - - function containsClass(elem, yourClass) { - if (!elem || typeof yourClass !== "string") { - return false; - } else if (elem.className && elem.className.trim().split(/\s+/gi).indexOf(yourClass) > -1) { - return true; - } else { - return false; - } - } // Setting up the prototype for the init object - - - Toastify.lib.init.prototype = Toastify.lib; // Returning the Toastify function to be assigned to the window object/module - - return Toastify; - }); -})(toastify); - -var Toastify = toastify.exports; - -var classof = classofRaw$1; - -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -// eslint-disable-next-line es-x/no-array-isarray -- safe -var isArray$2 = Array.isArray || function isArray(argument) { - return classof(argument) == 'Array'; -}; - -var isArray$1 = isArray$2; -var isConstructor = isConstructor$2; -var isObject$1 = isObject$a; -var wellKnownSymbol$1 = wellKnownSymbol$f; - -var SPECIES$1 = wellKnownSymbol$1('species'); -var $Array = Array; - -// a part of `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -var arraySpeciesConstructor$1 = function (originalArray) { - var C; - if (isArray$1(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; - else if (isObject$1(C)) { - C = C[SPECIES$1]; - if (C === null) C = undefined; - } - } return C === undefined ? $Array : C; -}; - -var arraySpeciesConstructor = arraySpeciesConstructor$1; - -// `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -var arraySpeciesCreate$1 = function (originalArray, length) { - return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); -}; - -var bind = functionBindContext; -var uncurryThis = functionUncurryThis; -var IndexedObject = indexedObject; -var toObject = toObject$4; -var lengthOfArrayLike = lengthOfArrayLike$4; -var arraySpeciesCreate = arraySpeciesCreate$1; - -var push = uncurryThis([].push); - -// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_REJECT = TYPE == 7; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that); - var length = lengthOfArrayLike(self); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push(target, value); // filter - } else switch (TYPE) { - case 4: return false; // every - case 7: push(target, value); // filterReject - } - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; - -var arrayIteration = { - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.es/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.es/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.es/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.es/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6), - // `Array.prototype.filterReject` method - // https://github.com/tc39/proposal-array-filtering - filterReject: createMethod(7) -}; - -var fails = fails$l; -var wellKnownSymbol = wellKnownSymbol$f; -var V8_VERSION = engineV8Version; - -var SPECIES = wellKnownSymbol('species'); - -var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - -var $$1 = _export; -var $map = arrayIteration.map; -var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); - -// `Array.prototype.map` method -// https://tc39.es/ecma262/#sec-array.prototype.map -// with adding support of @@species -$$1({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -var gettext$1 = {}; - -var $ = _export; -var DESCRIPTORS = descriptors; -var defineProperty = objectDefineProperty.f; - -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -// eslint-disable-next-line es-x/no-object-defineproperty -- safe -$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { - defineProperty: defineProperty -}); - -/** 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 commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; - -/** 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$1 = 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$1 ? Symbol$1.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$1(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; -} - -var lodash_get = get$1; - -var plurals$1 = { - 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; - } - } -}; - -var get = lodash_get; -var plurals = plurals$1; - -var gettext = 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'); -}; - -var dist = {}; - -Object.defineProperty(dist, "__esModule", { - value: true -}); -dist.getCanonicalLocale = getCanonicalLocale; -dist.getDayNames = getDayNames; -dist.getDayNamesMin = getDayNamesMin; -dist.getDayNamesShort = getDayNamesShort; -dist.getFirstDay = getFirstDay; -dist.getLanguage = getLanguage; -dist.getLocale = getLocale; -dist.getMonthNames = getMonthNames; -dist.getMonthNamesShort = getMonthNamesShort; -dist.translate = translate; -dist.translatePlural = translatePlural; - - - - - -/// - -/** - * Returns the user's locale - */ -function getLocale() { - return document.documentElement.dataset.locale || 'en'; -} - -function getCanonicalLocale() { - return getLocale().replace(/_/g, '-'); -} -/** - * Returns the user's language - */ - - -function getLanguage() { - return document.documentElement.lang || 'en'; -} - -/** - * Translate a string - * - * @param {string} app the id of the app for which to translate the string - * @param {string} text the string to translate - * @param {object} vars map of placeholder key to value - * @param {number} number to replace %n with - * @param {object} [options] options object - * @return {string} - */ -function translate(app, text, vars, count, options) { - if (typeof OC === 'undefined') { - console.warn('No OC found'); - return text; - } - - return OC.L10N.translate(app, text, vars, count, options); -} -/** - * Translate a plural string - * - * @param {string} app the id of the app for which to translate the string - * @param {string} textSingular the string to translate for exactly one object - * @param {string} textPlural the string to translate for n objects - * @param {number} count number to determine whether to use singular or plural - * @param {Object} vars of placeholder key to value - * @param {object} options options object - * @return {string} - */ - - -function translatePlural(app, textSingular, textPlural, count, vars, options) { - if (typeof OC === 'undefined') { - console.warn('No OC found'); - return textSingular; - } - - return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options); -} -/** - * Get the first day of the week - * - * @return {number} - */ - - -function getFirstDay() { - if (typeof window.firstDay === 'undefined') { - console.warn('No firstDay found'); - return 1; - } - - return window.firstDay; -} -/** - * Get a list of day names (full names) - * - * @return {string[]} - */ - - -function getDayNames() { - if (typeof window.dayNames === 'undefined') { - console.warn('No dayNames found'); - return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; - } - - return window.dayNames; -} -/** - * Get a list of day names (short names) - * - * @return {string[]} - */ - - -function getDayNamesShort() { - if (typeof window.dayNamesShort === 'undefined') { - console.warn('No dayNamesShort found'); - return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']; - } - - return window.dayNamesShort; -} -/** - * Get a list of day names (minified names) - * - * @return {string[]} - */ - - -function getDayNamesMin() { - if (typeof window.dayNamesMin === 'undefined') { - console.warn('No dayNamesMin found'); - return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']; - } - - return window.dayNamesMin; -} -/** - * Get a list of month names (full names) - * - * @return {string[]} - */ - - -function getMonthNames() { - if (typeof window.monthNames === 'undefined') { - console.warn('No monthNames found'); - return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; - } - - return window.monthNames; -} -/** - * Get a list of month names (short names) - * - * @return {string[]} - */ - - -function getMonthNamesShort() { - if (typeof window.monthNamesShort === 'undefined') { - console.warn('No monthNamesShort found'); - return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']; - } - - return window.monthNamesShort; -} - -Object.defineProperty(gettext$1, "__esModule", { - value: true -}); -var getGettextBuilder_1 = gettext$1.getGettextBuilder = getGettextBuilder; - - - - - - - - - - - -var _nodeGettext = _interopRequireDefault(gettext); - -var _ = dist; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var GettextBuilder = /*#__PURE__*/function () { - function GettextBuilder() { - _classCallCheck(this, GettextBuilder); - - this.translations = {}; - this.debug = false; - } - - _createClass(GettextBuilder, [{ - key: "setLanguage", - value: function setLanguage(language) { - this.locale = language; - return this; - } - }, { - key: "detectLocale", - value: function detectLocale() { - return this.setLanguage((0, _.getLanguage)().replace('-', '_')); - } - }, { - key: "addTranslation", - value: function addTranslation(language, data) { - this.translations[language] = data; - return this; - } - }, { - key: "enableDebugMode", - value: function enableDebugMode() { - this.debug = true; - return this; - } - }, { - key: "build", - value: function build() { - return new GettextWrapper(this.locale || 'en', this.translations, this.debug); - } - }]); - - return GettextBuilder; -}(); - -var GettextWrapper = /*#__PURE__*/function () { - function GettextWrapper(locale, data, debug) { - _classCallCheck(this, GettextWrapper); - - this.gt = new _nodeGettext.default({ - debug: debug, - sourceLocale: 'en' - }); - - for (var key in data) { - this.gt.addTranslations(key, 'messages', data[key]); - } - - this.gt.setLocale(locale); - } - - _createClass(GettextWrapper, [{ - key: "subtitudePlaceholders", - value: function subtitudePlaceholders(translated, vars) { - return translated.replace(/{([^{}]*)}/g, function (a, b) { - var r = vars[b]; - - if (typeof r === 'string' || typeof r === 'number') { - return r.toString(); - } else { - return a; - } - }); - } - }, { - key: "gettext", - value: function gettext(original) { - var placeholders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return this.subtitudePlaceholders(this.gt.gettext(original), placeholders); - } - }, { - key: "ngettext", - value: function ngettext(singular, plural, count) { - var placeholders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders); - } - }]); - - return GettextWrapper; -}(); - -function getGettextBuilder() { - return new GettextBuilder(); -} - -var gtBuilder = getGettextBuilder_1().detectLocale(); -process.env.TRANSLATIONS.map(function (data) { - return gtBuilder.addTranslation(data.locale, data.json); -}); -var gt = gtBuilder.build(); -gt.ngettext.bind(gt); -var t = gt.gettext.bind(gt); - -var ToastType = -/** @class */ -function () { - function ToastType() {} - - ToastType.ERROR = 'toast-error'; - ToastType.WARNING = 'toast-warning'; - ToastType.INFO = 'toast-info'; - ToastType.SUCCESS = 'toast-success'; - ToastType.PERMANENT = 'toast-error'; - ToastType.UNDO = 'toast-undo'; - return ToastType; -}(); - -var TOAST_ARIA_LIVE_OFF = 'off'; -var TOAST_ARIA_LIVE_POLITE = 'polite'; -var TOAST_ARIA_LIVE_ASSERTIVE = 'assertive'; - -var ToastAriaLive = -/** @class */ -function () { - function ToastAriaLive() {} - - ToastAriaLive.OFF = TOAST_ARIA_LIVE_OFF; - ToastAriaLive.POLITE = TOAST_ARIA_LIVE_POLITE; - ToastAriaLive.ASSERTIVE = TOAST_ARIA_LIVE_ASSERTIVE; - return ToastAriaLive; -}(); - -var TOAST_UNDO_TIMEOUT = 10000; -var TOAST_DEFAULT_TIMEOUT = 7000; -var TOAST_PERMANENT_TIMEOUT = -1; -/** - * Show a toast message - * - * @param text Message to be shown in the toast, any HTML is removed by default - * @param options - */ - -function showMessage(data, options) { - var _a; - - var _b; - - options = Object.assign({ - timeout: TOAST_DEFAULT_TIMEOUT, - isHTML: false, - type: undefined, - // An undefined selector defaults to the body element - selector: undefined, - onRemove: function onRemove() {}, - onClick: undefined, - close: true - }, options); - - if (typeof data === 'string' && !options.isHTML) { - // fime mae sure that text is extracted - var element = document.createElement('div'); - element.innerHTML = data; - data = element.innerText; - } - - var classes = (_b = options.type) !== null && _b !== void 0 ? _b : ''; - - if (typeof options.onClick === 'function') { - classes += ' toast-with-click '; - } - - var isNode = data instanceof Node; - var ariaLive = ToastAriaLive.POLITE; - - if (options.ariaLive) { - ariaLive = options.ariaLive.toString(); - } else if (options.type === ToastType.ERROR || options.type === ToastType.UNDO) { - ariaLive = ToastAriaLive.ASSERTIVE; - } - - var toast = Toastify((_a = {}, _a[!isNode ? 'text' : 'node'] = data, _a.duration = options.timeout, _a.callback = options.onRemove, _a.onClick = options.onClick, _a.close = options.close, _a.gravity = 'top', _a.selector = options.selector, _a.position = 'right', _a.backgroundColor = '', _a.className = 'dialogs ' + classes, _a.escapeMarkup = !options.isHTML, _a.ariaLive = ariaLive, _a)); - toast.showToast(); - return toast; -} -/** - * Show a toast message with error styling - * - * @param text Message to be shown in the toast, any HTML is removed by default - * @param options - */ - -function showError(text, options) { - return showMessage(text, __assign(__assign({}, options), { - type: ToastType.ERROR - })); -} -/** - * Show a toast message with warning styling - * - * @param text Message to be shown in the toast, any HTML is removed by default - * @param options - */ - -function showWarning(text, options) { - return showMessage(text, __assign(__assign({}, options), { - type: ToastType.WARNING - })); -} -/** - * Show a toast message with info styling - * - * @param text Message to be shown in the toast, any HTML is removed by default - * @param options - */ - -function showInfo(text, options) { - return showMessage(text, __assign(__assign({}, options), { - type: ToastType.INFO - })); -} -/** - * Show a toast message with success styling - * - * @param text Message to be shown in the toast, any HTML is removed by default - * @param options - */ - -function showSuccess(text, options) { - return showMessage(text, __assign(__assign({}, options), { - type: ToastType.SUCCESS - })); -} -/** - * Show a toast message with undo styling - * - * @param text Message to be shown in the toast, any HTML is removed by default - * @param onUndo Function that is called when the undo button is clicked - * @param options - */ - -function showUndo(text, onUndo, options) { - // onUndo callback is mandatory - if (!(onUndo instanceof Function)) { - throw new Error('Please provide a valid onUndo method'); - } - - var toast; - options = Object.assign(options || {}, { - // force 10 seconds of timeout - timeout: TOAST_UNDO_TIMEOUT, - // remove close button - close: false - }); // Generate undo layout - - var undoContent = document.createElement('span'); - var undoButton = document.createElement('button'); - undoContent.classList.add('toast-undo-container'); - undoButton.classList.add('toast-undo-button'); - undoButton.innerText = t('Undo'); - undoContent.innerText = text; - undoContent.appendChild(undoButton); - undoButton.addEventListener('click', function (event) { - event.stopPropagation(); - onUndo(event); // Hide toast - - if ((toast === null || toast === void 0 ? void 0 : toast.hideToast) instanceof Function) { - toast.hideToast(); - } - }); - toast = showMessage(undoContent, __assign(__assign({}, options), { - type: ToastType.UNDO - })); - return toast; -} - - -//# sourceMappingURL=index.es.js.map - - -/***/ }), - -/***/ "./node_modules/@nextcloud/event-bus/dist/index.es.js": -/*!************************************************************!*\ - !*** ./node_modules/@nextcloud/event-bus/dist/index.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 */ "emit": () => (/* binding */ emit), -/* harmony export */ "subscribe": () => (/* binding */ subscribe), -/* harmony export */ "unsubscribe": () => (/* binding */ unsubscribe) -/* harmony export */ }); -/* provided dependency */ var process = __webpack_require__(/*! ./node_modules/process/browser.js */ "./node_modules/process/browser.js"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {}; - -function createCommonjsModule(fn) { - var module = { exports: {} }; - return fn(module, module.exports), module.exports; -} - -var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global$1 = - // eslint-disable-next-line es/no-global-this -- safe - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - // eslint-disable-next-line no-restricted-globals -- safe - check(typeof self == 'object' && self) || - check(typeof commonjsGlobal == 'object' && commonjsGlobal) || - // eslint-disable-next-line no-new-func -- fallback - (function () { return this; })() || Function('return this')(); - -var fails = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - -// Detect IE8's incomplete defineProperty implementation -var descriptors = !fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - -var $propertyIsEnumerable = {}.propertyIsEnumerable; -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; - -// Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1); - -// `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable -var f$4 = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor$2(this, V); - return !!descriptor && descriptor.enumerable; -} : $propertyIsEnumerable; - -var objectPropertyIsEnumerable = { - f: f$4 -}; - -var createPropertyDescriptor = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -var toString = {}.toString; - -var classofRaw = function (it) { - return toString.call(it).slice(8, -1); -}; - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var indexedObject = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins -- safe - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - -// `RequireObjectCoercible` abstract operation -// https://tc39.es/ecma262/#sec-requireobjectcoercible -var requireObjectCoercible = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - -// toObject with fallback for non-array-like ES3 strings - - - -var toIndexedObject = function (it) { - return indexedObject(requireObjectCoercible(it)); -}; - -var isObject = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - -// `ToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -var toPrimitive = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - -// `ToObject` abstract operation -// https://tc39.es/ecma262/#sec-toobject -var toObject = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - -var hasOwnProperty = {}.hasOwnProperty; - -var has$1 = function hasOwn(it, key) { - return hasOwnProperty.call(toObject(it), key); -}; - -var document$1 = global$1.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document$1) && isObject(document$1.createElement); - -var documentCreateElement = function (it) { - return EXISTS ? document$1.createElement(it) : {}; -}; - -// Thank's IE8 for his funny defineProperty -var ie8DomDefine = !descriptors && !fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- requied for testing - return Object.defineProperty(documentCreateElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - -// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe -var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -var f$3 = descriptors ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (ie8DomDefine) try { - return $getOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has$1(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); -}; - -var objectGetOwnPropertyDescriptor = { - f: f$3 -}; - -var anObject = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; -}; - -// eslint-disable-next-line es/no-object-defineproperty -- safe -var $defineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -var f$2 = descriptors ? $defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (ie8DomDefine) try { - return $defineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -var objectDefineProperty = { - f: f$2 -}; - -var createNonEnumerableProperty = descriptors ? function (object, key, value) { - return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -var setGlobal = function (key, value) { - try { - createNonEnumerableProperty(global$1, key, value); - } catch (error) { - global$1[key] = value; - } return value; -}; - -var SHARED = '__core-js_shared__'; -var store$1 = global$1[SHARED] || setGlobal(SHARED, {}); - -var sharedStore = store$1; - -var functionToString = Function.toString; - -// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper -if (typeof sharedStore.inspectSource != 'function') { - sharedStore.inspectSource = function (it) { - return functionToString.call(it); - }; -} - -var inspectSource = sharedStore.inspectSource; - -var WeakMap$1 = global$1.WeakMap; - -var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource(WeakMap$1)); - -var shared = createCommonjsModule(function (module) { -(module.exports = function (key, value) { - return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.11.2', - mode: 'global', - copyright: '© 2021 Denis Pushkarev (zloirock.ru)' -}); -}); - -var id = 0; -var postfix = Math.random(); - -var uid = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - -var keys$2 = shared('keys'); - -var sharedKey = function (key) { - return keys$2[key] || (keys$2[key] = uid(key)); -}; - -var hiddenKeys$1 = {}; - -var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; -var WeakMap = global$1.WeakMap; -var set, get, has; - -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); -}; - -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; - -if (nativeWeakMap) { - var store = sharedStore.state || (sharedStore.state = new WeakMap()); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); - metadata.facade = it; - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys$1[STATE] = true; - set = function (it, metadata) { - if (has$1(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); - metadata.facade = it; - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return has$1(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return has$1(it, STATE); - }; -} - -var internalState = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor -}; - -var redefine = createCommonjsModule(function (module) { -var getInternalState = internalState.get; -var enforceInternalState = internalState.enforce; -var TEMPLATE = String(String).split('String'); - -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - var state; - if (typeof value == 'function') { - if (typeof key == 'string' && !has$1(value, 'name')) { - createNonEnumerableProperty(value, 'name', key); - } - state = enforceInternalState(value); - if (!state.source) { - state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - } - if (O === global$1) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); -}); -}); - -var path = global$1; - -var aFunction$1 = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -var getBuiltIn = function (namespace, method) { - return arguments.length < 2 ? aFunction$1(path[namespace]) || aFunction$1(global$1[namespace]) - : path[namespace] && path[namespace][method] || global$1[namespace] && global$1[namespace][method]; -}; - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.es/ecma262/#sec-tointeger -var toInteger = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - -var min$2 = Math.min; - -// `ToLength` abstract operation -// https://tc39.es/ecma262/#sec-tolength -var toLength = function (argument) { - return argument > 0 ? min$2(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - -var max = Math.max; -var min$1 = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -var toAbsoluteIndex = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min$1(integer, length); -}; - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod$3 = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare -- NaN check - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare -- NaN check - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -var arrayIncludes = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod$3(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod$3(false) -}; - -var indexOf = arrayIncludes.indexOf; - - -var objectKeysInternal = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has$1(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; -}; - -// IE8- don't enum bug keys -var enumBugKeys = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - -// `Object.getOwnPropertyNames` method -// https://tc39.es/ecma262/#sec-object.getownpropertynames -// eslint-disable-next-line es/no-object-getownpropertynames -- safe -var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return objectKeysInternal(O, hiddenKeys); -}; - -var objectGetOwnPropertyNames = { - f: f$1 -}; - -// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe -var f = Object.getOwnPropertySymbols; - -var objectGetOwnPropertySymbols = { - f: f -}; - -// all object keys, includes non-enumerable and symbols -var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = objectGetOwnPropertyNames.f(anObject(it)); - var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; -}; - -var copyConstructorProperties = function (target, source) { - var keys = ownKeys(source); - var defineProperty = objectDefineProperty.f; - var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } -}; - -var replacement = /#|\.prototype\./; - -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; -}; - -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; - -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; - -var isForced_1 = isForced; - -var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; - - - - - - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -var _export = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global$1; - } else if (STATIC) { - target = global$1[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global$1[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor$1(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } -}; - -// `Number.MAX_SAFE_INTEGER` constant -// https://tc39.es/ecma262/#sec-number.max_safe_integer -_export({ target: 'Number', stat: true }, { - MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF -}); - -var aPossiblePrototype = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; -}; - -/* eslint-disable no-proto -- safe */ - -// `Object.setPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.setprototypeof -// Works with __proto__ only. Old v8 can't work with null proto objects. -// eslint-disable-next-line es/no-object-setprototypeof -- safe -var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; -}() : undefined); - -// makes subclassing work correct for wrapped built-ins -var inheritIfRequired = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if ( - // it can work only with native `setPrototypeOf` - objectSetPrototypeOf && - // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && - NewTarget !== Wrapper && - isObject(NewTargetPrototype = NewTarget.prototype) && - NewTargetPrototype !== Wrapper.prototype - ) objectSetPrototypeOf($this, NewTargetPrototype); - return $this; -}; - -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -// eslint-disable-next-line es/no-object-keys -- safe -var objectKeys = Object.keys || function keys(O) { - return objectKeysInternal(O, enumBugKeys); -}; - -// `Object.defineProperties` method -// https://tc39.es/ecma262/#sec-object.defineproperties -// eslint-disable-next-line es/no-object-defineproperties -- safe -var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]); - return O; -}; - -var html = getBuiltIn('document', 'documentElement'); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO$1 = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - /* global ActiveXObject -- old IE */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys$1[IE_PROTO$1] = true; - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -var objectCreate = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO$1] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : objectDefineProperties(result, Properties); -}; - -// a string of all valid unicode whitespaces -var whitespaces = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + - '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - -var whitespace = '[' + whitespaces + ']'; -var ltrim = RegExp('^' + whitespace + whitespace + '*'); -var rtrim = RegExp(whitespace + whitespace + '*$'); - -// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation -var createMethod$2 = function (TYPE) { - return function ($this) { - var string = String(requireObjectCoercible($this)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; - }; -}; - -var stringTrim = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimstart - start: createMethod$2(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.es/ecma262/#sec-string.prototype.trimend - end: createMethod$2(2), - // `String.prototype.trim` method - // https://tc39.es/ecma262/#sec-string.prototype.trim - trim: createMethod$2(3) -}; - -var getOwnPropertyNames$1 = objectGetOwnPropertyNames.f; -var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; -var defineProperty$3 = objectDefineProperty.f; -var trim = stringTrim.trim; - -var NUMBER = 'Number'; -var NativeNumber = global$1[NUMBER]; -var NumberPrototype = NativeNumber.prototype; - -// Opera ~12 has broken Object#toString -var BROKEN_CLASSOF = classofRaw(objectCreate(NumberPrototype)) == NUMBER; - -// `ToNumber` abstract operation -// https://tc39.es/ecma262/#sec-tonumber -var toNumber = function (argument) { - var it = toPrimitive(argument, false); - var first, third, radix, maxCode, digits, length, index, code; - if (typeof it == 'string' && it.length > 2) { - it = trim(it); - first = it.charCodeAt(0); - if (first === 43 || first === 45) { - third = it.charCodeAt(2); - if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix - } else if (first === 48) { - switch (it.charCodeAt(1)) { - case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i - case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i - default: return +it; - } - digits = it.slice(2); - length = digits.length; - for (index = 0; index < length; index++) { - code = digits.charCodeAt(index); - // parseInt parses a string to a first unavailable symbol - // but ToNumber should return NaN if a string contains unavailable symbols - if (code < 48 || code > maxCode) return NaN; - } return parseInt(digits, radix); - } - } return +it; -}; - -// `Number` constructor -// https://tc39.es/ecma262/#sec-number-constructor -if (isForced_1(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { - var NumberWrapper = function Number(value) { - var it = arguments.length < 1 ? 0 : value; - var dummy = this; - return dummy instanceof NumberWrapper - // check on 1..constructor(foo) case - && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classofRaw(dummy) != NUMBER) - ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it); - }; - for (var keys$1 = descriptors ? getOwnPropertyNames$1(NativeNumber) : ( - // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + - // ES2015 (in case, if modules with ES2015 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + - 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' + - // ESNext - 'fromString,range' - ).split(','), j = 0, key; keys$1.length > j; j++) { - if (has$1(NativeNumber, key = keys$1[j]) && !has$1(NumberWrapper, key)) { - defineProperty$3(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key)); - } - } - NumberWrapper.prototype = NumberPrototype; - NumberPrototype.constructor = NumberWrapper; - redefine(global$1, NUMBER, NumberWrapper); -} - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -var SEMVER_SPEC_VERSION = '2.0.0'; -var MAX_LENGTH$2 = 256; -var MAX_SAFE_INTEGER$2 = Number.MAX_SAFE_INTEGER || -/* istanbul ignore next */ -9007199254740991; // Max safe segment length for coercion. - -var MAX_SAFE_COMPONENT_LENGTH = 16; -var constants = { - SEMVER_SPEC_VERSION: SEMVER_SPEC_VERSION, - MAX_LENGTH: MAX_LENGTH$2, - MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$2, - MAX_SAFE_COMPONENT_LENGTH: MAX_SAFE_COMPONENT_LENGTH -}; - -var engineIsNode = classofRaw(global$1.process) == 'process'; - -var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; - -var process$1 = global$1.process; -var versions = process$1 && process$1.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (engineUserAgent) { - match = engineUserAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = engineUserAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -var engineV8Version = version && +version; - -// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing -var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { - // eslint-disable-next-line es/no-symbol -- required for testing - return !Symbol.sham && - // Chrome 38 Symbol has incorrect toString conversion - // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances - (engineIsNode ? engineV8Version === 38 : engineV8Version > 37 && engineV8Version < 41); -}); - -/* eslint-disable es/no-symbol -- required for testing */ - -var useSymbolAsUid = nativeSymbol - && !Symbol.sham - && typeof Symbol.iterator == 'symbol'; - -var WellKnownSymbolsStore = shared('wks'); -var Symbol$1 = global$1.Symbol; -var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid; - -var wellKnownSymbol = function (name) { - if (!has$1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) { - if (nativeSymbol && has$1(Symbol$1, name)) { - WellKnownSymbolsStore[name] = Symbol$1[name]; - } else { - WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } - } return WellKnownSymbolsStore[name]; -}; - -var MATCH$1 = wellKnownSymbol('match'); - -// `IsRegExp` abstract operation -// https://tc39.es/ecma262/#sec-isregexp -var isRegexp = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp'); -}; - -// `RegExp.prototype.flags` getter implementation -// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags -var regexpFlags = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; -}; - -// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, -// so we use an intermediate function. -function RE(s, f) { - return RegExp(s, f); -} - -var UNSUPPORTED_Y$3 = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; -}); - -var BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; -}); - -var regexpStickyHelpers = { - UNSUPPORTED_Y: UNSUPPORTED_Y$3, - BROKEN_CARET: BROKEN_CARET -}; - -var SPECIES$4 = wellKnownSymbol('species'); - -var setSpecies = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = objectDefineProperty.f; - - if (descriptors && Constructor && !Constructor[SPECIES$4]) { - defineProperty(Constructor, SPECIES$4, { - configurable: true, - get: function () { return this; } - }); - } -}; - -var defineProperty$2 = objectDefineProperty.f; -var getOwnPropertyNames = objectGetOwnPropertyNames.f; - - - - - -var enforceInternalState = internalState.enforce; - - - -var MATCH = wellKnownSymbol('match'); -var NativeRegExp = global$1.RegExp; -var RegExpPrototype$1 = NativeRegExp.prototype; -var re1 = /a/g; -var re2 = /a/g; - -// "new" should create a new object, old webkit bug -var CORRECT_NEW = new NativeRegExp(re1) !== re1; - -var UNSUPPORTED_Y$2 = regexpStickyHelpers.UNSUPPORTED_Y; - -var FORCED$1 = descriptors && isForced_1('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y$2 || fails(function () { - re2[MATCH] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; -}))); - -// `RegExp` constructor -// https://tc39.es/ecma262/#sec-regexp-constructor -if (FORCED$1) { - var RegExpWrapper = function RegExp(pattern, flags) { - var thisIsRegExp = this instanceof RegExpWrapper; - var patternIsRegExp = isRegexp(pattern); - var flagsAreUndefined = flags === undefined; - var sticky; - - if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) { - return pattern; - } - - if (CORRECT_NEW) { - if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source; - } else if (pattern instanceof RegExpWrapper) { - if (flagsAreUndefined) flags = regexpFlags.call(pattern); - pattern = pattern.source; - } - - if (UNSUPPORTED_Y$2) { - sticky = !!flags && flags.indexOf('y') > -1; - if (sticky) flags = flags.replace(/y/g, ''); - } - - var result = inheritIfRequired( - CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags), - thisIsRegExp ? this : RegExpPrototype$1, - RegExpWrapper - ); - - if (UNSUPPORTED_Y$2 && sticky) { - var state = enforceInternalState(result); - state.sticky = true; - } - - return result; - }; - var proxy = function (key) { - key in RegExpWrapper || defineProperty$2(RegExpWrapper, key, { - configurable: true, - get: function () { return NativeRegExp[key]; }, - set: function (it) { NativeRegExp[key] = it; } - }); - }; - var keys = getOwnPropertyNames(NativeRegExp); - var index = 0; - while (keys.length > index) proxy(keys[index++]); - RegExpPrototype$1.constructor = RegExpWrapper; - RegExpWrapper.prototype = RegExpPrototype$1; - redefine(global$1, 'RegExp', RegExpWrapper); -} - -// https://tc39.es/ecma262/#sec-get-regexp-@@species -setSpecies('RegExp'); - -var nativeExec = RegExp.prototype.exec; -var nativeReplace = shared('native-string-replace', String.prototype.replace); - -var patchedExec = nativeExec; - -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; -})(); - -var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET; - -// nonparticipating capturing group, copied from es5-shim's String#split patch. -// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1; - -if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y$1 && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - - match = nativeExec.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; -} - -var regexpExec = patchedExec; - -// `RegExp.prototype.exec` method -// https://tc39.es/ecma262/#sec-regexp.prototype.exec -_export({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec }, { - exec: regexpExec -}); - -var TO_STRING = 'toString'; -var RegExpPrototype = RegExp.prototype; -var nativeToString = RegExpPrototype[TO_STRING]; - -var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); -// FF44- RegExp#toString has a wrong name -var INCORRECT_NAME = nativeToString.name != TO_STRING; - -// `RegExp.prototype.toString` method -// https://tc39.es/ecma262/#sec-regexp.prototype.tostring -if (NOT_GENERIC || INCORRECT_NAME) { - redefine(RegExp.prototype, TO_STRING, function toString() { - var R = anObject(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf); - return '/' + p + '/' + f; - }, { unsafe: true }); -} - -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -// eslint-disable-next-line es/no-array-isarray -- safe -var isArray = Array.isArray || function isArray(arg) { - return classofRaw(arg) == 'Array'; -}; - -var createProperty = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; -}; - -var SPECIES$3 = wellKnownSymbol('species'); - -// `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -var arraySpeciesCreate = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES$3]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); -}; - -var SPECIES$2 = wellKnownSymbol('species'); - -var arrayMethodHasSpeciesSupport = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return engineV8Version >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES$2] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - -var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); -var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; - -// We can't use this feature detection in V8 since it causes -// deoptimization and serious performance degradation -// https://github.com/zloirock/core-js/issues/679 -var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; -}); - -var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - -var isConcatSpreadable = function (O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); -}; - -var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; - -// `Array.prototype.concat` method -// https://tc39.es/ecma262/#sec-array.prototype.concat -// with adding support of @@isConcatSpreadable and @@species -_export({ target: 'Array', proto: true, forced: FORCED }, { - // eslint-disable-next-line no-unused-vars -- required for `.length` - concat: function concat(arg) { - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER$1) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER$1) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } -}); - -function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} - -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -var debug = (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? function () { - var _console; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return (_console = console).error.apply(_console, ['SEMVER'].concat(args)); -} : function () {}; -var debug_1 = debug; - -var re_1 = createCommonjsModule(function (module, exports) { - var MAX_SAFE_COMPONENT_LENGTH = constants.MAX_SAFE_COMPONENT_LENGTH; - exports = module.exports = {}; // The actual regexps go on exports.re - - var re = exports.re = []; - var src = exports.src = []; - var t = exports.t = {}; - var R = 0; - - var createToken = function createToken(name, value, isGlobal) { - var index = R++; - debug_1(index, value); - t[name] = index; - src[index] = value; - re[index] = new RegExp(value, 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', '[0-9]+'); // ## 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-][a-zA-Z0-9-]*'); // ## Main Version - // Three dot-separated numeric identifiers. - - createToken('MAINVERSION', "(".concat(src[t.NUMERICIDENTIFIER], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIER], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIER], ")")); - createToken('MAINVERSIONLOOSE', "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")")); // ## Pre-release Version Identifier - // A numeric identifier, or a non-numeric identifier. - - createToken('PRERELEASEIDENTIFIER', "(?:".concat(src[t.NUMERICIDENTIFIER], "|").concat(src[t.NONNUMERICIDENTIFIER], ")")); - createToken('PRERELEASEIDENTIFIERLOOSE', "(?:".concat(src[t.NUMERICIDENTIFIERLOOSE], "|").concat(src[t.NONNUMERICIDENTIFIER], ")")); // ## Pre-release Version - // Hyphen, followed by one or more dot-separated pre-release version - // identifiers. - - createToken('PRERELEASE', "(?:-(".concat(src[t.PRERELEASEIDENTIFIER], "(?:\\.").concat(src[t.PRERELEASEIDENTIFIER], ")*))")); - createToken('PRERELEASELOOSE', "(?:-?(".concat(src[t.PRERELEASEIDENTIFIERLOOSE], "(?:\\.").concat(src[t.PRERELEASEIDENTIFIERLOOSE], ")*))")); // ## Build Metadata Identifier - // Any combination of digits, letters, or hyphens. - - createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); // ## Build Metadata - // Plus sign, followed by one or more period-separated build metadata - // identifiers. - - createToken('BUILD', "(?:\\+(".concat(src[t.BUILDIDENTIFIER], "(?:\\.").concat(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?".concat(src[t.MAINVERSION]).concat(src[t.PRERELEASE], "?").concat(src[t.BUILD], "?")); - createToken('FULL', "^".concat(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]*".concat(src[t.MAINVERSIONLOOSE]).concat(src[t.PRERELEASELOOSE], "?").concat(src[t.BUILD], "?")); - createToken('LOOSE', "^".concat(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', "".concat(src[t.NUMERICIDENTIFIERLOOSE], "|x|X|\\*")); - createToken('XRANGEIDENTIFIER', "".concat(src[t.NUMERICIDENTIFIER], "|x|X|\\*")); - createToken('XRANGEPLAIN', "[v=\\s]*(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:".concat(src[t.PRERELEASE], ")?").concat(src[t.BUILD], "?") + ")?)?"); - createToken('XRANGEPLAINLOOSE', "[v=\\s]*(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:".concat(src[t.PRERELEASELOOSE], ")?").concat(src[t.BUILD], "?") + ")?)?"); - createToken('XRANGE', "^".concat(src[t.GTLT], "\\s*").concat(src[t.XRANGEPLAIN], "$")); - createToken('XRANGELOOSE', "^".concat(src[t.GTLT], "\\s*").concat(src[t.XRANGEPLAINLOOSE], "$")); // Coercion. - // Extract anything that could conceivably be a part of a valid semver - - createToken('COERCE', "".concat('(^|[^\\d])' + '(\\d{1,').concat(MAX_SAFE_COMPONENT_LENGTH, "})") + "(?:\\.(\\d{1,".concat(MAX_SAFE_COMPONENT_LENGTH, "}))?") + "(?:\\.(\\d{1,".concat(MAX_SAFE_COMPONENT_LENGTH, "}))?") + "(?:$|[^\\d])"); - createToken('COERCERTL', src[t.COERCE], true); // Tilde ranges. - // Meaning is "reasonably at or greater than" - - createToken('LONETILDE', '(?:~>?)'); - createToken('TILDETRIM', "(\\s*)".concat(src[t.LONETILDE], "\\s+"), true); - exports.tildeTrimReplace = '$1~'; - createToken('TILDE', "^".concat(src[t.LONETILDE]).concat(src[t.XRANGEPLAIN], "$")); - createToken('TILDELOOSE', "^".concat(src[t.LONETILDE]).concat(src[t.XRANGEPLAINLOOSE], "$")); // Caret ranges. - // Meaning is "at least and backwards compatible with" - - createToken('LONECARET', '(?:\\^)'); - createToken('CARETTRIM', "(\\s*)".concat(src[t.LONECARET], "\\s+"), true); - exports.caretTrimReplace = '$1^'; - createToken('CARET', "^".concat(src[t.LONECARET]).concat(src[t.XRANGEPLAIN], "$")); - createToken('CARETLOOSE', "^".concat(src[t.LONECARET]).concat(src[t.XRANGEPLAINLOOSE], "$")); // A simple gt/lt/eq thing, or just "" to indicate "any version" - - createToken('COMPARATORLOOSE', "^".concat(src[t.GTLT], "\\s*(").concat(src[t.LOOSEPLAIN], ")$|^$")); - createToken('COMPARATOR', "^".concat(src[t.GTLT], "\\s*(").concat(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*)".concat(src[t.GTLT], "\\s*(").concat(src[t.LOOSEPLAIN], "|").concat(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*(".concat(src[t.XRANGEPLAIN], ")") + "\\s+-\\s+" + "(".concat(src[t.XRANGEPLAIN], ")") + "\\s*$"); - createToken('HYPHENRANGELOOSE', "^\\s*(".concat(src[t.XRANGEPLAINLOOSE], ")") + "\\s+-\\s+" + "(".concat(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*$'); -}); - -// TODO: Remove from `core-js@4` since it's moved to entry points - - - - - - -var SPECIES$1 = wellKnownSymbol('species'); - -var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; -}); - -// IE <= 11 replaces $0 with the whole match, as if it was $& -// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 -var REPLACE_KEEPS_$0 = (function () { - // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing - return 'a'.replace(/./, '$0') === '$0'; -})(); - -var REPLACE = wellKnownSymbol('replace'); -// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string -var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - return false; -})(); - -// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec -// Weex JS has frozen built-in prototypes, so use try / catch wrapper -var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - // eslint-disable-next-line regexp/no-empty-group -- required for testing - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; -}); - -var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES$1] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS && - REPLACE_KEEPS_$0 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === RegExp.prototype.exec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - - redefine(String.prototype, KEY, stringMethod); - redefine(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); - } - - if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); -}; - -// `String.prototype.{ codePointAt, at }` methods implementation -var createMethod$1 = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; - -var stringMultibyte = { - // `String.prototype.codePointAt` method - // https://tc39.es/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod$1(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod$1(true) -}; - -var charAt$1 = stringMultibyte.charAt; - -// `AdvanceStringIndex` abstract operation -// https://tc39.es/ecma262/#sec-advancestringindex -var advanceStringIndex = function (S, index, unicode) { - return index + (unicode ? charAt$1(S, index).length : 1); -}; - -// `RegExpExec` abstract operation -// https://tc39.es/ecma262/#sec-regexpexec -var regexpExecAbstract = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - - if (classofRaw(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); -}; - -// @@match logic -fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.es/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - - if (!rx.global) return regexpExecAbstract(rx, S); - - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regexpExecAbstract(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; -}); - -var non = '\u200B\u0085\u180E'; - -// check that a method works with the correct list -// of whitespaces and has a correct name -var stringTrimForced = function (METHOD_NAME) { - return fails(function () { - return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME; - }); -}; - -var $trim = stringTrim.trim; - - -// `String.prototype.trim` method -// https://tc39.es/ecma262/#sec-string.prototype.trim -_export({ target: 'String', proto: true, forced: stringTrimForced('trim') }, { - trim: function trim() { - return $trim(this); - } -}); - -var aFunction = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; -}; - -// optional / simple context binding -var functionBindContext = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - -var push = [].push; - -// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_OUT = TYPE == 7; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = indexedObject(O); - var boundFunction = functionBindContext(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push.call(target, value); // filter - } else switch (TYPE) { - case 4: return false; // every - case 7: push.call(target, value); // filterOut - } - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; - -var arrayIteration = { - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.es/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.es/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.es/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.es/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6), - // `Array.prototype.filterOut` method - // https://github.com/tc39/proposal-array-filtering - filterOut: createMethod(7) -}; - -var $map = arrayIteration.map; - - -var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('map'); - -// `Array.prototype.map` method -// https://tc39.es/ecma262/#sec-array.prototype.map -// with adding support of @@species -_export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -var SPECIES = wellKnownSymbol('species'); - -// `SpeciesConstructor` abstract operation -// https://tc39.es/ecma262/#sec-speciesconstructor -var speciesConstructor = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); -}; - -var UNSUPPORTED_Y = regexpStickyHelpers.UNSUPPORTED_Y; -var arrayPush = [].push; -var min = Math.min; -var MAX_UINT32 = 0xFFFFFFFF; - -// @@split logic -fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - // eslint-disable-next-line regexp/no-empty-group -- required for testing - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegexp(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.es/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.es/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (UNSUPPORTED_Y ? 'g' : 'y'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; - var z = regexpExecAbstract(splitter, UNSUPPORTED_Y ? S.slice(q) : S); - var e; - if ( - z === null || - (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; -}, UNSUPPORTED_Y); - -var arrayMethodIsStrict = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing - method.call(null, argument || function () { throw 1; }, 1); - }); -}; - -var nativeJoin = [].join; - -var ES3_STRINGS = indexedObject != Object; -var STRICT_METHOD$1 = arrayMethodIsStrict('join', ','); - -// `Array.prototype.join` method -// https://tc39.es/ecma262/#sec-array.prototype.join -_export({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD$1 }, { - join: function join(separator) { - return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); - } -}); - -var $filter = arrayIteration.filter; - - -var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); - -// `Array.prototype.filter` method -// https://tc39.es/ecma262/#sec-array.prototype.filter -// with adding support of @@species -_export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { - filter: function filter(callbackfn /* , thisArg */) { - return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -// parse out just the options we care about so we always get a consistent -// obj with keys in a consistent order. -var opts = ['includePrerelease', 'loose', 'rtl']; - -var parseOptions = function parseOptions(options) { - return !options ? {} : _typeof(options) !== 'object' ? { - loose: true - } : opts.filter(function (k) { - return options[k]; - }).reduce(function (options, k) { - options[k] = true; - return options; - }, {}); -}; - -var parseOptions_1 = parseOptions; - -var numeric = /^[0-9]+$/; - -var compareIdentifiers$1 = function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var 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; -}; - -var rcompareIdentifiers = function rcompareIdentifiers(a, b) { - return compareIdentifiers$1(b, a); -}; - -var identifiers = { - compareIdentifiers: compareIdentifiers$1, - rcompareIdentifiers: rcompareIdentifiers -}; - -var MAX_LENGTH$1 = constants.MAX_LENGTH, - MAX_SAFE_INTEGER = constants.MAX_SAFE_INTEGER; -var re$1 = re_1.re, - t$1 = re_1.t; -var compareIdentifiers = identifiers.compareIdentifiers; - -var SemVer = /*#__PURE__*/function () { - function SemVer(version, options) { - _classCallCheck(this, SemVer); - - options = parseOptions_1(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: ".concat(version)); - } - - if (version.length > MAX_LENGTH$1) { - throw new TypeError("version is longer than ".concat(MAX_LENGTH$1, " characters")); - } - - debug_1('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; - var m = version.trim().match(options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]); - - if (!m) { - throw new TypeError("Invalid Version: ".concat(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(function (id) { - if (/^[0-9]+$/.test(id)) { - var num = +id; - - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num; - } - } - - return id; - }); - } - - this.build = m[5] ? m[5].split('.') : []; - this.format(); - } - - _createClass(SemVer, [{ - key: "format", - value: function format() { - this.version = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch); - - if (this.prerelease.length) { - this.version += "-".concat(this.prerelease.join('.')); - } - - return this.version; - } - }, { - key: "toString", - value: function toString() { - return this.version; - } - }, { - key: "compare", - value: function compare(other) { - debug_1('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); - } - }, { - key: "compareMain", - value: function 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); - } - }, { - key: "comparePre", - value: function 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; - } - - var i = 0; - - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug_1('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); - } - }, { - key: "compareBuild", - value: function compareBuild(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); - } - - var i = 0; - - do { - var a = this.build[i]; - var b = other.build[i]; - debug_1('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); - } // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - - }, { - key: "inc", - value: function inc(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - 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); - this.inc('pre', identifier); - 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); - } - - this.inc('pre', identifier); - 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': - if (this.prerelease.length === 0) { - this.prerelease = [0]; - } else { - var 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 - this.prerelease.push(0); - } - } - - 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 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0]; - } - } else { - this.prerelease = [identifier, 0]; - } - } - - break; - - default: - throw new Error("invalid increment argument: ".concat(release)); - } - - this.format(); - this.raw = this.version; - return this; - } - }]); - - return SemVer; -}(); - -var semver = SemVer; - -var MAX_LENGTH = constants.MAX_LENGTH; -var re = re_1.re, - t = re_1.t; - -var parse = function parse(version, options) { - options = parseOptions_1(options); - - if (version instanceof semver) { - return version; - } - - if (typeof version !== 'string') { - return null; - } - - if (version.length > MAX_LENGTH) { - return null; - } - - var r = options.loose ? re[t.LOOSE] : re[t.FULL]; - - if (!r.test(version)) { - return null; - } - - try { - return new semver(version, options); - } catch (er) { - return null; - } -}; - -var parse_1 = parse; - -var valid = function valid(version, options) { - var v = parse_1(version, options); - return v ? v.version : null; -}; - -var valid_1 = valid; - -var major = function major(a, loose) { - return new semver(a, loose).major; -}; - -var major_1 = major; - -var packageJson$1 = { - name: "@nextcloud/event-bus", - version: "1.3.0", - description: "", - main: "dist/index.js", - module: "dist/index.es.js", - types: "dist/index.d.ts", - scripts: { - build: "NODE_ENV=production rollup -c", - "build:doc": "typedoc --out dist/doc lib/index.ts && touch dist/doc/.nojekyll", - "check-types": "tsc", - dev: "NODE_ENV=development rollup -c --watch", - test: "jest", - "test:watch": "jest --watchAll" - }, - keywords: ["nextcloud"], - homepage: "https://github.com/nextcloud/nextcloud-event-bus#readme", - author: "Christoph Wurst", - license: "GPL-3.0-or-later", - repository: { - type: "git", - url: "https://github.com/nextcloud/nextcloud-event-bus" - }, - dependencies: { - "@types/semver": "^7.3.5", - "core-js": "^3.11.2", - semver: "^7.3.5" - }, - devDependencies: { - "@babel/cli": "^7.13.16", - "@babel/core": "^7.14.0", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/preset-env": "^7.14.1", - "@babel/preset-typescript": "^7.13.0", - "@nextcloud/browserslist-config": "^1.0.0", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-commonjs": "^18.0.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "babel-jest": "^26.6.3", - "babel-plugin-inline-json-import": "^0.3.2", - jest: "^26.6.3", - rollup: "^2.47.0", - "rollup-plugin-inject-process-env": "^1.3.1", - "rollup-plugin-typescript2": "^0.30.0", - typedoc: "^0.20.36", - typescript: "^4.2.4" - }, - browserslist: ["extends @nextcloud/browserslist-config"] -}; - -var ProxyBus = -/** @class */ -function () { - function ProxyBus(bus) { - if (typeof bus.getVersion !== 'function' || !valid_1(bus.getVersion())) { - console.warn('Proxying an event bus with an unknown or invalid version'); - } else if (major_1(bus.getVersion()) !== major_1(this.getVersion())) { - console.warn('Proxying an event bus of version ' + bus.getVersion() + ' with ' + this.getVersion()); - } - - this.bus = bus; - } - - ProxyBus.prototype.getVersion = function () { - return packageJson$1.version; - }; - - ProxyBus.prototype.subscribe = function (name, handler) { - this.bus.subscribe(name, handler); - }; - - ProxyBus.prototype.unsubscribe = function (name, handler) { - this.bus.unsubscribe(name, handler); - }; - - ProxyBus.prototype.emit = function (name, event) { - this.bus.emit(name, event); - }; - - return ProxyBus; -}(); - -var UNSCOPABLES = wellKnownSymbol('unscopables'); -var ArrayPrototype$1 = Array.prototype; - -// Array.prototype[@@unscopables] -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -if (ArrayPrototype$1[UNSCOPABLES] == undefined) { - objectDefineProperty.f(ArrayPrototype$1, UNSCOPABLES, { - configurable: true, - value: objectCreate(null) - }); -} - -// add a key to Array.prototype[@@unscopables] -var addToUnscopables = function (key) { - ArrayPrototype$1[UNSCOPABLES][key] = true; -}; - -var iterators = {}; - -var correctPrototypeGetter = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - // eslint-disable-next-line es/no-object-getprototypeof -- required for testing - return Object.getPrototypeOf(new F()) !== F.prototype; -}); - -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -// eslint-disable-next-line es/no-object-getprototypeof -- safe -var objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has$1(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; -}; - -var ITERATOR$5 = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS$1 = false; - -var returnThis$2 = function () { return this; }; - -// `%IteratorPrototype%` object -// https://tc39.es/ecma262/#sec-%iteratorprototype%-object -var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; - -/* eslint-disable es/no-array-prototype-keys -- safe */ -if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; - else { - PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; - } -} - -var NEW_ITERATOR_PROTOTYPE = IteratorPrototype$2 == undefined || fails(function () { - var test = {}; - // FF44- legacy iterators case - return IteratorPrototype$2[ITERATOR$5].call(test) !== test; -}); - -if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if (!has$1(IteratorPrototype$2, ITERATOR$5)) { - createNonEnumerableProperty(IteratorPrototype$2, ITERATOR$5, returnThis$2); -} - -var iteratorsCore = { - IteratorPrototype: IteratorPrototype$2, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 -}; - -var defineProperty$1 = objectDefineProperty.f; - - - -var TO_STRING_TAG$3 = wellKnownSymbol('toStringTag'); - -var setToStringTag = function (it, TAG, STATIC) { - if (it && !has$1(it = STATIC ? it : it.prototype, TO_STRING_TAG$3)) { - defineProperty$1(it, TO_STRING_TAG$3, { configurable: true, value: TAG }); - } -}; - -var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; - - - - - -var returnThis$1 = function () { return this; }; - -var createIteratorConstructor = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = objectCreate(IteratorPrototype$1, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false); - iterators[TO_STRING_TAG] = returnThis$1; - return IteratorConstructor; -}; - -var IteratorPrototype = iteratorsCore.IteratorPrototype; -var BUGGY_SAFARI_ITERATORS = iteratorsCore.BUGGY_SAFARI_ITERATORS; -var ITERATOR$4 = wellKnownSymbol('iterator'); -var KEYS = 'keys'; -var VALUES = 'values'; -var ENTRIES = 'entries'; - -var returnThis = function () { return this; }; - -var defineIterator = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; - switch (KIND) { - case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; - case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; - case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; - } return function () { return new IteratorConstructor(this); }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR$4] - || IterablePrototype['@@iterator'] - || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { - if (objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { - if (objectSetPrototypeOf) { - objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); - } else if (typeof CurrentIteratorPrototype[ITERATOR$4] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR$4, returnThis); - } - } - // Set @@toStringTag to native iterators - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true); - } - } - - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; - } - - // define iterator - if (IterablePrototype[ITERATOR$4] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR$4, defaultIterator); - } - iterators[NAME] = defaultIterator; - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } else _export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); - } - - return methods; -}; - -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState$2 = internalState.set; -var getInternalState$1 = internalState.getterFor(ARRAY_ITERATOR); - -// `Array.prototype.entries` method -// https://tc39.es/ecma262/#sec-array.prototype.entries -// `Array.prototype.keys` method -// https://tc39.es/ecma262/#sec-array.prototype.keys -// `Array.prototype.values` method -// https://tc39.es/ecma262/#sec-array.prototype.values -// `Array.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-array.prototype-@@iterator -// `CreateArrayIterator` internal method -// https://tc39.es/ecma262/#sec-createarrayiterator -var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState$2(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); -// `%ArrayIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next -}, function () { - var state = getInternalState$1(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.es/ecma262/#sec-createunmappedargumentsobject -// https://tc39.es/ecma262/#sec-createmappedargumentsobject -iterators.Arguments = iterators.Array; - -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -var freezing = !fails(function () { - // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing - return Object.isExtensible(Object.preventExtensions({})); -}); - -var internalMetadata = createCommonjsModule(function (module) { -var defineProperty = objectDefineProperty.f; - - - -var METADATA = uid('meta'); -var id = 0; - -// eslint-disable-next-line es/no-object-isextensible -- safe -var isExtensible = Object.isExtensible || function () { - return true; -}; - -var setMetadata = function (it) { - defineProperty(it, METADATA, { value: { - objectID: 'O' + ++id, // object ID - weakData: {} // weak collections IDs - } }); -}; - -var fastKey = function (it, create) { - // return a primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has$1(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMetadata(it); - // return object ID - } return it[METADATA].objectID; -}; - -var getWeakData = function (it, create) { - if (!has$1(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMetadata(it); - // return the store of weak collections IDs - } return it[METADATA].weakData; -}; - -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (freezing && meta.REQUIRED && isExtensible(it) && !has$1(it, METADATA)) setMetadata(it); - return it; -}; - -var meta = module.exports = { - REQUIRED: false, - fastKey: fastKey, - getWeakData: getWeakData, - onFreeze: onFreeze -}; - -hiddenKeys$1[METADATA] = true; -}); - -var ITERATOR$3 = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; - -// check on default Array iterator -var isArrayIteratorMethod = function (it) { - return it !== undefined && (iterators.Array === it || ArrayPrototype[ITERATOR$3] === it); -}; - -var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag'); -var test = {}; - -test[TO_STRING_TAG$2] = 'z'; - -var toStringTagSupport = String(test) === '[object z]'; - -var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; - -// getting tag from ES6+ `Object.prototype.toString` -var classof = toStringTagSupport ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$1)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; - -var ITERATOR$2 = wellKnownSymbol('iterator'); - -var getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR$2] - || it['@@iterator'] - || iterators[classof(it)]; -}; - -var iteratorClose = function (iterator) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) { - return anObject(returnMethod.call(iterator)).value; - } -}; - -var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; -}; - -var iterate = function (iterable, unboundFunction, options) { - var that = options && options.that; - var AS_ENTRIES = !!(options && options.AS_ENTRIES); - var IS_ITERATOR = !!(options && options.IS_ITERATOR); - var INTERRUPTED = !!(options && options.INTERRUPTED); - var fn = functionBindContext(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); - var iterator, iterFn, index, length, result, next, step; - - var stop = function (condition) { - if (iterator) iteratorClose(iterator); - return new Result(true, condition); - }; - - var callFn = function (value) { - if (AS_ENTRIES) { - anObject(value); - return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); - } return INTERRUPTED ? fn(value, stop) : fn(value); - }; - - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); - // optimisation for array iterators - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { - result = callFn(iterable[index]); - if (result && result instanceof Result) return result; - } return new Result(false); - } - iterator = iterFn.call(iterable); - } - - next = iterator.next; - while (!(step = next.call(iterator)).done) { - try { - result = callFn(step.value); - } catch (error) { - iteratorClose(iterator); - throw error; - } - if (typeof result == 'object' && result && result instanceof Result) return result; - } return new Result(false); -}; - -var anInstance = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; -}; - -var ITERATOR$1 = wellKnownSymbol('iterator'); -var SAFE_CLOSING = false; - -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR$1] = function () { - return this; - }; - // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing - Array.from(iteratorWithReturn, function () { throw 2; }); -} catch (error) { /* empty */ } - -var checkCorrectnessOfIteration = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR$1] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; -}; - -var collection = function (CONSTRUCTOR_NAME, wrapper, common) { - var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; - var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; - var ADDER = IS_MAP ? 'set' : 'add'; - var NativeConstructor = global$1[CONSTRUCTOR_NAME]; - var NativePrototype = NativeConstructor && NativeConstructor.prototype; - var Constructor = NativeConstructor; - var exported = {}; - - var fixMethod = function (KEY) { - var nativeMethod = NativePrototype[KEY]; - redefine(NativePrototype, KEY, - KEY == 'add' ? function add(value) { - nativeMethod.call(this, value === 0 ? 0 : value); - return this; - } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : function set(key, value) { - nativeMethod.call(this, key === 0 ? 0 : key, value); - return this; - } - ); - }; - - var REPLACE = isForced_1( - CONSTRUCTOR_NAME, - typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { - new NativeConstructor().entries().next(); - })) - ); - - if (REPLACE) { - // create collection constructor - Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - internalMetadata.REQUIRED = true; - } else if (isForced_1(CONSTRUCTOR_NAME, true)) { - var instance = new Constructor(); - // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); - // most early implementations doesn't supports iterables, most modern - not close it correctly - // eslint-disable-next-line no-new -- required for testing - var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); - // for early implementations -0 and +0 not the same - var BUGGY_ZERO = !IS_WEAK && fails(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new NativeConstructor(); - var index = 5; - while (index--) $instance[ADDER](index, index); - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - Constructor = wrapper(function (dummy, iterable) { - anInstance(dummy, Constructor, CONSTRUCTOR_NAME); - var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); - if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); - return that; - }); - Constructor.prototype = NativePrototype; - NativePrototype.constructor = Constructor; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - - // weak collections should not contains .clear method - if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; - } - - exported[CONSTRUCTOR_NAME] = Constructor; - _export({ global: true, forced: Constructor != NativeConstructor }, exported); - - setToStringTag(Constructor, CONSTRUCTOR_NAME); - - if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); - - return Constructor; -}; - -var redefineAll = function (target, src, options) { - for (var key in src) redefine(target, key, src[key], options); - return target; -}; - -var defineProperty = objectDefineProperty.f; - - - - - - - - -var fastKey = internalMetadata.fastKey; - - -var setInternalState$1 = internalState.set; -var internalStateGetterFor = internalState.getterFor; - -var collectionStrong = { - getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState$1(that, { - type: CONSTRUCTOR_NAME, - index: objectCreate(null), - first: undefined, - last: undefined, - size: 0 - }); - if (!descriptors) that.size = 0; - if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); - }); - - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - - var define = function (that, key, value) { - var state = getInternalState(that); - var entry = getEntry(that, key); - var previous, index; - // change existing entry - if (entry) { - entry.value = value; - // create new entry - } else { - state.last = entry = { - index: index = fastKey(key, true), - key: key, - value: value, - previous: previous = state.last, - next: undefined, - removed: false - }; - if (!state.first) state.first = entry; - if (previous) previous.next = entry; - if (descriptors) state.size++; - else that.size++; - // add to index - if (index !== 'F') state.index[index] = entry; - } return that; - }; - - var getEntry = function (that, key) { - var state = getInternalState(that); - // fast case - var index = fastKey(key); - var entry; - if (index !== 'F') return state.index[index]; - // frozen object case - for (entry = state.first; entry; entry = entry.next) { - if (entry.key == key) return entry; - } - }; - - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - var that = this; - var state = getInternalState(that); - var data = state.index; - var entry = state.first; - while (entry) { - entry.removed = true; - if (entry.previous) entry.previous = entry.previous.next = undefined; - delete data[entry.index]; - entry = entry.next; - } - state.first = state.last = undefined; - if (descriptors) state.size = 0; - else that.size = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function (key) { - var that = this; - var state = getInternalState(that); - var entry = getEntry(that, key); - if (entry) { - var next = entry.next; - var prev = entry.previous; - delete state.index[entry.index]; - entry.removed = true; - if (prev) prev.next = next; - if (next) next.previous = prev; - if (state.first == entry) state.first = next; - if (state.last == entry) state.last = prev; - if (descriptors) state.size--; - else that.size--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /* , that = undefined */) { - var state = getInternalState(this); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.next : state.first) { - boundFunction(entry.value, entry.key, this); - // revert to the last existing entry - while (entry && entry.removed) entry = entry.previous; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(this, key); - } - }); - - redefineAll(C.prototype, IS_MAP ? { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = getEntry(this, key); - return entry && entry.value; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return define(this, key === 0 ? 0 : key, value); - } - } : { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value) { - return define(this, value = value === 0 ? 0 : value, value); - } - }); - if (descriptors) defineProperty(C.prototype, 'size', { - get: function () { - return getInternalState(this).size; - } - }); - return C; - }, - setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) { - var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; - var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); - var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) { - setInternalState$1(this, { - type: ITERATOR_NAME, - target: iterated, - state: getInternalCollectionState(iterated), - kind: kind, - last: undefined - }); - }, function () { - var state = getInternalIteratorState(this); - var kind = state.kind; - var entry = state.last; - // revert to the last existing entry - while (entry && entry.removed) entry = entry.previous; - // get next entry - if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { - // or finish the iteration - state.target = undefined; - return { value: undefined, done: true }; - } - // return step by kind - if (kind == 'keys') return { value: entry.key, done: false }; - if (kind == 'values') return { value: entry.value, done: false }; - return { value: [entry.key, entry.value], done: false }; - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - - // add [@@species], 23.1.2.2, 23.2.2.2 - setSpecies(CONSTRUCTOR_NAME); - } -}; - -// `Map` constructor -// https://tc39.es/ecma262/#sec-map-objects -collection('Map', function (init) { - return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; -}, collectionStrong); - -// `Object.prototype.toString` method implementation -// https://tc39.es/ecma262/#sec-object.prototype.tostring -var objectToString = toStringTagSupport ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; -}; - -// `Object.prototype.toString` method -// https://tc39.es/ecma262/#sec-object.prototype.tostring -if (!toStringTagSupport) { - redefine(Object.prototype, 'toString', objectToString, { unsafe: true }); -} - -var charAt = stringMultibyte.charAt; - - - -var STRING_ITERATOR = 'String Iterator'; -var setInternalState = internalState.set; -var getInternalState = internalState.getterFor(STRING_ITERATOR); - -// `String.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-string.prototype-@@iterator -defineIterator(String, 'String', function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: String(iterated), - index: 0 - }); -// `%StringIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next -}, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) return { value: undefined, done: true }; - point = charAt(string, index); - state.index += point.length; - return { value: point, done: false }; -}); - -// iterable DOM collections -// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods -var domIterables = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 -}; - -var ITERATOR = wellKnownSymbol('iterator'); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var ArrayValues = es_array_iterator.values; - -for (var COLLECTION_NAME$1 in domIterables) { - var Collection$1 = global$1[COLLECTION_NAME$1]; - var CollectionPrototype$1 = Collection$1 && Collection$1.prototype; - if (CollectionPrototype$1) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$1[ITERATOR] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype$1, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype$1[ITERATOR] = ArrayValues; - } - if (!CollectionPrototype$1[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype$1, TO_STRING_TAG, COLLECTION_NAME$1); - } - if (domIterables[COLLECTION_NAME$1]) for (var METHOD_NAME in es_array_iterator) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$1[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype$1, METHOD_NAME, es_array_iterator[METHOD_NAME]); - } catch (error) { - CollectionPrototype$1[METHOD_NAME] = es_array_iterator[METHOD_NAME]; - } - } - } -} - -var $forEach = arrayIteration.forEach; - - -var STRICT_METHOD = arrayMethodIsStrict('forEach'); - -// `Array.prototype.forEach` method implementation -// https://tc39.es/ecma262/#sec-array.prototype.foreach -var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { - return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); -// eslint-disable-next-line es/no-array-prototype-foreach -- safe -} : [].forEach; - -for (var COLLECTION_NAME in domIterables) { - var Collection = global$1[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try { - createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach); - } catch (error) { - CollectionPrototype.forEach = arrayForEach; - } -} - -var packageJson = { - name: "@nextcloud/event-bus", - version: "1.3.0", - description: "", - main: "dist/index.js", - module: "dist/index.es.js", - types: "dist/index.d.ts", - scripts: { - build: "NODE_ENV=production rollup -c", - "build:doc": "typedoc --out dist/doc lib/index.ts && touch dist/doc/.nojekyll", - "check-types": "tsc", - dev: "NODE_ENV=development rollup -c --watch", - test: "jest", - "test:watch": "jest --watchAll" - }, - keywords: ["nextcloud"], - homepage: "https://github.com/nextcloud/nextcloud-event-bus#readme", - author: "Christoph Wurst", - license: "GPL-3.0-or-later", - repository: { - type: "git", - url: "https://github.com/nextcloud/nextcloud-event-bus" - }, - dependencies: { - "@types/semver": "^7.3.5", - "core-js": "^3.11.2", - semver: "^7.3.5" - }, - devDependencies: { - "@babel/cli": "^7.13.16", - "@babel/core": "^7.14.0", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/preset-env": "^7.14.1", - "@babel/preset-typescript": "^7.13.0", - "@nextcloud/browserslist-config": "^1.0.0", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-commonjs": "^18.0.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "babel-jest": "^26.6.3", - "babel-plugin-inline-json-import": "^0.3.2", - jest: "^26.6.3", - rollup: "^2.47.0", - "rollup-plugin-inject-process-env": "^1.3.1", - "rollup-plugin-typescript2": "^0.30.0", - typedoc: "^0.20.36", - typescript: "^4.2.4" - }, - browserslist: ["extends @nextcloud/browserslist-config"] -}; - -var SimpleBus = -/** @class */ -function () { - function SimpleBus() { - this.handlers = new Map(); - } - - SimpleBus.prototype.getVersion = function () { - return packageJson.version; - }; - - SimpleBus.prototype.subscribe = function (name, handler) { - this.handlers.set(name, (this.handlers.get(name) || []).concat(handler)); - }; - - SimpleBus.prototype.unsubscribe = function (name, handler) { - this.handlers.set(name, (this.handlers.get(name) || []).filter(function (h) { - return h != handler; - })); - }; - - SimpleBus.prototype.emit = function (name, event) { - (this.handlers.get(name) || []).forEach(function (h) { - try { - h(event); - } catch (e) { - console.error('could not invoke event listener', e); - } - }); - }; - - return SimpleBus; -}(); - -function getBus() { - if (typeof window.OC !== 'undefined' && window.OC._eventBus && typeof window._nc_event_bus === 'undefined') { - console.warn('found old event bus instance at OC._eventBus. Update your version!'); - window._nc_event_bus = window.OC._eventBus; - } // Either use an existing event bus instance or create one - - - if (typeof window._nc_event_bus !== 'undefined') { - return new ProxyBus(window._nc_event_bus); - } else { - return window._nc_event_bus = new SimpleBus(); - } -} - -var bus = getBus(); -/** - * Register an event listener - * - * @param name name of the event - * @param handler callback invoked for every matching event emitted on the bus - */ - -function subscribe(name, handler) { - bus.subscribe(name, handler); -} -/** - * Unregister a previously registered event listener - * - * Note: doesn't work with anonymous functions (closures). Use method of an object or store listener function in variable. - * - * @param name name of the event - * @param handler callback passed to `subscribed` - */ - -function unsubscribe(name, handler) { - bus.unsubscribe(name, handler); -} -/** - * Emit an event - * - * @param name name of the event - * @param event event payload - */ - -function emit(name, event) { - bus.emit(name, event); -} - - -//# sourceMappingURL=index.es.js.map - - -/***/ }), - -/***/ "./node_modules/@nextcloud/focus-trap/dist/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/@nextcloud/focus-trap/dist/index.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=__webpack_require__(/*! focus-trap */ "./node_modules/focus-trap/dist/focus-trap.esm.js"),p=Symbol("real-focus-trap"),i=()=>window._nc_focus_trap.list.reverse().find(t=>t.active),s=window._nc_focus_trap!==void 0?window._nc_focus_trap:Object.freeze({list:[],elements:new WeakMap});window._nc_focus_trap=s;const _=(t,n)=>{const e=f.createFocusTrap(t,n),u=new Set(Array.isArray(t)?[...t]:[t]);s.elements.set(e,u);const l=(...c)=>(s.list.forEach(r=>{r.pause()}),s.list.push(e),e.activate(...c)),d=(...c)=>{const r=e.deactivate(...c),o=s.list.findIndex(v=>v===e);o>=0&&s.list.splice(o,1);const a=s.list[s.list.length-1];return a!=null&&a.paused&&a.unpause(),r};return new Proxy(e,{get(c,r){return r==="activate"?l:r==="deactivate"?d:r===p?c:c[r]}})},w=t=>{const n=i();if(n==null)return;const e=s.elements.get(n);e.add(t),n.updateContainerElements([...e.values()])},m=t=>{const n=i();if(n==null)return;const e=s.elements.get(n);e.delete(t),n.updateContainerElements([...e.values()])};exports.addToActive=w;exports.createFocusTrap=_;exports.removeFromActive=m; - - -/***/ }), - -/***/ "./node_modules/@nextcloud/initial-state/dist/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@nextcloud/initial-state/dist/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/** - * @param app app ID, e.g. "mail" - * @param key name of the property - * @param fallback optional parameter to use as default value - * @throws if the key can't be found - */ -function loadState(app, key, fallback) { - var elem = document.querySelector("#initial-state-".concat(app, "-").concat(key)); - if (elem === null) { - if (fallback !== undefined) { - return fallback; - } - throw new Error("Could not find initial state ".concat(key, " of ").concat(app)); - } - try { - return JSON.parse(atob(elem.value)); - } - catch (e) { - throw new Error("Could not parse initial state ".concat(key, " of ").concat(app)); - } -} - -exports.loadState = loadState; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ "./node_modules/@nextcloud/l10n/dist/gettext.js": -/*!******************************************************!*\ - !*** ./node_modules/@nextcloud/l10n/dist/gettext.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getGettextBuilder = getGettextBuilder; - -__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); - -__webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); - -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); - -__webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); - -__webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js"); - -var _nodeGettext = _interopRequireDefault(__webpack_require__(/*! node-gettext */ "./node_modules/node-gettext/lib/gettext.js")); - -var _ = __webpack_require__(/*! . */ "./node_modules/@nextcloud/l10n/dist/index.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var GettextBuilder = /*#__PURE__*/function () { - function GettextBuilder() { - _classCallCheck(this, GettextBuilder); - - this.translations = {}; - this.debug = false; - } - - _createClass(GettextBuilder, [{ - key: "setLanguage", - value: function setLanguage(language) { - this.locale = language; - return this; - } - }, { - key: "detectLocale", - value: function detectLocale() { - return this.setLanguage((0, _.getLanguage)().replace('-', '_')); - } - }, { - key: "addTranslation", - value: function addTranslation(language, data) { - this.translations[language] = data; - return this; - } - }, { - key: "enableDebugMode", - value: function enableDebugMode() { - this.debug = true; - return this; - } - }, { - key: "build", - value: function build() { - return new GettextWrapper(this.locale || 'en', this.translations, this.debug); - } - }]); - - return GettextBuilder; -}(); - -var GettextWrapper = /*#__PURE__*/function () { - function GettextWrapper(locale, data, debug) { - _classCallCheck(this, GettextWrapper); - - this.gt = new _nodeGettext.default({ - debug: debug, - sourceLocale: 'en' - }); - - for (var key in data) { - this.gt.addTranslations(key, 'messages', data[key]); - } - - this.gt.setLocale(locale); - } - - _createClass(GettextWrapper, [{ - key: "subtitudePlaceholders", - value: function subtitudePlaceholders(translated, vars) { - return translated.replace(/{([^{}]*)}/g, function (a, b) { - var r = vars[b]; - - if (typeof r === 'string' || typeof r === 'number') { - return r.toString(); - } else { - return a; - } - }); - } - }, { - key: "gettext", - value: function gettext(original) { - var placeholders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return this.subtitudePlaceholders(this.gt.gettext(original), placeholders); - } - }, { - key: "ngettext", - value: function ngettext(singular, plural, count) { - var placeholders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders); - } - }]); - - return GettextWrapper; -}(); - -function getGettextBuilder() { - return new GettextBuilder(); -} -//# sourceMappingURL=gettext.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/l10n/dist/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@nextcloud/l10n/dist/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getCanonicalLocale = getCanonicalLocale; -exports.getDayNames = getDayNames; -exports.getDayNamesMin = getDayNamesMin; -exports.getDayNamesShort = getDayNamesShort; -exports.getFirstDay = getFirstDay; -exports.getLanguage = getLanguage; -exports.getLocale = getLocale; -exports.getMonthNames = getMonthNames; -exports.getMonthNamesShort = getMonthNamesShort; -exports.translate = translate; -exports.translatePlural = translatePlural; - -__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); - -__webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); - -/// - -/** - * Returns the user's locale - */ -function getLocale() { - return document.documentElement.dataset.locale || 'en'; -} - -function getCanonicalLocale() { - return getLocale().replace(/_/g, '-'); -} -/** - * Returns the user's language - */ - - -function getLanguage() { - return document.documentElement.lang || 'en'; -} - -/** - * Translate a string - * - * @param {string} app the id of the app for which to translate the string - * @param {string} text the string to translate - * @param {object} vars map of placeholder key to value - * @param {number} number to replace %n with - * @param {object} [options] options object - * @return {string} - */ -function translate(app, text, vars, count, options) { - if (typeof OC === 'undefined') { - console.warn('No OC found'); - return text; - } - - return OC.L10N.translate(app, text, vars, count, options); -} -/** - * Translate a plural string - * - * @param {string} app the id of the app for which to translate the string - * @param {string} textSingular the string to translate for exactly one object - * @param {string} textPlural the string to translate for n objects - * @param {number} count number to determine whether to use singular or plural - * @param {Object} vars of placeholder key to value - * @param {object} options options object - * @return {string} - */ - - -function translatePlural(app, textSingular, textPlural, count, vars, options) { - if (typeof OC === 'undefined') { - console.warn('No OC found'); - return textSingular; - } - - return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options); -} -/** - * Get the first day of the week - * - * @return {number} - */ - - -function getFirstDay() { - if (typeof window.firstDay === 'undefined') { - console.warn('No firstDay found'); - return 1; - } - - return window.firstDay; -} -/** - * Get a list of day names (full names) - * - * @return {string[]} - */ - - -function getDayNames() { - if (typeof window.dayNames === 'undefined') { - console.warn('No dayNames found'); - return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; - } - - return window.dayNames; -} -/** - * Get a list of day names (short names) - * - * @return {string[]} - */ - - -function getDayNamesShort() { - if (typeof window.dayNamesShort === 'undefined') { - console.warn('No dayNamesShort found'); - return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']; - } - - return window.dayNamesShort; -} -/** - * Get a list of day names (minified names) - * - * @return {string[]} - */ - - -function getDayNamesMin() { - if (typeof window.dayNamesMin === 'undefined') { - console.warn('No dayNamesMin found'); - return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']; - } - - return window.dayNamesMin; -} -/** - * Get a list of month names (full names) - * - * @return {string[]} - */ - - -function getMonthNames() { - if (typeof window.monthNames === 'undefined') { - console.warn('No monthNames found'); - return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; - } - - return window.monthNames; -} -/** - * Get a list of month names (short names) - * - * @return {string[]} - */ - - -function getMonthNamesShort() { - if (typeof window.monthNamesShort === 'undefined') { - console.warn('No monthNamesShort found'); - return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']; - } - - return window.monthNamesShort; -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/dist/ConsoleLogger.js": -/*!**************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/dist/ConsoleLogger.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.ConsoleLogger = void 0; -exports.buildConsoleLogger = buildConsoleLogger; -__webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js"); -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); -var _contracts = __webpack_require__(/*! ./contracts */ "./node_modules/@nextcloud/logger/dist/contracts.js"); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -var ConsoleLogger = /*#__PURE__*/function () { - function ConsoleLogger(context) { - _classCallCheck(this, ConsoleLogger); - _defineProperty(this, "context", void 0); - this.context = context; - } - _createClass(ConsoleLogger, [{ - key: "formatMessage", - value: function formatMessage(message, level, context) { - var msg = '[' + _contracts.LogLevel[level].toUpperCase() + ']'; - if (context && context.app) { - msg += ' ' + context.app + ': '; - } - return msg + message; - } - }, { - key: "log", - value: function log(level, message, context) { - var _this$context; - if (level < ((_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.level)) return; - switch (level) { - case _contracts.LogLevel.Debug: - console.debug(this.formatMessage(message, _contracts.LogLevel.Debug, context), context); - break; - case _contracts.LogLevel.Info: - console.info(this.formatMessage(message, _contracts.LogLevel.Info, context), context); - break; - case _contracts.LogLevel.Warn: - console.warn(this.formatMessage(message, _contracts.LogLevel.Warn, context), context); - break; - case _contracts.LogLevel.Error: - console.error(this.formatMessage(message, _contracts.LogLevel.Error, context), context); - break; - case _contracts.LogLevel.Fatal: - default: - console.error(this.formatMessage(message, _contracts.LogLevel.Fatal, context), context); - break; - } - } - }, { - key: "debug", - value: function debug(message, context) { - this.log(_contracts.LogLevel.Debug, message, Object.assign({}, this.context, context)); - } - }, { - key: "info", - value: function info(message, context) { - this.log(_contracts.LogLevel.Info, message, Object.assign({}, this.context, context)); - } - }, { - key: "warn", - value: function warn(message, context) { - this.log(_contracts.LogLevel.Warn, message, Object.assign({}, this.context, context)); - } - }, { - key: "error", - value: function error(message, context) { - this.log(_contracts.LogLevel.Error, message, Object.assign({}, this.context, context)); - } - }, { - key: "fatal", - value: function fatal(message, context) { - this.log(_contracts.LogLevel.Fatal, message, Object.assign({}, this.context, context)); - } - }]); - return ConsoleLogger; -}(); -exports.ConsoleLogger = ConsoleLogger; -function buildConsoleLogger(context) { - return new ConsoleLogger(context); -} -//# sourceMappingURL=ConsoleLogger.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/dist/LoggerBuilder.js": -/*!**************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/dist/LoggerBuilder.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.LoggerBuilder = void 0; -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); -var _auth = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/logger/node_modules/@nextcloud/auth/dist/index.js"); -var _contracts = __webpack_require__(/*! ./contracts */ "./node_modules/@nextcloud/logger/dist/contracts.js"); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -var LoggerBuilder = /*#__PURE__*/function () { - function LoggerBuilder(factory) { - var _OC, _OC$config, _OC2; - _classCallCheck(this, LoggerBuilder); - _defineProperty(this, "context", void 0); - _defineProperty(this, "factory", void 0); - this.context = {}; - this.factory = factory; - // Up to, including, nextcloud 24 the loglevel was not exposed - this.context.level = window.hasOwnProperty('OC') && ((_OC = OC) === null || _OC === void 0 ? void 0 : (_OC$config = _OC.config) === null || _OC$config === void 0 ? void 0 : _OC$config.loglevel) !== undefined ? OC.config.loglevel : _contracts.LogLevel.Warn; - // Override loglevel if we are in debug mode - if (window.hasOwnProperty('OC') && (_OC2 = OC) !== null && _OC2 !== void 0 && _OC2.debug) { - this.context.level = _contracts.LogLevel.Debug; - } - } - _createClass(LoggerBuilder, [{ - key: "setApp", - value: function setApp(appId) { - this.context.app = appId; - return this; - } - }, { - key: "setLogLevel", - value: function setLogLevel(level) { - this.context.level = level; - return this; - } - }, { - key: "setUid", - value: function setUid(uid) { - this.context.uid = uid; - return this; - } - }, { - key: "detectUser", - value: function detectUser() { - var user = (0, _auth.getCurrentUser)(); - if (user !== null) { - this.context.uid = user.uid; - } - return this; - } - }, { - key: "build", - value: function build() { - return this.factory(this.context); - } - }]); - return LoggerBuilder; -}(); -exports.LoggerBuilder = LoggerBuilder; -//# sourceMappingURL=LoggerBuilder.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/dist/contracts.js": -/*!**********************************************************!*\ - !*** ./node_modules/@nextcloud/logger/dist/contracts.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.LogLevel = void 0; -var LogLevel; -exports.LogLevel = LogLevel; -(function (LogLevel) { - LogLevel[LogLevel["Debug"] = 0] = "Debug"; - LogLevel[LogLevel["Info"] = 1] = "Info"; - LogLevel[LogLevel["Warn"] = 2] = "Warn"; - LogLevel[LogLevel["Error"] = 3] = "Error"; - LogLevel[LogLevel["Fatal"] = 4] = "Fatal"; -})(LogLevel || (exports.LogLevel = LogLevel = {})); -//# sourceMappingURL=contracts.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/dist/index.js": -/*!******************************************************!*\ - !*** ./node_modules/@nextcloud/logger/dist/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -__webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getLogger = getLogger; -exports.getLoggerBuilder = getLoggerBuilder; -var _ConsoleLogger = __webpack_require__(/*! ./ConsoleLogger */ "./node_modules/@nextcloud/logger/dist/ConsoleLogger.js"); -var _LoggerBuilder = __webpack_require__(/*! ./LoggerBuilder */ "./node_modules/@nextcloud/logger/dist/LoggerBuilder.js"); -/** - * Build a customized logger instance - */ -function getLoggerBuilder() { - return new _LoggerBuilder.LoggerBuilder(_ConsoleLogger.buildConsoleLogger); -} - -/** - * Get a default logger instance without any configuration - */ -function getLogger() { - return getLoggerBuilder().build(); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/@nextcloud/auth/dist/index.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/@nextcloud/auth/dist/index.js ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var eventBus = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/logger/node_modules/@nextcloud/event-bus/dist/index.js"); - -var tokenElement = document.getElementsByTagName('head')[0]; -var token = tokenElement ? tokenElement.getAttribute('data-requesttoken') : null; -var observers = []; -function getRequestToken() { - return token; -} -function onRequestTokenUpdate(observer) { - observers.push(observer); -} -// Listen to server event and keep token in sync -eventBus.subscribe('csrf-token-update', function (e) { - token = e.token; - observers.forEach(function (observer) { - try { - observer(e.token); - } - catch (e) { - console.error('error updating CSRF token observer', e); - } - }); -}); - -/// -var getAttribute = function (el, attribute) { - if (el) { - return el.getAttribute(attribute); - } - return null; -}; -var head = document.getElementsByTagName('head')[0]; -var uid = getAttribute(head, 'data-user'); -var displayName = getAttribute(head, 'data-user-displayname'); -var isAdmin = (typeof OC === 'undefined') - ? false - : OC.isUserAdmin(); -function getCurrentUser() { - if (uid === null) { - return null; - } - return { - uid: uid, - displayName: displayName, - isAdmin: isAdmin, - }; -} - -exports.getCurrentUser = getCurrentUser; -exports.getRequestToken = getRequestToken; -exports.onRequestTokenUpdate = onRequestTokenUpdate; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/@nextcloud/event-bus/dist/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/@nextcloud/event-bus/dist/index.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var valid = __webpack_require__(/*! semver/functions/valid.js */ "./node_modules/@nextcloud/logger/node_modules/semver/functions/valid.js"); -var major = __webpack_require__(/*! semver/functions/major.js */ "./node_modules/@nextcloud/logger/node_modules/semver/functions/major.js"); - -function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - -var valid__default = /*#__PURE__*/_interopDefaultLegacy(valid); -var major__default = /*#__PURE__*/_interopDefaultLegacy(major); - -var ProxyBus = /** @class */ (function () { - function ProxyBus(bus) { - if (typeof bus.getVersion !== 'function' || !valid__default["default"](bus.getVersion())) { - console.warn('Proxying an event bus with an unknown or invalid version'); - } - else if (major__default["default"](bus.getVersion()) !== major__default["default"](this.getVersion())) { - console.warn('Proxying an event bus of version ' + bus.getVersion() + ' with ' + this.getVersion()); - } - this.bus = bus; - } - ProxyBus.prototype.getVersion = function () { - return "3.0.2"; - }; - ProxyBus.prototype.subscribe = function (name, handler) { - this.bus.subscribe(name, handler); - }; - ProxyBus.prototype.unsubscribe = function (name, handler) { - this.bus.unsubscribe(name, handler); - }; - ProxyBus.prototype.emit = function (name, event) { - this.bus.emit(name, event); - }; - return ProxyBus; -}()); - -var SimpleBus = /** @class */ (function () { - function SimpleBus() { - this.handlers = new Map(); - } - SimpleBus.prototype.getVersion = function () { - return "3.0.2"; - }; - SimpleBus.prototype.subscribe = function (name, handler) { - this.handlers.set(name, (this.handlers.get(name) || []).concat(handler)); - }; - SimpleBus.prototype.unsubscribe = function (name, handler) { - this.handlers.set(name, (this.handlers.get(name) || []).filter(function (h) { return h != handler; })); - }; - SimpleBus.prototype.emit = function (name, event) { - (this.handlers.get(name) || []).forEach(function (h) { - try { - h(event); - } - catch (e) { - console.error('could not invoke event listener', e); - } - }); - }; - return SimpleBus; -}()); - -function getBus() { - if ((typeof window.OC !== 'undefined') && window.OC._eventBus && typeof window._nc_event_bus === 'undefined') { - console.warn('found old event bus instance at OC._eventBus. Update your version!'); - window._nc_event_bus = window.OC._eventBus; - } - // Either use an existing event bus instance or create one - if (typeof window._nc_event_bus !== 'undefined') { - return new ProxyBus(window._nc_event_bus); - } - else { - return window._nc_event_bus = new SimpleBus(); - } -} -var bus = getBus(); -/** - * Register an event listener - * - * @param name name of the event - * @param handler callback invoked for every matching event emitted on the bus - */ -function subscribe(name, handler) { - bus.subscribe(name, handler); -} -/** - * Unregister a previously registered event listener - * - * Note: doesn't work with anonymous functions (closures). Use method of an object or store listener function in variable. - * - * @param name name of the event - * @param handler callback passed to `subscribed` - */ -function unsubscribe(name, handler) { - bus.unsubscribe(name, handler); -} -/** - * Emit an event - * - * @param name name of the event - * @param event event payload - */ -function emit(name, event) { - bus.emit(name, event); -} - -exports.ProxyBus = ProxyBus; -exports.SimpleBus = SimpleBus; -exports.emit = emit; -exports.subscribe = subscribe; -exports.unsubscribe = unsubscribe; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/semver/classes/semver.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/semver/classes/semver.js ***! - \******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const debug = __webpack_require__(/*! ../internal/debug */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/debug.js") -const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(/*! ../internal/constants */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/constants.js") -const { re, t } = __webpack_require__(/*! ../internal/re */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/re.js") - -const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/parse-options.js") -const { compareIdentifiers } = __webpack_require__(/*! ../internal/identifiers */ "./node_modules/@nextcloud/logger/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: ${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('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) - } - - // 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) { - switch (release) { - case 'premajor': - this.prerelease.length = 0 - this.patch = 0 - this.minor = 0 - this.major++ - this.inc('pre', identifier) - break - case 'preminor': - this.prerelease.length = 0 - this.patch = 0 - this.minor++ - this.inc('pre', identifier) - 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) - this.inc('pre', identifier) - 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) - } - this.inc('pre', identifier) - 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': - if (this.prerelease.length === 0) { - this.prerelease = [0] - } 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 - this.prerelease.push(0) - } - } - 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 - if (compareIdentifiers(this.prerelease[0], identifier) === 0) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0] - } - } else { - this.prerelease = [identifier, 0] - } - } - break - - default: - throw new Error(`invalid increment argument: ${release}`) - } - this.format() - this.raw = this.version - return this - } -} - -module.exports = SemVer - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/semver/functions/major.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/semver/functions/major.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const SemVer = __webpack_require__(/*! ../classes/semver */ "./node_modules/@nextcloud/logger/node_modules/semver/classes/semver.js") -const major = (a, loose) => new SemVer(a, loose).major -module.exports = major - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/semver/functions/parse.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/semver/functions/parse.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const { MAX_LENGTH } = __webpack_require__(/*! ../internal/constants */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/constants.js") -const { re, t } = __webpack_require__(/*! ../internal/re */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/re.js") -const SemVer = __webpack_require__(/*! ../classes/semver */ "./node_modules/@nextcloud/logger/node_modules/semver/classes/semver.js") - -const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/parse-options.js") -const parse = (version, options) => { - options = parseOptions(options) - - if (version instanceof SemVer) { - return version - } - - if (typeof version !== 'string') { - return null - } - - if (version.length > MAX_LENGTH) { - return null - } - - const r = options.loose ? re[t.LOOSE] : re[t.FULL] - if (!r.test(version)) { - return null - } - - try { - return new SemVer(version, options) - } catch (er) { - return null - } -} - -module.exports = parse - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/semver/functions/valid.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/semver/functions/valid.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const parse = __webpack_require__(/*! ./parse */ "./node_modules/@nextcloud/logger/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/logger/node_modules/semver/internal/constants.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/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 - -module.exports = { - SEMVER_SPEC_VERSION, - MAX_LENGTH, - MAX_SAFE_INTEGER, - MAX_SAFE_COMPONENT_LENGTH, -} - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/semver/internal/debug.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/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"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.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/logger/node_modules/semver/internal/identifiers.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/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/logger/node_modules/semver/internal/parse-options.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/semver/internal/parse-options.js ***! - \**************************************************************************************/ -/***/ ((module) => { - -// parse out just the options we care about so we always get a consistent -// obj with keys in a consistent order. -const opts = ['includePrerelease', 'loose', 'rtl'] -const parseOptions = options => - !options ? {} - : typeof options !== 'object' ? { loose: true } - : opts.filter(k => options[k]).reduce((o, k) => { - o[k] = true - return o - }, {}) -module.exports = parseOptions - - -/***/ }), - -/***/ "./node_modules/@nextcloud/logger/node_modules/semver/internal/re.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@nextcloud/logger/node_modules/semver/internal/re.js ***! - \***************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -const { MAX_SAFE_COMPONENT_LENGTH } = __webpack_require__(/*! ./constants */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/constants.js") -const debug = __webpack_require__(/*! ./debug */ "./node_modules/@nextcloud/logger/node_modules/semver/internal/debug.js") -exports = module.exports = {} - -// The actual regexps go on exports.re -const re = exports.re = [] -const src = exports.src = [] -const t = exports.t = {} -let R = 0 - -const createToken = (name, value, isGlobal) => { - const index = R++ - debug(name, index, value) - t[name] = index - src[index] = value - re[index] = new RegExp(value, 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', '[0-9]+') - -// ## 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-][a-zA-Z0-9-]*') - -// ## 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', '[0-9A-Za-z-]+') - -// ## 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('COERCE', `${'(^|[^\\d])' + - '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:$|[^\\d])`) -createToken('COERCERTL', src[t.COERCE], 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/@nextcloud/router/dist/index.js": -/*!******************************************************!*\ - !*** ./node_modules/@nextcloud/router/dist/index.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getRootUrl = exports.generateFilePath = exports.imagePath = exports.generateUrl = exports.generateOcsUrl = exports.generateRemoteUrl = exports.linkTo = void 0; - -__webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); - -/// - -/** - * Get an url with webroot to a file in an app - * - * @param {string} app the id of the app the file belongs to - * @param {string} file the file path relative to the app folder - * @return {string} URL with webroot to a file - */ -const linkTo = (app, file) => generateFilePath(app, '', file); -/** - * Creates a relative url for remote use - * - * @param {string} service id - * @return {string} the url - */ - - -exports.linkTo = linkTo; - -const linkToRemoteBase = service => getRootUrl() + '/remote.php/' + service; -/** - * @brief Creates an absolute url for remote use - * @param {string} service id - * @return {string} the url - */ - - -const generateRemoteUrl = service => window.location.protocol + '//' + window.location.host + linkToRemoteBase(service); -/** - * Get the base path for the given OCS API service - * - * @param {string} url OCS API service url - * @param {object} params parameters to be replaced into the service url - * @param {UrlOptions} options options for the parameter replacement - * @param {boolean} options.escape Set to false if parameters should not be URL encoded (default true) - * @param {Number} options.ocsVersion OCS version to use (defaults to 2) - * @return {string} Absolute path for the OCS URL - */ - - -exports.generateRemoteUrl = generateRemoteUrl; - -const generateOcsUrl = (url, params, options) => { - const allOptions = Object.assign({ - ocsVersion: 2 - }, options || {}); - const version = allOptions.ocsVersion === 1 ? 1 : 2; - return window.location.protocol + '//' + window.location.host + getRootUrl() + '/ocs/v' + version + '.php' + _generateUrlPath(url, params, options); -}; - -exports.generateOcsUrl = generateOcsUrl; - -/** - * Generate a url path, which can contain parameters - * - * Parameters will be URL encoded automatically - * - * @param {string} url address (can contain placeholders e.g. /call/{token} would replace {token} with the value of params.token - * @param {object} params parameters to be replaced into the address - * @param {UrlOptions} options options for the parameter replacement - * @return {string} Path part for the given URL - */ -const _generateUrlPath = (url, params, options) => { - const allOptions = Object.assign({ - escape: true - }, options || {}); - - const _build = function (text, vars) { - vars = vars || {}; - return text.replace(/{([^{}]*)}/g, function (a, b) { - var r = vars[b]; - - if (allOptions.escape) { - return typeof r === 'string' || typeof r === 'number' ? encodeURIComponent(r.toString()) : encodeURIComponent(a); - } else { - return typeof r === 'string' || typeof r === 'number' ? r.toString() : a; - } - }); - }; - - if (url.charAt(0) !== '/') { - url = '/' + url; - } - - return _build(url, params || {}); -}; -/** - * Generate the url with webroot for the given relative url, which can contain parameters - * - * Parameters will be URL encoded automatically - * - * @param {string} url address (can contain placeholders e.g. /call/{token} would replace {token} with the value of params.token - * @param {object} params parameters to be replaced into the url - * @param {UrlOptions} options options for the parameter replacement - * @param {boolean} options.noRewrite True if you want to force index.php being added - * @param {boolean} options.escape Set to false if parameters should not be URL encoded (default true) - * @return {string} URL with webroot for the given relative URL - */ - - -const generateUrl = (url, params, options) => { - const allOptions = Object.assign({ - noRewrite: false - }, options || {}); - - if (OC.config.modRewriteWorking === true && !allOptions.noRewrite) { - return getRootUrl() + _generateUrlPath(url, params, options); - } - - return getRootUrl() + '/index.php' + _generateUrlPath(url, params, options); -}; -/** - * Get the path with webroot to an image file - * if no extension is given for the image, it will automatically decide - * between .png and .svg based on what the browser supports - * - * @param {string} app the app id to which the image belongs - * @param {string} file the name of the image file - * @return {string} - */ - - -exports.generateUrl = generateUrl; - -const imagePath = (app, file) => { - if (file.indexOf('.') === -1) { - //if no extension is given, use svg - return generateFilePath(app, 'img', file + '.svg'); - } - - return generateFilePath(app, 'img', file); -}; -/** - * Get the url with webroot for a file in an app - * - * @param {string} app the id of the app - * @param {string} type the type of the file to link to (e.g. css,img,ajax.template) - * @param {string} file the filename - * @return {string} URL with webroot for a file in an app - */ - - -exports.imagePath = imagePath; - -const generateFilePath = (app, type, file) => { - const isCore = OC.coreApps.indexOf(app) !== -1; - let link = getRootUrl(); - - if (file.substring(file.length - 3) === 'php' && !isCore) { - link += '/index.php/apps/' + app; - - if (file !== 'index.php') { - link += '/'; - - if (type) { - link += encodeURI(type + '/'); - } - - link += file; - } - } else if (file.substring(file.length - 3) !== 'php' && !isCore) { - link = OC.appswebroots[app]; - - if (type) { - link += '/' + type + '/'; - } - - if (link.substring(link.length - 1) !== '/') { - link += '/'; - } - - link += file; - } else { - if ((app === 'settings' || app === 'core' || app === 'search') && type === 'ajax') { - link += '/index.php/'; - } else { - link += '/'; - } - - if (!isCore) { - link += 'apps/'; - } - - if (app !== '') { - app += '/'; - link += app; - } - - if (type) { - link += type + '/'; - } - - link += file; - } - - return link; -}; -/** - * Return the web root path where this Nextcloud instance - * is accessible, with a leading slash. - * For example "/nextcloud". - * - * @return {string} web root path - */ - - -exports.generateFilePath = generateFilePath; - -const getRootUrl = () => OC.webroot; - -exports.getRootUrl = getRootUrl; -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@nextcloud/vue/dist/index.module.js": -/*!**********************************************************!*\ - !*** ./node_modules/@nextcloud/vue/dist/index.module.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Focus": () => (/* binding */ i), -/* harmony export */ "Linkify": () => (/* binding */ r), -/* harmony export */ "NcActionButton": () => (/* binding */ o), -/* harmony export */ "NcActionCaption": () => (/* binding */ s), -/* harmony export */ "NcActionCheckbox": () => (/* binding */ l), -/* harmony export */ "NcActionInput": () => (/* binding */ A), -/* harmony export */ "NcActionLink": () => (/* binding */ c), -/* harmony export */ "NcActionRadio": () => (/* binding */ d), -/* harmony export */ "NcActionRouter": () => (/* binding */ u), -/* harmony export */ "NcActionSeparator": () => (/* binding */ p), -/* harmony export */ "NcActionText": () => (/* binding */ m), -/* harmony export */ "NcActionTextEditable": () => (/* binding */ h), -/* harmony export */ "NcActions": () => (/* binding */ g), -/* harmony export */ "NcAppContent": () => (/* binding */ T), -/* harmony export */ "NcAppContentDetails": () => (/* binding */ C), -/* harmony export */ "NcAppContentList": () => (/* binding */ b), -/* harmony export */ "NcAppNavigation": () => (/* binding */ f), -/* harmony export */ "NcAppNavigationCaption": () => (/* binding */ v), -/* harmony export */ "NcAppNavigationCounter": () => (/* binding */ E), -/* harmony export */ "NcAppNavigationIconBullet": () => (/* binding */ y), -/* harmony export */ "NcAppNavigationItem": () => (/* binding */ x), -/* harmony export */ "NcAppNavigationNew": () => (/* binding */ D), -/* harmony export */ "NcAppNavigationNewItem": () => (/* binding */ S), -/* harmony export */ "NcAppNavigationSettings": () => (/* binding */ N), -/* harmony export */ "NcAppNavigationSpacer": () => (/* binding */ k), -/* harmony export */ "NcAppSettingsDialog": () => (/* binding */ w), -/* harmony export */ "NcAppSettingsSection": () => (/* binding */ F), -/* harmony export */ "NcAppSidebar": () => (/* binding */ R), -/* harmony export */ "NcAppSidebarTab": () => (/* binding */ B), -/* harmony export */ "NcAvatar": () => (/* binding */ O), -/* harmony export */ "NcBreadcrumb": () => (/* binding */ _), -/* harmony export */ "NcBreadcrumbs": () => (/* binding */ M), -/* harmony export */ "NcButton": () => (/* binding */ Z), -/* harmony export */ "NcCheckboxRadioSwitch": () => (/* binding */ Y), -/* harmony export */ "NcColorPicker": () => (/* binding */ I), -/* harmony export */ "NcContent": () => (/* binding */ G), -/* harmony export */ "NcCounterBubble": () => (/* binding */ L), -/* harmony export */ "NcDashboardWidget": () => (/* binding */ $), -/* harmony export */ "NcDashboardWidgetItem": () => (/* binding */ U), -/* harmony export */ "NcDateTimePickerNative": () => (/* binding */ j), -/* harmony export */ "NcDatetimePicker": () => (/* binding */ P), -/* harmony export */ "NcEmojiPicker": () => (/* binding */ z), -/* harmony export */ "NcEmptyContent": () => (/* binding */ H), -/* harmony export */ "NcListItem": () => (/* binding */ W), -/* harmony export */ "NcListItemIcon": () => (/* binding */ q), -/* harmony export */ "NcLoadingIcon": () => (/* binding */ Q), -/* harmony export */ "NcModal": () => (/* binding */ K), -/* harmony export */ "NcMultiselect": () => (/* binding */ V), -/* harmony export */ "NcMultiselectTags": () => (/* binding */ J), -/* harmony export */ "NcNoteCard": () => (/* binding */ X), -/* harmony export */ "NcPasswordField": () => (/* binding */ tt), -/* harmony export */ "NcPopover": () => (/* binding */ et), -/* harmony export */ "NcPopoverMenu": () => (/* binding */ nt), -/* harmony export */ "NcProgressBar": () => (/* binding */ at), -/* harmony export */ "NcRelatedResourcesPanel": () => (/* binding */ it), -/* harmony export */ "NcRichContenteditable": () => (/* binding */ rt), -/* harmony export */ "NcSettingsSection": () => (/* binding */ ot), -/* harmony export */ "NcTextField": () => (/* binding */ st), -/* harmony export */ "NcUserBubble": () => (/* binding */ lt), -/* harmony export */ "Tooltip": () => (/* binding */ At), -/* harmony export */ "emojiAddRecent": () => (/* binding */ ct), -/* harmony export */ "emojiSearch": () => (/* binding */ dt), -/* harmony export */ "excludeClickOutsideClasses": () => (/* binding */ ut), -/* harmony export */ "isA11yActivation": () => (/* binding */ pt), -/* harmony export */ "isFullscreen": () => (/* binding */ mt), -/* harmony export */ "isMobile": () => (/* binding */ ht), -/* harmony export */ "richEditor": () => (/* binding */ gt), -/* harmony export */ "userStatus": () => (/* binding */ Tt), -/* harmony export */ "usernameToColor": () => (/* binding */ Ct) -/* harmony export */ }); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); -/*! For license information please see index.module.js.LICENSE.txt */ -var t={2463:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".emoji-mart,\n.emoji-mart * {\n box-sizing: border-box;\n line-height: 1.15;\n}\n\n.emoji-mart {\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\n font-size: 16px;\n /* display: inline-block; */\n display: flex;\n flex-direction: column;\n height: 420px;\n color: #222427;\n border: 1px solid #d9d9d9;\n border-radius: 5px;\n background: #fff;\n}\n\n.emoji-mart-emoji {\n padding: 6px;\n position: relative;\n display: inline-block;\n font-size: 0;\n border: none;\n background: none;\n box-shadow: none;\n}\n\n.emoji-mart-emoji span {\n display: inline-block;\n}\n\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\n width: 38px;\n height: 38px;\n font-size: 32px;\n}\n\n.emoji-type-native {\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\n 'Android Emoji';\n word-break: keep-all;\n}\n\n.emoji-type-image {\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\n * screen sizes */\n background-size: 6100%;\n}\n.emoji-type-image.emoji-set-apple {\n background-image: url('https://unpkg.com/emoji-datasource-apple@14.0.0/img/apple/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-facebook {\n background-image: url('https://unpkg.com/emoji-datasource-facebook@14.0.0/img/facebook/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-google {\n background-image: url('https://unpkg.com/emoji-datasource-google@14.0.0/img/google/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-twitter {\n background-image: url('https://unpkg.com/emoji-datasource-twitter@14.0.0/img/twitter/sheets-256/64.png');\n}\n\n.emoji-mart-bar {\n border: 0 solid #d9d9d9;\n}\n.emoji-mart-bar:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n.emoji-mart-bar:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n\n.emoji-mart-scroll {\n position: relative;\n overflow-y: scroll;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n\n.emoji-mart-anchors {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 0 6px;\n color: #858585;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n display: block;\n flex: 1 1 auto;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color 0.1s ease-out;\n border: none;\n background: none;\n box-shadow: none;\n}\n.emoji-mart-anchor:hover,\n.emoji-mart-anchor-selected {\n color: #464646;\n}\n\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\n bottom: 0;\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: #464646;\n}\n\n.emoji-mart-anchors i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n}\n\n.emoji-mart-anchors svg {\n fill: currentColor;\n max-height: 18px;\n}\n\n.emoji-mart .scroller {\n height: 250px;\n position: relative;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n\n.emoji-mart-search {\n margin-top: 6px;\n padding: 0 6px;\n}\n.emoji-mart-search input {\n font-size: 16px;\n display: block;\n width: 100%;\n padding: 0.2em 0.6em;\n border-radius: 25px;\n border: 1px solid #d9d9d9;\n outline: 0;\n}\n.emoji-mart-search-results {\n height: 250px;\n overflow-y: scroll;\n}\n\n.emoji-mart-category {\n position: relative;\n}\n\n.emoji-mart-category .emoji-mart-emoji span {\n z-index: 1;\n position: relative;\n text-align: center;\n cursor: default;\n}\n\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n z-index: 0;\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #f4f4f4;\n border-radius: 100%;\n opacity: 0;\n}\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n opacity: 1;\n}\n\n.emoji-mart-category-label {\n position: sticky;\n top: 0;\n}\n.emoji-mart-static .emoji-mart-category-label {\n z-index: 2;\n position: relative;\n /* position: sticky; */\n /* position: -webkit-sticky; */\n}\n\n.emoji-mart-category-label h3 {\n display: block;\n font-size: 16px;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background-color: #fff;\n background-color: rgba(255, 255, 255, 0.95);\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: #858585;\n}\n.emoji-mart-no-results .emoji-mart-category-label {\n display: none;\n}\n.emoji-mart-no-results .emoji-mart-no-results-label {\n margin-top: 0.2em;\n}\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\n content: none;\n}\n\n.emoji-mart-preview {\n position: relative;\n height: 70px;\n}\n\n.emoji-mart-preview-emoji,\n.emoji-mart-preview-data,\n.emoji-mart-preview-skins {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.emoji-mart-preview-emoji {\n left: 12px;\n}\n\n.emoji-mart-preview-data {\n left: 68px;\n right: 12px;\n word-break: break-all;\n}\n\n.emoji-mart-preview-skins {\n right: 30px;\n text-align: right;\n}\n\n.emoji-mart-preview-name {\n font-size: 14px;\n}\n\n.emoji-mart-preview-shortname {\n font-size: 12px;\n color: #888;\n}\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\n margin-left: 0.5em;\n}\n\n.emoji-mart-preview-emoticon {\n font-size: 11px;\n color: #bbb;\n}\n\n.emoji-mart-title span {\n display: inline-block;\n vertical-align: middle;\n}\n\n.emoji-mart-title .emoji-mart-emoji {\n padding: 0;\n}\n\n.emoji-mart-title-label {\n color: #999a9c;\n font-size: 21px;\n font-weight: 300;\n}\n\n.emoji-mart-skin-swatches {\n font-size: 0;\n padding: 2px 0;\n border: 1px solid #d9d9d9;\n border-radius: 12px;\n background-color: #fff;\n}\n\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\n width: 16px;\n padding: 0 2px;\n}\n\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\n opacity: 0.75;\n}\n\n.emoji-mart-skin-swatch {\n display: inline-block;\n width: 0;\n vertical-align: middle;\n transition-property: width, padding;\n transition-duration: 0.125s;\n transition-timing-function: ease-out;\n}\n\n.emoji-mart-skin-swatch:nth-child(1) {\n transition-delay: 0s;\n}\n.emoji-mart-skin-swatch:nth-child(2) {\n transition-delay: 0.03s;\n}\n.emoji-mart-skin-swatch:nth-child(3) {\n transition-delay: 0.06s;\n}\n.emoji-mart-skin-swatch:nth-child(4) {\n transition-delay: 0.09s;\n}\n.emoji-mart-skin-swatch:nth-child(5) {\n transition-delay: 0.12s;\n}\n.emoji-mart-skin-swatch:nth-child(6) {\n transition-delay: 0.15s;\n}\n\n.emoji-mart-skin-swatch-selected {\n position: relative;\n width: 16px;\n padding: 0 2px;\n}\n.emoji-mart-skin-swatch-selected:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 4px;\n height: 4px;\n margin: -2px 0 0 -2px;\n background-color: #fff;\n border-radius: 100%;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n}\n\n.emoji-mart-skin {\n display: inline-block;\n width: 100%;\n padding-top: 100%;\n max-width: 12px;\n border-radius: 100%;\n}\n\n.emoji-mart-skin-tone-1 {\n background-color: #ffc93a;\n}\n.emoji-mart-skin-tone-2 {\n background-color: #fadcbc;\n}\n.emoji-mart-skin-tone-3 {\n background-color: #e0bb95;\n}\n.emoji-mart-skin-tone-4 {\n background-color: #bf8f68;\n}\n.emoji-mart-skin-tone-5 {\n background-color: #9b643d;\n}\n.emoji-mart-skin-tone-6 {\n background-color: #594539;\n}\n\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\n.emoji-mart .vue-recycle-scroller {\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\n overflow-y: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\n overflow-x: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\n display: flex;\n}\n.emoji-mart .vue-recycle-scroller__slot {\n flex: auto 0 0;\n}\n.emoji-mart .vue-recycle-scroller__item-wrapper {\n flex: 1;\n box-sizing: border-box;\n overflow: hidden;\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-vertical\n .vue-recycle-scroller__item-wrapper {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-horizontal\n .vue-recycle-scroller__item-wrapper {\n height: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-vertical\n .vue-recycle-scroller__item-view {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-horizontal\n .vue-recycle-scroller__item-view {\n height: 100%;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.emoji-mart-search .hidden {\n display: none;\n visibility: hidden;\n}\n","",{version:3,sources:["webpack://./node_modules/emoji-mart-vue-fast/css/emoji-mart.css"],names:[],mappings:"AAAA;;EAEE,sBAAsB;EACtB,iBAAiB;AACnB;;AAEA;EACE,4EAA4E;EAC5E,eAAe;EACf,2BAA2B;EAC3B,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,cAAc;EACd,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE;;mBAEiB;EACjB,oBAAoB;AACtB;;AAEA;EACE,qFAAqF;EACrF;mBACiB;EACjB,sBAAsB;AACxB;AACA;EACE,oGAAoG;AACtG;AACA;EACE,0GAA0G;AAC5G;AACA;EACE,sGAAsG;AACxG;AACA;EACE,wGAAwG;AAC1G;;AAEA;EACE,uBAAuB;AACzB;AACA;EACE,wBAAwB;EACxB,2BAA2B;EAC3B,4BAA4B;AAC9B;AACA;EACE,qBAAqB;EACrB,8BAA8B;EAC9B,+BAA+B;AACjC;;AAEA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,OAAO;EACP,sBAAsB;EACtB,UAAU,EAAE,kEAAkE;EAC9E,sBAAsB,EAAE,iDAAiD;EACzE,iCAAiC;AACnC;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,cAAc;EACd,cAAc;EACd,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,cAAc;EACd,cAAc;EACd,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,+BAA+B;EAC/B,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;AAClB;AACA;;EAEE,cAAc;AAChB;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,kBAAkB;EAClB,YAAY;EACZ,OAAO;EACP,WAAW;EACX,WAAW;EACX,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,kBAAkB;EAClB,OAAO;EACP,sBAAsB;EACtB,UAAU,EAAE,kEAAkE;EAC9E,sBAAsB,EAAE,iDAAiD;EACzE,iCAAiC;AACnC;;AAEA;EACE,eAAe;EACf,cAAc;AAChB;AACA;EACE,eAAe;EACf,cAAc;EACd,WAAW;EACX,oBAAoB;EACpB,mBAAmB;EACnB,yBAAyB;EACzB,UAAU;AACZ;AACA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,UAAU;EACV,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;AACjB;;AAEA;;EAEE,UAAU;EACV,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;AACZ;AACA;;EAEE,UAAU;AACZ;;AAEA;EACE,gBAAgB;EAChB,MAAM;AACR;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,sBAAsB;EACtB,8BAA8B;AAChC;;AAEA;EACE,cAAc;EACd,eAAe;EACf,WAAW;EACX,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,2CAA2C;AAC7C;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;AACd;;AAEA;EACE,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;;;EAGE,kBAAkB;EAClB,QAAQ;EACR,2BAA2B;AAC7B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,WAAW;EACX,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,iBAAiB;AACnB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;EACf,WAAW;AACb;AACA;;;EAGE,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,WAAW;AACb;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,cAAc;EACd,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;AACxB;;AAEA;EACE,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,qBAAqB;EACrB,QAAQ;EACR,sBAAsB;EACtB,mCAAmC;EACnC,2BAA2B;EAC3B,oCAAoC;AACtC;;AAEA;EACE,oBAAoB;AACtB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,cAAc;AAChB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX,qBAAqB;EACrB,sBAAsB;EACtB,mBAAmB;EACnB,oBAAoB;EACpB,UAAU;EACV,iCAAiC;AACnC;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,iBAAiB;EACjB,eAAe;EACf,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;;AAEA,uDAAuD;AACvD;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,OAAO;EACP,sBAAsB;EACtB,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,sBAAsB;AACxB;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,aAAa;EACb,kBAAkB;AACpB",sourcesContent:[".emoji-mart,\n.emoji-mart * {\n box-sizing: border-box;\n line-height: 1.15;\n}\n\n.emoji-mart {\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\n font-size: 16px;\n /* display: inline-block; */\n display: flex;\n flex-direction: column;\n height: 420px;\n color: #222427;\n border: 1px solid #d9d9d9;\n border-radius: 5px;\n background: #fff;\n}\n\n.emoji-mart-emoji {\n padding: 6px;\n position: relative;\n display: inline-block;\n font-size: 0;\n border: none;\n background: none;\n box-shadow: none;\n}\n\n.emoji-mart-emoji span {\n display: inline-block;\n}\n\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\n width: 38px;\n height: 38px;\n font-size: 32px;\n}\n\n.emoji-type-native {\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\n 'Android Emoji';\n word-break: keep-all;\n}\n\n.emoji-type-image {\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\n * screen sizes */\n background-size: 6100%;\n}\n.emoji-type-image.emoji-set-apple {\n background-image: url('https://unpkg.com/emoji-datasource-apple@14.0.0/img/apple/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-facebook {\n background-image: url('https://unpkg.com/emoji-datasource-facebook@14.0.0/img/facebook/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-google {\n background-image: url('https://unpkg.com/emoji-datasource-google@14.0.0/img/google/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-twitter {\n background-image: url('https://unpkg.com/emoji-datasource-twitter@14.0.0/img/twitter/sheets-256/64.png');\n}\n\n.emoji-mart-bar {\n border: 0 solid #d9d9d9;\n}\n.emoji-mart-bar:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n.emoji-mart-bar:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n\n.emoji-mart-scroll {\n position: relative;\n overflow-y: scroll;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n\n.emoji-mart-anchors {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 0 6px;\n color: #858585;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n display: block;\n flex: 1 1 auto;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color 0.1s ease-out;\n border: none;\n background: none;\n box-shadow: none;\n}\n.emoji-mart-anchor:hover,\n.emoji-mart-anchor-selected {\n color: #464646;\n}\n\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\n bottom: 0;\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: #464646;\n}\n\n.emoji-mart-anchors i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n}\n\n.emoji-mart-anchors svg {\n fill: currentColor;\n max-height: 18px;\n}\n\n.emoji-mart .scroller {\n height: 250px;\n position: relative;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n\n.emoji-mart-search {\n margin-top: 6px;\n padding: 0 6px;\n}\n.emoji-mart-search input {\n font-size: 16px;\n display: block;\n width: 100%;\n padding: 0.2em 0.6em;\n border-radius: 25px;\n border: 1px solid #d9d9d9;\n outline: 0;\n}\n.emoji-mart-search-results {\n height: 250px;\n overflow-y: scroll;\n}\n\n.emoji-mart-category {\n position: relative;\n}\n\n.emoji-mart-category .emoji-mart-emoji span {\n z-index: 1;\n position: relative;\n text-align: center;\n cursor: default;\n}\n\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n z-index: 0;\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #f4f4f4;\n border-radius: 100%;\n opacity: 0;\n}\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n opacity: 1;\n}\n\n.emoji-mart-category-label {\n position: sticky;\n top: 0;\n}\n.emoji-mart-static .emoji-mart-category-label {\n z-index: 2;\n position: relative;\n /* position: sticky; */\n /* position: -webkit-sticky; */\n}\n\n.emoji-mart-category-label h3 {\n display: block;\n font-size: 16px;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background-color: #fff;\n background-color: rgba(255, 255, 255, 0.95);\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: #858585;\n}\n.emoji-mart-no-results .emoji-mart-category-label {\n display: none;\n}\n.emoji-mart-no-results .emoji-mart-no-results-label {\n margin-top: 0.2em;\n}\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\n content: none;\n}\n\n.emoji-mart-preview {\n position: relative;\n height: 70px;\n}\n\n.emoji-mart-preview-emoji,\n.emoji-mart-preview-data,\n.emoji-mart-preview-skins {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.emoji-mart-preview-emoji {\n left: 12px;\n}\n\n.emoji-mart-preview-data {\n left: 68px;\n right: 12px;\n word-break: break-all;\n}\n\n.emoji-mart-preview-skins {\n right: 30px;\n text-align: right;\n}\n\n.emoji-mart-preview-name {\n font-size: 14px;\n}\n\n.emoji-mart-preview-shortname {\n font-size: 12px;\n color: #888;\n}\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\n margin-left: 0.5em;\n}\n\n.emoji-mart-preview-emoticon {\n font-size: 11px;\n color: #bbb;\n}\n\n.emoji-mart-title span {\n display: inline-block;\n vertical-align: middle;\n}\n\n.emoji-mart-title .emoji-mart-emoji {\n padding: 0;\n}\n\n.emoji-mart-title-label {\n color: #999a9c;\n font-size: 21px;\n font-weight: 300;\n}\n\n.emoji-mart-skin-swatches {\n font-size: 0;\n padding: 2px 0;\n border: 1px solid #d9d9d9;\n border-radius: 12px;\n background-color: #fff;\n}\n\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\n width: 16px;\n padding: 0 2px;\n}\n\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\n opacity: 0.75;\n}\n\n.emoji-mart-skin-swatch {\n display: inline-block;\n width: 0;\n vertical-align: middle;\n transition-property: width, padding;\n transition-duration: 0.125s;\n transition-timing-function: ease-out;\n}\n\n.emoji-mart-skin-swatch:nth-child(1) {\n transition-delay: 0s;\n}\n.emoji-mart-skin-swatch:nth-child(2) {\n transition-delay: 0.03s;\n}\n.emoji-mart-skin-swatch:nth-child(3) {\n transition-delay: 0.06s;\n}\n.emoji-mart-skin-swatch:nth-child(4) {\n transition-delay: 0.09s;\n}\n.emoji-mart-skin-swatch:nth-child(5) {\n transition-delay: 0.12s;\n}\n.emoji-mart-skin-swatch:nth-child(6) {\n transition-delay: 0.15s;\n}\n\n.emoji-mart-skin-swatch-selected {\n position: relative;\n width: 16px;\n padding: 0 2px;\n}\n.emoji-mart-skin-swatch-selected:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 4px;\n height: 4px;\n margin: -2px 0 0 -2px;\n background-color: #fff;\n border-radius: 100%;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n}\n\n.emoji-mart-skin {\n display: inline-block;\n width: 100%;\n padding-top: 100%;\n max-width: 12px;\n border-radius: 100%;\n}\n\n.emoji-mart-skin-tone-1 {\n background-color: #ffc93a;\n}\n.emoji-mart-skin-tone-2 {\n background-color: #fadcbc;\n}\n.emoji-mart-skin-tone-3 {\n background-color: #e0bb95;\n}\n.emoji-mart-skin-tone-4 {\n background-color: #bf8f68;\n}\n.emoji-mart-skin-tone-5 {\n background-color: #9b643d;\n}\n.emoji-mart-skin-tone-6 {\n background-color: #594539;\n}\n\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\n.emoji-mart .vue-recycle-scroller {\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\n overflow-y: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\n overflow-x: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\n display: flex;\n}\n.emoji-mart .vue-recycle-scroller__slot {\n flex: auto 0 0;\n}\n.emoji-mart .vue-recycle-scroller__item-wrapper {\n flex: 1;\n box-sizing: border-box;\n overflow: hidden;\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-vertical\n .vue-recycle-scroller__item-wrapper {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-horizontal\n .vue-recycle-scroller__item-wrapper {\n height: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-vertical\n .vue-recycle-scroller__item-view {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-horizontal\n .vue-recycle-scroller__item-view {\n height: 100%;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.emoji-mart-search .hidden {\n display: none;\n visibility: hidden;\n}\n"],sourceRoot:""}]),e.Z=o},9934:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(6417),n.b),c=new URL(n(7425),n.b),d=new URL(n(817),n.b),u=new URL(n(9039),n.b),p=new URL(n(3787),n.b),m=new URL(n(4259),n.b),h=new URL(n(5415),n.b),g=new URL(n(5322),n.b),T=o()(i()),C=l()(A),b=l()(c),f=l()(d),v=l()(u),E=l()(p),y=l()(m),x=l()(h),D=l()(g);T.push([t.id,'.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mx-icon-left:before,.mx-icon-right:before,.mx-icon-double-left:before,.mx-icon-double-right:before,.mx-icon-double-left:after,.mx-icon-double-right:after{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;box-sizing:border-box;transform-origin:center;transform:rotate(-45deg) scale(0.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-right:before,.mx-icon-double-right:before,.mx-icon-double-right:after{transform:rotate(135deg) scale(0.7)}.mx-btn{box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:rgba(0,0,0,0);outline:none;border:1px solid rgba(0,0,0,.1);border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn:disabled,.mx-btn.disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(0.23, 1, 0.32, 1),opacity .3s cubic-bezier(0.23, 1, 0.32, 1);transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-0.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input-wrapper .mx-icon-clear{display:none}.mx-input-wrapper:hover .mx-icon-clear{display:block}.mx-input-wrapper:hover .mx-icon-clear+.mx-icon-calendar{display:none}.mx-input{display:inline-block;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:hover,.mx-input:focus{border-color:#409aff}.mx-input:disabled,.mx-input.disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);font-size:16px;line-height:1;color:rgba(0,0,0,.5);vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:rgba(0,0,0,.8)}.mx-datepicker-main{font:14px/1.5 "Helvetica Neue",Helvetica,Arial,"Microsoft Yahei",sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:flex}@media(max-width: 750px){.mx-range-wrapper{flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-left,.mx-btn-icon-double-left{float:left}.mx-btn-icon-right,.mx-btn-icon-double-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.in-range,.mx-calendar-content .cell.hover-in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:rgba(0,0,0,0)}.mx-calendar-week-mode .mx-date-row .cell.active{color:inherit;background-color:rgba(0,0,0,0)}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;height:100%;box-sizing:border-box;text-align:center}.mx-table th{padding:0;font-weight:500;vertical-align:middle}.mx-table td{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list::after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:rgba(0,0,0,0);font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:rgba(0,0,0,0);font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-datepicker[data-v-a0481fe]{user-select:none;color:var(--color-main-text)}.mx-datepicker[data-v-a0481fe] svg{fill:var(--color-main-text)}.mx-datepicker[data-v-a0481fe] .mx-input-wrapper .mx-input{width:100%;border:1px solid var(--color-border);background-color:var(--color-main-background);background-clip:content-box}.mx-datepicker[data-v-a0481fe] .mx-input-wrapper:disabled,.mx-datepicker[data-v-a0481fe] .mx-input-wrapper.disabled{cursor:not-allowed;opacity:.7}.mx-datepicker[data-v-a0481fe] .mx-input-wrapper .mx-icon-calendar,.mx-datepicker[data-v-a0481fe] .mx-input-wrapper .mx-icon-clear{color:var(--color-text-lighter)}.mx-datepicker-main{color:var(--color-main-text);border:1px solid var(--color-border);background-color:var(--color-main-background);font-family:var(--font-face) !important;line-height:1.5}.mx-datepicker-main svg{fill:var(--color-main-text)}.mx-datepicker-main.mx-datepicker-popup{z-index:2000;box-shadow:none}.mx-datepicker-main.mx-datepicker-popup .mx-datepicker-sidebar+.mx-datepicker-content{border-left:1px solid var(--color-border)}.mx-datepicker-main.show-week-number .mx-calendar{width:296px}.mx-datepicker-main .mx-datepicker-header{border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-footer{border-top:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-btn-confirm{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-text) !important;opacity:1 !important}.mx-datepicker-main .mx-datepicker-btn-confirm:hover{background-color:var(--color-primary-element-light) !important;border-color:var(--color-primary-element-light) !important}.mx-datepicker-main .mx-calendar{width:264px;padding:5px}.mx-datepicker-main .mx-calendar.mx-calendar-week-mode{width:296px}.mx-datepicker-main .mx-time+.mx-time,.mx-datepicker-main .mx-calendar+.mx-calendar{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-range-wrapper{display:flex;overflow:hidden}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.active{border-radius:var(--border-radius) 0 0 var(--border-radius)}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.in-range+.cell.active{border-radius:0 var(--border-radius) var(--border-radius) 0}.mx-datepicker-main .mx-table{text-align:center}.mx-datepicker-main .mx-table thead>tr>th{text-align:center;opacity:.5;color:var(--color-text-lighter)}.mx-datepicker-main .mx-table tr:focus,.mx-datepicker-main .mx-table tr:hover,.mx-datepicker-main .mx-table tr:active{background-color:rgba(0,0,0,0)}.mx-datepicker-main .mx-table .cell{transition:all 100ms ease-in-out;text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table .cell>*{cursor:pointer}.mx-datepicker-main .mx-table .cell.today{opacity:1;color:var(--color-primary-element);font-weight:bold}.mx-datepicker-main .mx-table .cell.today:hover,.mx-datepicker-main .mx-table .cell.today:focus{color:var(--color-primary-text)}.mx-datepicker-main .mx-table .cell.in-range,.mx-datepicker-main .mx-table .cell.disabled{border-radius:0;font-weight:normal}.mx-datepicker-main .mx-table .cell.in-range{opacity:.7}.mx-datepicker-main .mx-table .cell.not-current-month{opacity:.5;color:var(--color-text-lighter)}.mx-datepicker-main .mx-table .cell.not-current-month:hover,.mx-datepicker-main .mx-table .cell.not-current-month:focus{opacity:1}.mx-datepicker-main .mx-table .cell:hover,.mx-datepicker-main .mx-table .cell:focus,.mx-datepicker-main .mx-table .cell.actived,.mx-datepicker-main .mx-table .cell.active,.mx-datepicker-main .mx-table .cell.in-range{opacity:1;color:var(--color-primary-text);background-color:var(--color-primary-element);font-weight:bold}.mx-datepicker-main .mx-table .cell.disabled{opacity:.5;color:var(--color-text-lighter);border-radius:0;background-color:var(--color-background-darker)}.mx-datepicker-main .mx-table .mx-week-number{text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table span.mx-week-number,.mx-datepicker-main .mx-table li.mx-week-number,.mx-datepicker-main .mx-table span.cell,.mx-datepicker-main .mx-table li.cell{min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead,.mx-datepicker-main .mx-table.mx-table-date tbody,.mx-datepicker-main .mx-table.mx-table-year,.mx-datepicker-main .mx-table.mx-table-month{display:flex;flex-direction:column;justify-content:space-around}.mx-datepicker-main .mx-table.mx-table-date thead tr,.mx-datepicker-main .mx-table.mx-table-date tbody tr,.mx-datepicker-main .mx-table.mx-table-year tr,.mx-datepicker-main .mx-table.mx-table-month tr{display:inline-flex;align-items:center;flex:1 1 32px;justify-content:space-around;min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead th,.mx-datepicker-main .mx-table.mx-table-date thead td,.mx-datepicker-main .mx-table.mx-table-date tbody th,.mx-datepicker-main .mx-table.mx-table-date tbody td,.mx-datepicker-main .mx-table.mx-table-year th,.mx-datepicker-main .mx-table.mx-table-year td,.mx-datepicker-main .mx-table.mx-table-month th,.mx-datepicker-main .mx-table.mx-table-month td{display:flex;align-items:center;flex:0 1 32%;justify-content:center;min-width:32px;height:95%;min-height:32px;transition:background 100ms ease-in-out}.mx-datepicker-main .mx-table.mx-table-year tr th,.mx-datepicker-main .mx-table.mx-table-year tr td{flex-basis:48%}.mx-datepicker-main .mx-table.mx-table-date tr th,.mx-datepicker-main .mx-table.mx-table-date tr td{flex-basis:32px}.mx-datepicker-main .mx-btn{min-width:32px;height:32px;margin:0 2px !important;padding:7px 10px;cursor:pointer;text-decoration:none;opacity:.5;color:var(--color-text-lighter);border-radius:32px;line-height:20px}.mx-datepicker-main .mx-btn:hover,.mx-datepicker-main .mx-btn:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header,.mx-datepicker-main .mx-time-header{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:44px;margin-bottom:4px}.mx-datepicker-main .mx-calendar-header button,.mx-datepicker-main .mx-time-header button{min-width:32px;min-height:32px;margin:0;cursor:pointer;text-align:center;text-decoration:none;opacity:.7;color:var(--color-main-text);border-radius:32px;line-height:20px}.mx-datepicker-main .mx-calendar-header button:hover,.mx-datepicker-main .mx-time-header button:hover,.mx-datepicker-main .mx-calendar-header button:focus,.mx-datepicker-main .mx-time-header button:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right{align-items:center;justify-content:center;width:32px;padding:0;background-repeat:no-repeat;background-size:16px;background-position:center}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right>i{display:none}.mx-datepicker-main .mx-calendar-header button.mx-btn-text,.mx-datepicker-main .mx-time-header button.mx-btn-text{line-height:initial}.mx-datepicker-main .mx-calendar-header .mx-calendar-header-label,.mx-datepicker-main .mx-time-header .mx-calendar-header-label{display:flex}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left,.mx-datepicker-main .mx-time-header .mx-btn-icon-double-left{background-image:url('+C+")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-double-left{background-image:url("+b+")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-left,.mx-datepicker-main .mx-time-header .mx-btn-icon-left{background-image:url("+f+")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-left,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-left{background-image:url("+v+")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-right,.mx-datepicker-main .mx-time-header .mx-btn-icon-right{background-image:url("+E+")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-right,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-right{background-image:url("+y+")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header .mx-btn-icon-double-right{background-image:url("+x+")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-double-right{background-image:url("+D+")}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right{order:2}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right{order:3}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row .mx-week-number{font-weight:bold}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{opacity:1;border-radius:50px;background-color:var(--color-background-dark)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{background-color:rgba(0,0,0,0)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:focus,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:focus{color:inherit}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{opacity:.7;font-weight:normal}.mx-datepicker-main .mx-time{background-color:var(--color-main-background)}.mx-datepicker-main .mx-time .mx-time-header{justify-content:center;border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-column{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-option.active,.mx-datepicker-main .mx-time .mx-time-option:hover,.mx-datepicker-main .mx-time .mx-time-item.active,.mx-datepicker-main .mx-time .mx-time-item:hover{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-time .mx-time-option.disabled,.mx-datepicker-main .mx-time .mx-time-item.disabled{cursor:not-allowed;opacity:.5;color:var(--color-main-text);background-color:var(--color-main-background)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./node_modules/vue2-datepicker/scss/icon.scss","webpack://./node_modules/vue2-datepicker/scss/btn.scss","webpack://./node_modules/vue2-datepicker/scss/var.scss","webpack://./node_modules/vue2-datepicker/scss/scrollbar.scss","webpack://./node_modules/vue2-datepicker/scss/animation.scss","webpack://./node_modules/vue2-datepicker/scss/index.scss","webpack://./src/components/NcDatetimePicker/index.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2JAME,UAAA,CACA,iBAAA,CACA,QAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,kBAAA,CACA,yBAAA,CACA,wBAAA,CACA,iBAAA,CACA,qBAAA,CACA,uBAAA,CACA,mCAAA,CAGF,2BACE,SAAA,CAGF,6BACE,QAAA,CAGF,+EAGE,mCAAA,CCjCF,QACE,qBAAA,CACA,aAAA,CACA,cAAA,CACA,eAAA,CACA,gBAAA,CACA,QAAA,CACA,cAAA,CACA,8BAAA,CACA,YAAA,CACA,+BAAA,CACA,iBAAA,CACA,aCZc,CDad,kBAAA,CACA,cACE,oBCdY,CDeZ,aCfY,CDiBd,kCAEE,UCTa,CDUb,kBAAA,CAIJ,aACE,QAAA,CACA,aAAA,CACA,eAAA,CACA,mBAAA,CE7BF,cACE,WAAA,CAEE,wCACE,SAAA,CAKN,mBACE,WAAA,CACA,iBAAA,CACA,eAAA,CAGF,oBACE,iBAAA,CACA,OAAA,CACA,SAAA,CACA,UAAA,CACA,SAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA,CACA,gCAAA,CACA,wCACE,iBAAA,CACA,UAAA,CACA,QAAA,CACA,cAAA,CACA,qBAAA,CACA,qCAAA,CACA,+BAAA,CChCJ,4DAEE,SAAA,CACA,mBAAA,CACA,kGAAA,CAEA,2BAAA,CAGF,6EAGE,SAAA,CACA,mBAAA,CCTF,eACE,iBAAA,CACA,oBAAA,CACA,WAAA,CACA,mBACE,SAAA,CACA,UAAA,CACA,sBAAA,CACA,iBAAA,CACA,eAAA,CAIJ,qBACE,WAAA,CAGF,sBACE,UAAA,CAGF,kBACE,iBAAA,CACA,iCACE,YAAA,CAGA,uCACE,aAAA,CAEF,yDACE,YAAA,CAKN,UACE,oBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,cAAA,CACA,eAAA,CACA,UHzCY,CG0CZ,qBAAA,CACA,qBAAA,CACA,iBHrBoB,CGsBpB,2CAAA,CAEA,gCAEE,oBHhDuB,CGkDzB,sCAEE,UHlDa,CGmDb,wBHlDwB,CGmDxB,iBHxDiB,CGyDjB,kBAAA,CAEF,gBACE,YAAA,CAEF,qBACE,YAAA,CAIJ,iCAEE,iBAAA,CACA,OAAA,CACA,SAAA,CACA,0BAAA,CACA,cAAA,CACA,aAAA,CACA,oBAAA,CACA,qBAAA,CAGF,eACE,cAAA,CACA,qBACE,oBAAA,CAIJ,oBACE,2EAAA,CACA,aH/Fc,CGgGd,qBAAA,CACA,wBAAA,CAGF,qBACE,iBAAA,CACA,cAAA,CACA,iBAAA,CACA,sCAAA,CACA,YHpGc,CGuGhB,uBACE,UAAA,CACA,qBAAA,CACA,WH/EoB,CGgFpB,WAAA,CACA,aAAA,CAGF,8CACE,iBHrFoB,CGsFpB,6BAAA,CAGF,oBACE,iBAAA,CACA,gBAAA,CAGF,iBACE,aAAA,CACA,aAAA,CACA,gBAAA,CAGF,kBACE,YAAA,CACA,yBAFF,kBAGI,qBAAA,CAAA,CAIJ,sBACE,eAAA,CACA,+BAAA,CAGF,sBACE,eAAA,CACA,gBAAA,CACA,4BAAA,CAGF,aACE,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,0BACE,6BAAA,CAIJ,oCACE,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CAGF,2CAEE,UAAA,CAEF,6CAEE,WAAA,CAGF,0BACE,cAAA,CAGF,8BACE,YAAA,CACA,oCACE,WAAA,CAIJ,qBACE,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,2BACE,cAAA,CACA,iCACE,aHlMU,CGmMV,wBH/K4B,CGiL9B,kCACE,UHtLkB,CGuLlB,wBHtMU,CGwMZ,8EAEE,aH3MU,CG4MV,wBHrL+B,CGuLjC,oCACE,kBAAA,CACA,UHrMW,CGsMX,wBHrMsB,CG2M1B,oCACE,cAAA,CACA,0CACE,wBHtM4B,CGwM9B,mDACE,wBHtM+B,CGyM/B,gDACE,aAAA,CACA,8BAAA,CAEF,iDACE,aAAA,CACA,8BAAA,CAMR,gBACE,UAAA,CAGF,UACE,kBAAA,CACA,wBAAA,CACA,gBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CAEA,aACE,SAAA,CACA,eAAA,CACA,qBAAA,CAEF,aACE,SAAA,CACA,qBAAA,CAKF,oCAEE,WAAA,CACA,cAAA,CAGF,sBACE,aHzQU,CG2QZ,uCACE,UAAA,CACA,eAAA,CAIJ,SACE,MAAA,CACA,WAAA,CACA,eAAA,CACA,kBACE,6BAAA,CAGJ,kBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CAEF,gBAEE,+BAAA,CAGF,iBACE,YAAA,CACA,qBAAA,CACA,eAAA,CAGF,iBACE,YAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAGF,gBACE,MAAA,CACA,iBAAA,CACA,6BAAA,CACA,iBAAA,CAEA,4BACE,aAAA,CAEF,8BACE,QAAA,CACA,SAAA,CACA,eAAA,CACA,qCACE,UAAA,CACA,aAAA,CACA,YAAA,CAGJ,8BACE,cAAA,CACA,cAAA,CACA,WAAA,CACA,gBAAA,CACA,oCACE,aH9UU,CG+UV,wBHlTwB,CGoT1B,qCACE,aHjVU,CGkVV,8BHzTyB,CG0TzB,eAAA,CAEF,uCACE,kBAAA,CACA,UH7UW,CG8UX,wBH7UsB,CGkV5B,gBACE,cAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,sBACE,aHpWY,CGqWZ,wBHxU0B,CG0U5B,uBACE,aHvWY,CGwWZ,8BH/U2B,CGgV3B,eAAA,CAEF,yBACE,kBAAA,CACA,UHnWa,CGoWb,wBHnWwB,CIT5B,+BACC,gBAAA,CACA,4BAAA,CAEA,mCACC,2BAAA,CAMA,2DACC,UAAA,CACA,oCAAA,CACA,6CAAA,CACA,2BAAA,CAGD,oHAEC,kBAAA,CACA,UCiBc,CDdf,mIAEC,+BAAA,CAMH,oBACC,4BAAA,CACA,oCAAA,CACA,6CAAA,CACA,uCAAA,CACA,eAAA,CAEA,wBACC,2BAAA,CAGD,wCACC,YAAA,CACA,eAAA,CAEA,sFACC,yCAAA,CAIF,kDACC,WAAA,CAGD,0CACC,2CAAA,CAGD,0CACC,wCAAA,CAGD,+CACC,6CAAA,CACA,yCAAA,CACA,0CAAA,CACA,oBAAA,CAGD,qDACC,8DAAA,CACA,0DAAA,CAID,iCACC,WAAA,CACA,WAAA,CACA,uDACC,WAAA,CAIF,oFAEC,yCAAA,CAGD,sCACC,YAAA,CACA,eAAA,CAIC,uFACC,2DAAA,CAGD,sGACC,2DAAA,CAMH,8BACC,iBAAA,CAEA,0CACC,iBAAA,CACA,UC3EgB,CD4EhB,+BAAA,CAID,sHAGC,8BAAA,CAID,oCACC,gCAAA,CACA,iBAAA,CACA,UCzFc,CD0Fd,kBAAA,CAGA,sCACC,cAAA,CAID,0CACC,SClGW,CDmGX,kCAAA,CACA,gBAAA,CACA,gGAEC,+BAAA,CAGF,0FAEC,eAAA,CACA,kBAAA,CAED,6CACC,UCjHa,CDmHd,sDACC,UCrHe,CDsHf,+BAAA,CACA,wHAEC,SCvHU,CD4HZ,wNAKC,SCjIW,CDkIX,+BAAA,CACA,6CAAA,CACA,gBAAA,CAED,6CACC,UCzIe,CD0If,+BAAA,CACA,eAAA,CACA,+CAAA,CAIF,8CACC,iBAAA,CACA,UCjJc,CDkJd,kBAAA,CAID,gLAIC,eApMW,CAwMZ,6LAIC,YAAA,CACA,qBAAA,CACA,4BAAA,CACA,yMACC,mBAAA,CACA,kBAAA,CACA,aAAA,CACA,4BAAA,CACA,eApNU,CAuNX,kZAEC,YAAA,CACA,kBAAA,CAEA,YAAA,CACA,sBAAA,CACA,cA9NU,CAgOV,UAAA,CACA,eAjOU,CAkOV,uCAAA,CAID,oGAGC,cAAA,CAID,oGAGC,eAhPU,CAsPb,4BACC,cAvPY,CAwPZ,WAxPY,CAyPZ,uBAAA,CACA,gBAAA,CACA,cAAA,CACA,oBAAA,CACA,UCpNiB,CDqNjB,+BAAA,CACA,kBA/PY,CAgQZ,gBAAA,CAEA,oEAEC,SCzNY,CD0NZ,4BAAA,CACA,+CAAA,CAKF,4EACC,mBAAA,CACA,kBAAA,CACA,6BAAA,CACA,UAAA,CACA,WCxPe,CDyPf,iBAAA,CAEA,0FACC,cApRW,CAqRX,eArRW,CAsRX,QAAA,CACA,cAAA,CACA,iBAAA,CACA,oBAAA,CACA,UChPc,CDiPd,4BAAA,CACA,kBA5RW,CA6RX,gBAAA,CAGA,4MAEC,SCvPW,CDwPX,4BAAA,CACA,+CAAA,CAID,ghBAIC,kBAAA,CACA,sBAAA,CACA,UA9SU,CA+SV,SAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CAGA,giBACC,YAAA,CAGF,kHACC,mBAAA,CAIF,gIACC,YAAA,CAGD,8HACC,wDAAA,CACA,gKACC,wDAAA,CAIF,gHACC,wDAAA,CACA,kJACC,wDAAA,CAIF,kHACC,wDAAA,CACA,oJACC,wDAAA,CAIF,gIACC,wDAAA,CACA,kKACC,wDAAA,CAIF,8HACC,OAAA,CAGD,4IACC,OAAA,CAOA,wEACC,gBAAA,CAED,qIAEC,SCpUW,CDqUX,kBAAA,CACA,6CAAA,CACA,2IACC,8BAAA,CACA,ybACC,aAAA,CAIH,uEACC,+BAAA,CACA,6CAAA,CAEA,0EACC,UCpVY,CDqVZ,kBAAA,CAOJ,6BACC,6CAAA,CAEA,6CAEC,sBAAA,CACA,2CAAA,CAGD,6CACC,yCAAA,CAKA,0MAEC,+BAAA,CACA,6CAAA,CAGD,0GACC,kBAAA,CACA,UCpXe,CDqXf,4BAAA,CACA,6CAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@import './var.scss';\n\n.#{$namespace}-icon-left:before,\n.#{$namespace}-icon-right:before,\n.#{$namespace}-icon-double-left:before,\n.#{$namespace}-icon-double-right:before,\n.#{$namespace}-icon-double-left:after,\n.#{$namespace}-icon-double-right:after {\n content: '';\n position: relative;\n top: -1px;\n display: inline-block;\n width: 10px;\n height: 10px;\n vertical-align: middle;\n border-style: solid;\n border-color: currentColor;\n border-width: 2px 0 0 2px;\n border-radius: 1px;\n box-sizing: border-box;\n transform-origin: center;\n transform: rotate(-45deg) scale(0.7);\n}\n\n.#{$namespace}-icon-double-left:after {\n left: -4px;\n}\n\n.#{$namespace}-icon-double-right:before {\n left: 4px;\n}\n\n.#{$namespace}-icon-right:before,\n.#{$namespace}-icon-double-right:before,\n.#{$namespace}-icon-double-right:after {\n transform: rotate(135deg) scale(0.7);\n}\n","@import './var.scss';\n\n.#{$namespace}-btn {\n box-sizing: border-box;\n line-height: 1;\n font-size: 14px;\n font-weight: 500;\n padding: 7px 15px;\n margin: 0;\n cursor: pointer;\n background-color: transparent;\n outline: none;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n color: $default-color;\n white-space: nowrap;\n &:hover {\n border-color: $primary-color;\n color: $primary-color;\n }\n &:disabled,\n &.disabled {\n color: $disabled-color;\n cursor: not-allowed;\n }\n}\n\n.#{$namespace}-btn-text {\n border: 0;\n padding: 0 4px;\n text-align: left;\n line-height: inherit;\n}\n","$namespace: 'mx' !default;\n\n$default-color: #73879c !default;\n$primary-color: #1284e7 !default;\n\n$today-color: mix(#fff, $primary-color, 10%) !default;\n\n$popup-z-index: 2001 !default;\n\n$input-border-color: #ccc !default;\n$input-color: #555 !default;\n$input-hover-border-color: #409aff !default;\n\n$disabled-color: #ccc !default;\n$disabled-background-color: #f3f3f3 !default;\n\n$border-color: #e8e8e8 !default;\n\n$calendar-active-color: #fff !default;\n$calendar-active-background-color: $primary-color !default;\n\n$calendar-hover-color: $default-color !default;\n$calendar-hover-background-color: mix(#fff, $calendar-active-background-color, 95%) !default;\n\n$calendar-in-range-color: $default-color !default;\n$calendar-in-range-background-color: mix(#fff, $calendar-active-background-color, 85%) !default;\n\n$time-active-color: $primary-color !default;\n$time-active-background-color: transparent !default;\n\n$time-hover-color: $default-color !default;\n$time-hover-background-color: mix(#fff, $calendar-active-background-color, 95%) !default;\n\n$input-border-radius: 4px !default;\n$sidebar-margin-left: 100px !default;\n","@import './var.scss';\n\n.#{$namespace}-scrollbar {\n height: 100%;\n &:hover {\n .#{$namespace}-scrollbar-track {\n opacity: 1;\n }\n }\n}\n\n.#{$namespace}-scrollbar-wrap {\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.#{$namespace}-scrollbar-track {\n position: absolute;\n top: 2px;\n right: 2px;\n bottom: 2px;\n width: 6px;\n z-index: 1;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.24s ease-out;\n .#{$namespace}-scrollbar-thumb {\n position: absolute;\n width: 100%;\n height: 0;\n cursor: pointer;\n border-radius: inherit;\n background-color: rgba(144, 147, 153, 0.3);\n transition: background-color 0.3s;\n }\n}\n","@import './var.scss';\n\n.#{$namespace}-zoom-in-down-enter-active,\n.#{$namespace}-zoom-in-down-leave-active {\n opacity: 1;\n transform: scaleY(1);\n transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),\n opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1);\n transform-origin: center top;\n}\n\n.#{$namespace}-zoom-in-down-enter,\n.#{$namespace}-zoom-in-down-enter-from,\n.#{$namespace}-zoom-in-down-leave-to {\n opacity: 0;\n transform: scaleY(0);\n}\n","@import './var.scss';\n@import './icon.scss';\n@import './btn.scss';\n@import './scrollbar.scss';\n@import './animation.scss';\n\n.#{$namespace}-datepicker {\n position: relative;\n display: inline-block;\n width: 210px;\n svg {\n width: 1em;\n height: 1em;\n vertical-align: -0.15em;\n fill: currentColor;\n overflow: hidden;\n }\n}\n\n.#{$namespace}-datepicker-range {\n width: 320px;\n}\n\n.#{$namespace}-datepicker-inline {\n width: auto;\n}\n\n.#{$namespace}-input-wrapper {\n position: relative;\n .#{$namespace}-icon-clear {\n display: none;\n }\n &:hover {\n .#{$namespace}-icon-clear {\n display: block;\n }\n .#{$namespace}-icon-clear + .#{$namespace}-icon-calendar {\n display: none;\n }\n }\n}\n\n.#{$namespace}-input {\n display: inline-block;\n box-sizing: border-box;\n width: 100%;\n height: 34px;\n padding: 6px 30px;\n padding-left: 10px;\n font-size: 14px;\n line-height: 1.4;\n color: $input-color;\n background-color: #fff;\n border: 1px solid $input-border-color;\n border-radius: $input-border-radius;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n\n &:hover,\n &:focus {\n border-color: $input-hover-border-color;\n }\n &:disabled,\n &.disabled {\n color: $disabled-color;\n background-color: $disabled-background-color;\n border-color: $input-border-color;\n cursor: not-allowed;\n }\n &:focus {\n outline: none;\n }\n &::-ms-clear {\n display: none;\n }\n}\n\n.#{$namespace}-icon-calendar,\n.#{$namespace}-icon-clear {\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n font-size: 16px;\n line-height: 1;\n color: rgba(0, 0, 0, 0.5);\n vertical-align: middle;\n}\n\n.#{$namespace}-icon-clear {\n cursor: pointer;\n &:hover {\n color: rgba(0, 0, 0, 0.8);\n }\n}\n\n.#{$namespace}-datepicker-main {\n font: 14px/1.5 'Helvetica Neue', Helvetica, Arial, 'Microsoft Yahei', sans-serif;\n color: $default-color;\n background-color: #fff;\n border: 1px solid $border-color;\n}\n\n.#{$namespace}-datepicker-popup {\n position: absolute;\n margin-top: 1px;\n margin-bottom: 1px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n z-index: $popup-z-index;\n}\n\n.#{$namespace}-datepicker-sidebar {\n float: left;\n box-sizing: border-box;\n width: $sidebar-margin-left;\n padding: 6px;\n overflow: auto;\n}\n\n.#{$namespace}-datepicker-sidebar + .#{$namespace}-datepicker-content {\n margin-left: $sidebar-margin-left;\n border-left: 1px solid $border-color;\n}\n\n.#{$namespace}-datepicker-body {\n position: relative;\n user-select: none;\n}\n\n.#{$namespace}-btn-shortcut {\n display: block;\n padding: 0 6px;\n line-height: 24px;\n}\n\n.#{$namespace}-range-wrapper {\n display: flex;\n @media (max-width: 750px) {\n flex-direction: column;\n }\n}\n\n.#{$namespace}-datepicker-header {\n padding: 6px 8px;\n border-bottom: 1px solid $border-color;\n}\n\n.#{$namespace}-datepicker-footer {\n padding: 6px 8px;\n text-align: right;\n border-top: 1px solid $border-color;\n}\n\n.#{$namespace}-calendar {\n box-sizing: border-box;\n width: 248px;\n padding: 6px 12px;\n & + & {\n border-left: 1px solid $border-color;\n }\n}\n\n.#{$namespace}-calendar-header {\n box-sizing: border-box;\n height: 34px;\n line-height: 34px;\n text-align: center;\n overflow: hidden;\n}\n\n.#{$namespace}-btn-icon-left,\n.#{$namespace}-btn-icon-double-left {\n float: left;\n}\n.#{$namespace}-btn-icon-right,\n.#{$namespace}-btn-icon-double-right {\n float: right;\n}\n\n.#{$namespace}-calendar-header-label {\n font-size: 14px;\n}\n\n.#{$namespace}-calendar-decade-separator {\n margin: 0 2px;\n &:after {\n content: '~';\n }\n}\n\n.#{$namespace}-calendar-content {\n position: relative;\n height: 224px;\n box-sizing: border-box;\n .cell {\n cursor: pointer;\n &:hover {\n color: $calendar-hover-color;\n background-color: $calendar-hover-background-color;\n }\n &.active {\n color: $calendar-active-color;\n background-color: $calendar-active-background-color;\n }\n &.in-range,\n &.hover-in-range {\n color: $calendar-in-range-color;\n background-color: $calendar-in-range-background-color;\n }\n &.disabled {\n cursor: not-allowed;\n color: $disabled-color;\n background-color: $disabled-background-color;\n }\n }\n}\n\n.#{$namespace}-calendar-week-mode {\n .#{$namespace}-date-row {\n cursor: pointer;\n &:hover {\n background-color: $calendar-hover-background-color;\n }\n &.#{$namespace}-active-week {\n background-color: $calendar-in-range-background-color;\n }\n .cell {\n &:hover {\n color: inherit;\n background-color: transparent;\n }\n &.active {\n color: inherit;\n background-color: transparent;\n }\n }\n }\n}\n\n.#{$namespace}-week-number {\n opacity: 0.5;\n}\n\n.#{$namespace}-table {\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n text-align: center;\n\n th {\n padding: 0;\n font-weight: 500;\n vertical-align: middle;\n }\n td {\n padding: 0;\n vertical-align: middle;\n }\n}\n\n.#{$namespace}-table-date {\n td,\n th {\n height: 32px;\n font-size: 12px;\n }\n\n .today {\n color: $today-color;\n }\n .cell.not-current-month {\n color: #ccc;\n background: none; // cover the in-range style\n }\n}\n\n.#{$namespace}-time {\n flex: 1;\n width: 224px;\n background: #fff;\n & + & {\n border-left: 1px solid $border-color;\n }\n}\n.#{$namespace}-calendar-time {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.#{$namespace}-time-header {\n @extend .#{$namespace}-calendar-header;\n border-bottom: 1px solid $border-color;\n}\n\n.#{$namespace}-time-content {\n height: 224px;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.#{$namespace}-time-columns {\n display: flex;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.#{$namespace}-time-column {\n flex: 1;\n position: relative;\n border-left: 1px solid $border-color;\n text-align: center;\n\n &:first-child {\n border-left: 0;\n }\n .#{$namespace}-time-list {\n margin: 0;\n padding: 0;\n list-style: none;\n &::after {\n content: '';\n display: block;\n height: 32 * 6px;\n }\n }\n .#{$namespace}-time-item {\n cursor: pointer;\n font-size: 12px;\n height: 32px;\n line-height: 32px;\n &:hover {\n color: $time-hover-color;\n background-color: $time-hover-background-color;\n }\n &.active {\n color: $time-active-color;\n background-color: $time-active-background-color;\n font-weight: 700;\n }\n &.disabled {\n cursor: not-allowed;\n color: $disabled-color;\n background-color: $disabled-background-color;\n }\n }\n}\n\n.#{$namespace}-time-option {\n cursor: pointer;\n padding: 8px 10px;\n font-size: 14px;\n line-height: 20px;\n &:hover {\n color: $time-hover-color;\n background-color: $time-hover-background-color;\n }\n &.active {\n color: $time-active-color;\n background-color: $time-active-background-color;\n font-weight: 700;\n }\n &.disabled {\n cursor: not-allowed;\n color: $disabled-color;\n background-color: $disabled-background-color;\n }\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n$cell_height: 32px;\n\n@import '~vue2-datepicker/scss/index';\n\n.mx-datepicker[data-v-#{$scope_version}] {\n\tuser-select: none;\n\tcolor: var(--color-main-text);\n\n\tsvg {\n\t\tfill: var(--color-main-text);\n\t}\n\n\t/* INPUT CONTAINER */\n\t.mx-input-wrapper {\n\t\t// input\n\t\t.mx-input {\n\t\t\twidth: 100%;\n\t\t\tborder: 1px solid var(--color-border);\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbackground-clip: content-box;\n\t\t}\n\n\t\t&:disabled,\n\t\t&.disabled {\n\t\t\tcursor: not-allowed;\n\t\t\topacity: $opacity_normal;\n\t\t}\n\n\t\t.mx-icon-calendar,\n\t\t.mx-icon-clear {\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n}\n\n// Datepicker popup wrapper\n.mx-datepicker-main {\n\tcolor: var(--color-main-text);\n\tborder: 1px solid var(--color-border);\n\tbackground-color: var(--color-main-background);\n\tfont-family: var(--font-face) !important;\n\tline-height: 1.5;\n\n\tsvg {\n\t\tfill: var(--color-main-text);\n\t}\n\n\t&.mx-datepicker-popup {\n\t\tz-index: 2000;\n\t\tbox-shadow: none;\n\n\t\t.mx-datepicker-sidebar + .mx-datepicker-content {\n\t\t\tborder-left: 1px solid var(--color-border);\n\t\t}\n\t}\n\t\n\t&.show-week-number .mx-calendar {\n\t\twidth: $cell_height * 8 + 2 * 5px + 30px; // week number + 7 days + padding + 30px padding to fit the buttons\n\t}\n\n\t.mx-datepicker-header {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t.mx-datepicker-footer {\n\t\tborder-top: 1px solid var(--color-border);\n\t}\n\n\t.mx-datepicker-btn-confirm {\n\t\tbackground-color: var(--color-primary-element);\n\t\tborder-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-text) !important;\n\t\topacity: 1 !important;\n\t}\n\n\t.mx-datepicker-btn-confirm:hover {\n\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\tborder-color: var(--color-primary-element-light) !important;\n\t}\n\n\t// default popup styles\n\t.mx-calendar {\n\t\twidth: $cell_height * 7 + 2 * 5px + 30px; // 7 days + padding + 30px padding to fit the buttons\n\t\tpadding: 5px;\n\t\t&.mx-calendar-week-mode {\n\t\t\twidth: $cell_height * 8 + 2 * 5px + 30px; // week number + 7 days + padding + 30px padding to fit the buttons\n\t\t}\n\t}\n\n\t.mx-time + .mx-time,\n\t.mx-calendar + .mx-calendar {\n\t\tborder-left: 1px solid var(--color-border);\n\t}\n\n\t.mx-range-wrapper {\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\n\t\t// first active cell, range style on day picker panel only\n\t\t.mx-calendar-content .mx-table-date .cell {\n\t\t\t&.active {\n\t\t\t\tborder-radius: var(--border-radius) 0 0 var(--border-radius);\n\t\t\t}\n\t\t\t// second selected cell\n\t\t\t&.in-range + .cell.active {\n\t\t\t\tborder-radius: 0 var(--border-radius) var(--border-radius) 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Various panels\n\t.mx-table {\n\t\ttext-align: center;\n\n\t\tthead > tr > th {\n\t\t\ttext-align: center;\n\t\t\topacity: $opacity_disabled;\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\n\t\t// Override table rule from server\n\t\ttr:focus,\n\t\ttr:hover,\n\t\ttr:active {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t// regular cell style\n\t\t.cell {\n\t\t\ttransition: all 100ms ease-in-out;\n\t\t\ttext-align: center;\n\t\t\topacity: $opacity_normal;\n\t\t\tborder-radius: 50px;\n\n\t\t\t// force pointer on all content\n\t\t\t> * {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t// Selected and mouse event\n\t\t\t&.today {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\tfont-weight: bold;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tcolor: var(--color-primary-text);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.in-range,\n\t\t\t&.disabled {\n\t\t\t\tborder-radius: 0;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t\t&.in-range {\n\t\t\t\topacity: $opacity_normal;\n\t\t\t}\n\t\t\t&.not-current-month {\n\t\t\t\topacity: $opacity_disabled;\n\t\t\t\tcolor: var(--color-text-lighter);\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// hover-/focus after the other rules\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&.actived,\n\t\t\t&.active,\n\t\t\t&.in-range {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tcolor: var(--color-primary-text);\n\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\t\t\t&.disabled {\n\t\t\t\topacity: $opacity_disabled;\n\t\t\t\tcolor: var(--color-text-lighter);\n\t\t\t\tborder-radius: 0;\n\t\t\t\tbackground-color: var(--color-background-darker);\n\t\t\t}\n\t\t}\n\n\t\t.mx-week-number {\n\t\t\ttext-align: center;\n\t\t\topacity: $opacity_normal;\n\t\t\tborder-radius: 50px;\n\t\t}\n\n\t\t// cell that are not in a table\n\t\tspan.mx-week-number,\n\t\tli.mx-week-number,\n\t\tspan.cell,\n\t\tli.cell {\n\t\t\tmin-height: $cell_height;\n\t\t}\n\n\t\t// Standard grid/flex layout for day/month/year panels\n\t\t&.mx-table-date thead,\n\t\t&.mx-table-date tbody,\n\t\t&.mx-table-year,\n\t\t&.mx-table-month {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\ttr {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tflex: 1 1 $cell_height;\n\t\t\t\tjustify-content: space-around;\n\t\t\t\tmin-height: $cell_height;\n\t\t\t}\n\t\t\t// Default cell style\n\t\t\tth,\n\t\t\ttd {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\t// 3 rows with a little spacing\n\t\t\t\tflex: 0 1 32%;\n\t\t\t\tjustify-content: center;\n\t\t\t\tmin-width: $cell_height;\n\t\t\t\t// spacing between rows\n\t\t\t\theight: 95%;\n\t\t\t\tmin-height: $cell_height;\n\t\t\t\ttransition: background 100ms ease-in-out;\n\t\t\t}\n\t\t}\n\t\t&.mx-table-year {\n\t\t\ttr th,\n\t\t\ttr td {\n\t\t\t\t// only two rows in year panel\n\t\t\t\tflex-basis: 48%;\n\t\t\t}\n\t\t}\n\t\t&.mx-table-date {\n\t\t\ttr th,\n\t\t\ttr td {\n\t\t\t\t// only two rows in year panel\n\t\t\t\tflex-basis: $cell_height;\n\t\t\t}\n\t\t}\n\t}\n\n\t// default buttons: header...\n\t.mx-btn {\n\t\tmin-width: $cell_height;\n\t\theight: $cell_height;\n\t\tmargin: 0 2px !important; // center also single element. Definitively use margin so that buttons are not touching\n\t\tpadding: 7px 10px;\n\t\tcursor: pointer;\n\t\ttext-decoration: none;\n\t\topacity: $opacity_disabled;\n\t\tcolor: var(--color-text-lighter);\n\t\tborder-radius: $cell_height;\n\t\tline-height: $cell_height - 12px; // padding minus 2px for better visual\n\t\t// Mouse feedback\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: var(--color-background-darker);\n\t\t}\n\t}\n\n\t// Header, arrows, years, months\n\t.mx-calendar-header {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\twidth: 100%;\n\t\theight: $clickable-area;\n\t\tmargin-bottom: 4px;\n\n\t\tbutton {\n\t\t\tmin-width: $cell_height;\n\t\t\tmin-height: $cell_height;\n\t\t\tmargin: 0;\n\t\t\tcursor: pointer;\n\t\t\ttext-align: center;\n\t\t\ttext-decoration: none;\n\t\t\topacity: $opacity_normal;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tborder-radius: $cell_height;\n\t\t\tline-height: $cell_height - 12px; // padding minus 2px for better visual\n\n\t\t\t// Mouse feedback\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\tbackground-color: var(--color-background-darker);\n\t\t\t}\n\n\t\t\t// Header arrows\n\t\t\t&.mx-btn-icon-double-left,\n\t\t\t&.mx-btn-icon-left,\n\t\t\t&.mx-btn-icon-right,\n\t\t\t&.mx-btn-icon-double-right {\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\twidth: $cell_height;\n\t\t\t\tpadding: 0; // leave the centering to flex\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tbackground-size: 16px;\n\t\t\t\tbackground-position: center;\n\n\t\t\t\t// Hide original icons\n\t\t\t\t> i {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.mx-btn-text {\n\t\t\t\tline-height: initial;\n\t\t\t}\n\t\t}\n\n\t\t.mx-calendar-header-label {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t.mx-btn-icon-double-left {\n\t\t\tbackground-image: url('./chevron-double-left.svg');\n\t\t\tbody.theme--dark & {\n\t\t\t\tbackground-image: url('./chevron-double-left-light.svg');\n\t\t\t}\n\t\t}\n\n\t\t.mx-btn-icon-left {\n\t\t\tbackground-image: url('./chevron-left.svg');\n\t\t\tbody.theme--dark & {\n\t\t\t\tbackground-image: url('./chevron-left-light.svg');\n\t\t\t}\n\t\t}\n\n\t\t.mx-btn-icon-right {\n\t\t\tbackground-image: url('./chevron-right.svg');\n\t\t\tbody.theme--dark & {\n\t\t\t\tbackground-image: url('./chevron-right-light.svg');\n\t\t\t}\n\t\t}\n\n\t\t.mx-btn-icon-double-right {\n\t\t\tbackground-image: url('./chevron-double-right.svg');\n\t\t\tbody.theme--dark & {\n\t\t\t\tbackground-image: url('./chevron-double-right-light.svg');\n\t\t\t}\n\t\t}\n\n\t\tbutton.mx-btn-icon-right {\n\t\t\torder: 2;\n\t\t}\n\n\t\tbutton.mx-btn-icon-double-right {\n\t\t\torder: 3;\n\t\t}\n\t}\n\t// Week panel\n\t.mx-calendar-week-mode {\n\t\t// move focus on row and not on cell\n\t\t.mx-date-row {\n\t\t\t.mx-week-number {\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\t\t\t&:hover,\n\t\t\t&.mx-active-week {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tborder-radius: 50px;\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\ttd {\n\t\t\t\t\tbackground-color: transparent;\n\t\t\t\t\t&, &:hover, &:focus {\n\t\t\t\t\t\tcolor: inherit;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.mx-active-week {\n\t\t\t\tcolor: var(--color-primary-text);\n\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\t// Remove cell feedback on selected rows\n\t\t\t\ttd {\n\t\t\t\t\topacity: $opacity_normal;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Time panel\n\t.mx-time {\n\t\tbackground-color: var(--color-main-background);\n\n\t\t.mx-time-header {\n\t\t\t// only one button, center it\n\t\t\tjustify-content: center;\n\t\t\tborder-bottom: 1px solid var(--color-border);\n\t\t}\n\n\t\t.mx-time-column {\n\t\t\tborder-left: 1px solid var(--color-border);\n\t\t}\n\n\t\t.mx-time-option,\n\t\t.mx-time-item {\n\t\t\t&.active,\n\t\t\t&:hover {\n\t\t\t\tcolor: var(--color-primary-text);\n\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t}\n\n\t\t\t&.disabled {\n\t\t\t\tcursor: not-allowed;\n\t\t\t\topacity: $opacity_disabled;\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=T},636:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,'.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.multiselect[data-v-a0481fe]{margin:0;padding:0 !important;display:inline-block;min-width:260px;position:relative}.multiselect[data-v-a0481fe]:not(.multiselect--active) .multiselect__single{width:100%;z-index:2 !important}.multiselect[data-v-a0481fe].multiselect--active.multiselect--above input.multiselect__input{border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-a0481fe].multiselect--disabled,.multiselect[data-v-a0481fe].multiselect--disabled .multiselect__single{background-color:var(--color-background-dark) !important}.multiselect[data-v-a0481fe] .loading-icon{position:absolute;right:1px;top:1px;width:48px;height:35px;background:var(--color-main-background);z-index:3}.multiselect[data-v-a0481fe] .multiselect__tags{display:flex;flex-wrap:nowrap;overflow:hidden;border:2px solid var(--color-border-dark);cursor:pointer;position:relative;border-radius:var(--border-radius-large);min-height:44px;height:44px;padding:8px 12px !important;background-color:var(--color-main-background);box-sizing:border-box}.multiselect[data-v-a0481fe] .multiselect__tags:focus,.multiselect[data-v-a0481fe] .multiselect__tags:hover{border-color:var(--color-primary)}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap{align-items:center;display:inline-flex;overflow:hidden;max-width:100%;position:relative;gap:5px;flex:1 1;flex-wrap:nowrap}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap:empty~input.multiselect__input{opacity:1 !important;display:block !important}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap:empty~input.multiselect__input+span:not(.multiselect__single){display:none}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap .multiselect__tag{line-height:20px;padding:2px 5px;background-image:none;color:var(--color-main-text);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center;border-radius:var(--border-radius);min-width:0;max-width:fit-content;max-width:-moz-fit-content;margin:0}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:only-child{flex:0 1 auto}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap .multiselect__tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__single,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__placeholder{z-index:1;background-color:var(--color-main-background);line-height:18px;color:var(--color-text-lighter);display:flex;align-items:center;font-size:var(--default-font-size)}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__single,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__single *,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__placeholder,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__placeholder *{cursor:pointer}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__strong,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__limit{line-height:20px;color:var(--color-text-lighter);display:inline-flex;align-items:center;opacity:.7;margin-right:5px;z-index:5}.multiselect[data-v-a0481fe] .multiselect__tags input.multiselect__input{width:100% !important;height:auto !important;margin:0;opacity:0;border:none;cursor:pointer;display:none;height:40px;min-height:26px;padding:0 !important;font-size:var(--default-font-size)}.multiselect[data-v-a0481fe].multiselect--active input.multiselect__input{opacity:1 !important;cursor:text !important;border-radius:var(--border-radius) var(--border-radius) 0 0;display:block !important}.multiselect[data-v-a0481fe].multiselect--active .multiselect__limit{display:none}.multiselect[data-v-a0481fe] .multiselect__content-wrapper{position:absolute;width:100%;margin-top:-1px;border:1px solid var(--color-border-dark);background:var(--color-main-background);z-index:50;max-height:250px;overflow-y:auto;border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-a0481fe] .multiselect__content-wrapper .multiselect__content{width:100%;padding:0}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li{position:relative;display:flex;align-items:center;background-color:rgba(0,0,0,0)}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li,.multiselect[data-v-a0481fe] .multiselect__content-wrapper li span{cursor:pointer}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span{padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;height:auto;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0);color:var(--color-text-lighter);width:100%}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span::before{content:" ";background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span.multiselect__option--disabled{background-color:var(--color-background-dark);opacity:.5}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span.multiselect__option--highlight{color:var(--color-main-text);background-color:var(--color-background-dark)}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{opacity:.3}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span.multiselect__option--selected::before,.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{visibility:visible}.multiselect[data-v-a0481fe].multiselect--above .multiselect__content-wrapper{bottom:100%;margin-bottom:-1px}.multiselect[data-v-a0481fe].multiselect--multiple .multiselect__tags{flex-wrap:wrap}.multiselect[data-v-a0481fe].multiselect--multiple .multiselect__content-wrapper li>span::before{background-image:var(--icon-checkmark-000)}.multiselect[data-v-a0481fe].multiselect--multiple .multiselect__content-wrapper li>span[data-select=create]::before{background-image:var(--icon-add-000);visibility:visible}.multiselect[data-v-a0481fe].multiselect--single .multiselect__content-wrapper li>span::before{display:none}.multiselect[data-v-a0481fe]:hover .multiselect__placeholder,.multiselect[data-v-a0481fe] input.multiselect__input .multiselect__placeholder{color:var(--color-main-text)}',"",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcMultiselect/index.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,6BACC,QAAA,CACA,oBAAA,CACA,oBAAA,CAEA,eAAA,CACA,iBAAA,CAGA,4EACC,UAAA,CACA,oBAAA,CAKA,6FACC,2DAAA,CAKF,2HAEC,wDAAA,CAID,2CACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CACA,uCAAA,CACA,SAAA,CAID,gDAGC,YAAA,CACA,gBAAA,CACA,eAAA,CACA,yCAAA,CACA,cAAA,CACA,iBAAA,CACA,wCAAA,CACA,eAAA,CACA,WAAA,CACA,2BAAA,CACA,6CAAA,CACA,qBAAA,CAEA,4GACC,iCAAA,CAID,wEACC,kBAAA,CACA,mBAAA,CACA,eAAA,CACA,cAAA,CACA,iBAAA,CACA,OAzBe,CA0Bf,QAAA,CACA,gBAAA,CAGA,uGACC,oBAAA,CACA,wBAAA,CAIA,sIACC,YAAA,CAIF,0FACC,gBAAA,CACA,eAAA,CACA,qBAAA,CACA,4BAAA,CACA,yCAAA,CACA,mBAAA,CACA,kBAAA,CACA,kCAAA,CAGA,WAAA,CACA,qBAAA,CACA,0BAAA,CACA,QAAA,CAGA,qGACC,aAAA,CAID,+FACC,kBAAA,CACA,sBAAA,CACA,eAAA,CAOH,+IAEC,SAAA,CACA,6CAAA,CACA,gBAAA,CACA,+BAAA,CAEA,YAAA,CACA,kBAAA,CACA,kCAAA,CAGA,kSACC,cAAA,CAIF,yIAEC,gBAAA,CACA,+BAAA,CACA,mBAAA,CACA,kBAAA,CACA,UClGc,CDmGd,gBAjGe,CAmGf,SAAA,CAGD,yEACC,qBAAA,CACA,sBAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CAGA,cAAA,CAEA,YAAA,CACA,WAAA,CACA,eAAA,CACA,oBAAA,CACA,kCAAA,CAQD,0EACC,oBAAA,CACA,sBAAA,CAEA,2DAAA,CACA,wBAAA,CAID,qEACC,YAAA,CAKF,2DACC,iBAAA,CACA,UAAA,CACA,eAAA,CACA,yCAAA,CACA,uCAAA,CACA,UAAA,CACA,gBAAA,CACA,eAAA,CACA,2DAAA,CACA,iFACC,UAAA,CACA,SAAA,CAED,8DACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,8BAAA,CACA,iIAEC,cAAA,CAED,mEACC,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CACA,cAAA,CACA,0BAAA,CACA,wBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CACA,kBAAA,CACA,8BAAA,CACA,+BAAA,CACA,UAAA,CAEA,2EACC,WAAA,CACA,2BAAA,CACA,0BAAA,CACA,cAAA,CACA,eAAA,CACA,aAAA,CACA,UC/Lc,CDgMd,gBAAA,CACA,iBAAA,CAED,iGACC,6CAAA,CACA,UCrMc,CDuMf,kGACC,4BAAA,CACA,6CAAA,CAED,qHACC,UAAA,CAIA,8NACC,kBAAA,CAOL,8EACC,WAAA,CACA,kBAAA,CAMA,sEACC,cAAA,CAIA,iGACC,0CAAA,CAMA,qHACC,oCAAA,CACA,kBAAA,CAOJ,+FACC,YAAA,CAMA,6IACC,4BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n// scoping is not working inside the Multiselect.vue component\n// as the nested properties are not inside it\n// Therefore we need to use an external scoping\n.multiselect[data-v-#{$scope_version}] {\n\tmargin: 0;\n\tpadding: 0 !important;\n\tdisplay: inline-block;\n\t/* override this rule with your width styling if you need */\n\tmin-width: 260px;\n\tposition: relative;\n\n\t/* Force single multiselect value to be shown when not active */\n\t&:not(.multiselect--active) .multiselect__single {\n\t\twidth: 100%;\n\t\tz-index: 2 !important;\n\t}\n\n\t// Remove radius on top opening\n\t&.multiselect--active.multiselect--above {\n\t\tinput.multiselect__input {\n\t\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\t}\n\t}\n\n\t// disabled state background\n\t&.multiselect--disabled,\n\t&.multiselect--disabled .multiselect__single {\n\t\tbackground-color: var(--color-background-dark) !important;\n\t}\n\n\t// loading state\n\t.loading-icon {\n\t\tposition: absolute;\n\t\tright: 1px;\n\t\ttop: 1px;\n\t\twidth: 48px;\n\t\theight: 35px;\n\t\tbackground: var(--color-main-background);\n\t\tz-index: 3;\n\t}\n\n\t// multiple selected options display\n\t.multiselect__tags {\n\t\t/* space between tags and limit tag */\n\t\t$space-between: 5px;\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\toverflow: hidden;\n\t\tborder: 2px solid var(--color-border-dark);\n\t\tcursor: pointer;\n\t\tposition: relative;\n\t\tborder-radius: var(--border-radius-large);\n\t\tmin-height: 44px;\n\t\theight: 44px;\n\t\tpadding: 8px 12px !important;\n\t\tbackground-color: var(--color-main-background);\n\t\tbox-sizing: border-box;\n\n\t\t&:focus, &:hover {\n\t\t\tborder-color: var(--color-primary);\n\t\t}\n\n\t\t/* tag wrapper */\n\t\t.multiselect__tags-wrap {\n\t\t\talign-items: center;\n\t\t\tdisplay: inline-flex;\n\t\t\toverflow: hidden;\n\t\t\tmax-width: 100%;\n\t\t\tposition: relative;\n\t\t\tgap: $space-between;\n\t\t\tflex: 1 1;\n\t\t\tflex-wrap: nowrap;\n\t\t\t/* no tags or simple select? Show input directly\n\t\t\tinput is used to display single value */\n\t\t\t&:empty ~ input.multiselect__input {\n\t\t\t\topacity: $opacity_full !important;\n\t\t\t\tdisplay: block !important;\n\t\t\t\t/* hide default empty text like .multiselect__placeholder,\n\t\t\t\tand show input instead. It looks better without a transition between\n\t\t\t\ta span and the input that have different styling */\n\t\t\t\t+ span:not(.multiselect__single) {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\t/* selected tag */\n\t\t\t.multiselect__tag {\n\t\t\t\tline-height: 20px;\n\t\t\t\tpadding: 2px 5px;\n\t\t\t\tbackground-image: none;\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\tborder: 1px solid var(--color-border-dark);\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t\t/* require to override the default width\n\t\t\t\tand force the tag to shring properly */\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: fit-content;\n\t\t\t\tmax-width: -moz-fit-content;\n\t\t\t\tmargin: 0;\n\t\t\t\t/* css hack, detect if more than two tags\n\t\t\t\tif so, flex-basis is set to half */\n\t\t\t\t&:only-child {\n\t\t\t\t\tflex: 0 1 auto;\n\t\t\t\t}\n\t\t\t\t/* ellipsis the groups to be sure\n\t\t\t\twe display at least two of them */\n\t\t\t\t> span {\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/* Single select default value\n\t\tor default placeholder if search disabled*/\n\t\t.multiselect__single,\n\t\t.multiselect__placeholder {\n\t\t\tz-index: 1; /* above input */\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tline-height: 18px; // 32px - 2*6px (padding) - 2*1px (border)\n\t\t\tcolor: var(--color-text-lighter); // like the input\n\t\t\t// Align content and make the flow smoother\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tfont-size: var(--default-font-size);\n\n\t\t\t// Anything inside will trigger the select opening\n\t\t\t&, * {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\t\t/* displayed text if tag limit reached */\n\t\t.multiselect__strong,\n\t\t.multiselect__limit {\n\t\t\tline-height: 20px;\n\t\t\tcolor: var(--color-text-lighter);\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\topacity: $opacity_normal;\n\t\t\tmargin-right: $space-between;\n\t\t\t/* above the input */\n\t\t\tz-index: 5;\n\t\t}\n\t\t/* default multiselect input for search and placeholder */\n\t\tinput.multiselect__input {\n\t\t\twidth: 100% !important;\n\t\t\theight: auto !important;\n\t\t\tmargin: 0;\n\t\t\topacity: 0;\n\t\t\tborder: none;\n\t\t\t/* override hide to force show the placeholder */\n\t\t\t/* only when not active */\n\t\t\tcursor: pointer;\n\t\t\t/* override inline styling of the lib */\n\t\t\tdisplay: none;\n\t\t\theight: 40px;\n\t\t\tmin-height: 26px;\n\t\t\tpadding: 0 !important;\n\t\t\tfont-size: var(--default-font-size);\n\t\t}\n\t}\n\n\t// active state, force the input to be shown, we don't want\n\t// the placeholder or the currently selected options\n\t&.multiselect--active {\n\t\t/* Opened: force display the input */\n\t\tinput.multiselect__input {\n\t\t\topacity: $opacity_full !important;\n\t\t\tcursor: text !important;\n\t\t\t// remove border radius on bottom opening\n\t\t\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\n\t\t\tdisplay: block !important;\n\t\t}\n\n\t\t/* multiselect__limit hidden if active */\n\t\t.multiselect__limit {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/* results wrapper */\n\t.multiselect__content-wrapper {\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\tmargin-top: -1px;\n\t\tborder: 1px solid var(--color-border-dark);\n\t\tbackground: var(--color-main-background);\n\t\tz-index: 50;\n\t\tmax-height: 250px;\n\t\toverflow-y: auto;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\t.multiselect__content {\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t}\n\t\tli {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tbackground-color: transparent;\n\t\t\t&,\n\t\t\tspan {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t\t> span {\n\t\t\t\tpadding: 8px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\tmargin: 0;\n\t\t\t\theight: auto;\n\t\t\t\tmin-height: 1em;\n\t\t\t\t-webkit-touch-callout: none;\n\t\t\t\t-webkit-user-select: none;\n\t\t\t\t-moz-user-select: none;\n\t\t\t\t-ms-user-select: none;\n\t\t\t\tuser-select: none;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tcolor: var(--color-text-lighter);\n\t\t\t\twidth: 100%;\n\t\t\t\t/* selected checkmark icon */\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: ' ';\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tbackground-position: center;\n\t\t\t\t\tmin-width: 16px;\n\t\t\t\t\tmin-height: 16px;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\topacity: $opacity_disabled;\n\t\t\t\t\tmargin-right: 5px;\n\t\t\t\t\tvisibility: hidden;\n\t\t\t\t}\n\t\t\t\t&.multiselect__option--disabled {\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t\topacity: $opacity_disabled;\n\t\t\t\t}\n\t\t\t\t&.multiselect__option--highlight {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t}\n\t\t\t\t&:not(.multiselect__option--disabled):hover::before {\n\t\t\t\t\topacity: .3;\n\t\t\t\t}\n\t\t\t\t&.multiselect__option--selected,\n\t\t\t\t&:not(.multiselect__option--disabled):hover {\n\t\t\t\t\t&::before {\n\t\t\t\t\t\tvisibility: visible;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t/* ABOVE display */\n\t&.multiselect--above .multiselect__content-wrapper {\n\t\tbottom: 100%;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t/* Icon before option select */\n\t&.multiselect--multiple {\n\t\t// push the input after the tag list\n\t\t.multiselect__tags {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t.multiselect__content-wrapper li > span {\n\t\t\t&::before {\n\t\t\t\tbackground-image: var(--icon-checkmark-000);\n\t\t\t}\n\n\t\t\t/* add the prop tag-placeholder=\"create\" to add the +\n\t\t\ticon on top of an unknown-and-ready-to-be-created entry */\n\t\t\t&[data-select='create'] {\n\t\t\t\t&::before {\n\t\t\t\t\tbackground-image: var(--icon-add-000);\n\t\t\t\t\tvisibility: visible;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/* No need for an icon here */\n\t&.multiselect--single .multiselect__content-wrapper li > span::before {\n\t\tdisplay: none;\n\t}\n\n\t/* Mouse feedback */\n\t&:hover,\n\tinput.multiselect__input {\n\t\t.multiselect__placeholder {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},8384:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.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 .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .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:rgba(0,0,0,0);border-width:10px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/directives/Tooltip/index.scss"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCQA,0CACC,iBAAA,CACA,cAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eAAA,CAEA,eAAA,CACA,sDAAA,CAGA,iGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAID,oGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAID,mGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAID,kGACC,SAAA,CACA,oBAAA,CACA,8CAAA,CAID,4DACC,iBAAA,CACA,uCAAA,CACA,SAAA,CAED,6DACC,kBAAA,CACA,uBAAA,CACA,SAAA,CAKF,0CACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,4BAAA,CACA,kCAAA,CACA,6CAAA,CAID,oDACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBAhFY",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n/**\n* @copyright Copyright (c) 2016, John Molakvoæ \n* @copyright Copyright (c) 2016, Robin Appelman \n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt \n* @copyright Copyright (c) 2016, Erik Pellikka \n* @copyright Copyright (c) 2015, Vincent Petry \n*\n* Bootstrap v3.3.5 (http://getbootstrap.com)\n* Copyright 2011-2015 Twitter, Inc.\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n*/\n\n$arrow-width: 10px;\n\n.v-popper--theme-tooltip {\n\t&.v-popper__popper {\n\t\tposition: absolute;\n\t\tz-index: 100000;\n\t\ttop: 0;\n\t\tright: auto;\n\t\tleft: auto;\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\ttext-align: left;\n\t\ttext-align: start;\n\t\topacity: 0;\n\t\tline-height: 1.6;\n\n\t\tline-break: auto;\n\t\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t\t// TOP\n\t\t&[data-popper-placement^='top'] .v-popper__arrow-container {\n\t\t\tbottom: -$arrow-width;\n\t\t\tborder-bottom-width: 0;\n\t\t\tborder-top-color: var(--color-main-background);\n\t\t}\n\n\t\t// BOTTOM\n\t\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\n\t\t\ttop: -$arrow-width;\n\t\t\tborder-top-width: 0;\n\t\t\tborder-bottom-color: var(--color-main-background);\n\t\t}\n\n\t\t// RIGHT\n\t\t&[data-popper-placement^='right'] .v-popper__arrow-container {\n\t\t\tright: 100%;\n\t\t\tborder-left-width: 0;\n\t\t\tborder-right-color: var(--color-main-background);\n\t\t}\n\n\t\t// LEFT\n\t\t&[data-popper-placement^='left'] .v-popper__arrow-container {\n\t\t\tleft: 100%;\n\t\t\tborder-right-width: 0;\n\t\t\tborder-left-color: var(--color-main-background);\n\t\t}\n\n\t\t// HIDDEN / SHOWN\n\t\t&[aria-hidden='true'] {\n\t\t\tvisibility: hidden;\n\t\t\ttransition: opacity .15s, visibility .15s;\n\t\t\topacity: 0;\n\t\t}\n\t\t&[aria-hidden='false'] {\n\t\t\tvisibility: visible;\n\t\t\ttransition: opacity .15s;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t// CONTENT\n\t.v-popper__inner {\n\t\tmax-width: 350px;\n\t\tpadding: 5px 8px;\n\t\ttext-align: center;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-color: var(--color-main-background);\n\t}\n\n\t// ARROW\n\t.v-popper__arrow-container {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\tborder-style: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: $arrow-width;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},5698:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-45a871d0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-45a871d0]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-45a871d0]{pointer-events:none;opacity:.5}.action--disabled[data-v-45a871d0]:hover,.action--disabled[data-v-45a871d0]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-45a871d0]{opacity:1 !important}.action-button[data-v-45a871d0]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-45a871d0]:hover,.action-button[data-v-45a871d0]:focus{opacity:1}.action-button>span[data-v-45a871d0]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-45a871d0]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-45a871d0] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-45a871d0] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-45a871d0]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-45a871d0]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-45a871d0]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CAOF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},7264:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-fd7dc03c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-fd7dc03c]{color:var(--color-text-maxcontrast);line-height:44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none;margin-left:12px;padding-right:14px;height:44px;display:flex;align-items:center}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActionCaption/NcActionCaption.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yCACC,mCAAA,CACA,gBCqBgB,CDpBhB,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,gBAAA,CACA,mBAAA,CACA,gBAAA,CACA,kBAAA,CACA,WCagB,CDZhB,YAAA,CACA,kBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-navigation-caption {\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: $clickable-area;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tbox-shadow: none !important;\n\tuser-select: none;\n\tpointer-events: none;\n\tmargin-left: 12px;\n\tpadding-right: 14px;\n\theight: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},7126:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-2669efff]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-2669efff]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-2669efff]{pointer-events:none;opacity:.5}.action--disabled[data-v-2669efff]:hover,.action--disabled[data-v-2669efff]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-2669efff]{opacity:1 !important}.action-checkbox[data-v-2669efff]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-checkbox__checkbox[data-v-2669efff]{position:absolute;top:auto;left:-10000px;overflow:hidden;width:1px;height:1px}.action-checkbox__checkbox:focus+.action-checkbox__label[data-v-2669efff]{opacity:1}.action-checkbox__label[data-v-2669efff]{display:flex;align-items:center;width:100%;padding:0 !important;padding-right:14px !important;opacity:.7}.action-checkbox__label[data-v-2669efff]::before{margin:0 14px 0 !important}.action-checkbox--disabled[data-v-2669efff],.action-checkbox--disabled .action-checkbox__label[data-v-2669efff]{cursor:pointer}.action-checkbox:not(.action-checkbox--disabled):hover .action-checkbox__label[data-v-2669efff],.action-checkbox:not(.action-checkbox--disabled):focus .action-checkbox__label[data-v-2669efff]{opacity:1}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss","webpack://./src/components/NcActionCheckbox/NcActionCheckbox.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CEpCH,kCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBAAA,CAGA,4CACC,iBAAA,CACA,QAAA,CACA,aAAA,CAEA,eAAA,CAEA,SAAA,CACA,UAAA,CACA,0EACC,SDMY,CCFd,yCACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,oBAAA,CACA,6BAAA,CAEA,UDPe,CCUf,iDACC,0BAAA,CAKD,gHAEC,cAAA,CAMD,gMACC,SDxBY",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n@import '../../assets/action';\n@include action-active;\n@include action--disabled;\n\n.action-checkbox {\n\tdisplay: flex;\n\talign-items: flex-start;\n\n\twidth: 100%;\n\theight: auto;\n\tmargin: 0;\n\tpadding: 0;\n\n\tcursor: pointer;\n\twhite-space: nowrap;\n\n\tcolor: var(--color-main-text);\n\tborder: 0;\n\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\tbackground-color: transparent;\n\tbox-shadow: none;\n\n\tfont-weight: normal;\n\tline-height: $clickable-area;\n\n\t/* checkbox/radio fixes */\n\t&__checkbox {\n\t\tposition: absolute;\n\t\ttop: auto;\n\t\tleft: -10000px;\n\n\t\toverflow: hidden;\n\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\t&:focus + .action-checkbox__label {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\talign-items: center; // align checkbox to text\n\n\t\twidth: 100%;\n\t\tpadding: 0 !important;\n\t\tpadding-right: $icon-margin !important;\n\n\t\topacity: $opacity_normal;\n\t\t// checkbox-width is 12px, border is 2\n\t\t// (44 - 14 - 2) / 2 = 14\n\t\t&::before {\n\t\t\tmargin: 0 14px 0 !important;\n\t\t}\n\t}\n\n\t&--disabled {\n\t\t&,\n\t\t.action-checkbox__label {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t&:not(.action-checkbox--disabled):hover,\n\t&:not(.action-checkbox--disabled):focus {\n\t\t.action-checkbox__label {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},8768:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-07819ce0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-07819ce0]:not(.button-vue),input[data-v-07819ce0]:not([type=range]),textarea[data-v-07819ce0]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-07819ce0]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-07819ce0]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-07819ce0],input[data-v-07819ce0]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-07819ce0]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-07819ce0],textarea[data-v-07819ce0]:not(:disabled):not(.primary):hover,textarea[data-v-07819ce0]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-07819ce0]{border-color:var(--color-primary-element);outline:none}button[data-v-07819ce0]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-07819ce0]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-07819ce0]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-07819ce0]:not(.button-vue):disabled,input[data-v-07819ce0]:not([type=range]):disabled,textarea[data-v-07819ce0]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-07819ce0]:not(.button-vue):required,input[data-v-07819ce0]:not([type=range]):required,textarea[data-v-07819ce0]:required{box-shadow:none}button[data-v-07819ce0]:not(.button-vue):invalid,input[data-v-07819ce0]:not([type=range]):invalid,textarea[data-v-07819ce0]:invalid{border-color:var(--color-error);box-shadow:none !important}button:not(.button-vue).primary[data-v-07819ce0],input:not([type=range]).primary[data-v-07819ce0],textarea.primary[data-v-07819ce0]{cursor:pointer;color:var(--color-primary-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):hover,button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):focus,button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):active,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):hover,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):focus,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):active,textarea.primary[data-v-07819ce0]:not(:disabled):hover,textarea.primary[data-v-07819ce0]:not(:disabled):focus,textarea.primary[data-v-07819ce0]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):active,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):active,textarea.primary[data-v-07819ce0]:not(:disabled):active{color:var(--color-primary-text-dark)}button:not(.button-vue).primary[data-v-07819ce0]:disabled,input:not([type=range]).primary[data-v-07819ce0]:disabled,textarea.primary[data-v-07819ce0]:disabled{cursor:default;color:var(--color-primary-text-dark);background-color:var(--color-primary-element)}li.active[data-v-07819ce0]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-07819ce0]{pointer-events:none;opacity:.5}.action--disabled[data-v-07819ce0]:hover,.action--disabled[data-v-07819ce0]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-07819ce0]{opacity:1 !important}.action-input[data-v-07819ce0]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal}.action-input[data-v-07819ce0] .material-design-icon{width:44px;height:44px;opacity:1}.action-input[data-v-07819ce0] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-input[data-v-07819ce0]:not(.action-input--picker){opacity:.7}.action-input[data-v-07819ce0]:not(.action-input--picker):hover,.action-input[data-v-07819ce0]:not(.action-input--picker):focus{opacity:1}.action-input--picker .action-input__icon[data-v-07819ce0]{opacity:.7}.action-input--picker:hover .action-input__icon[data-v-07819ce0],.action-input--picker:focus .action-input__icon[data-v-07819ce0]{opacity:1}.action-input>span[data-v-07819ce0]{cursor:pointer;white-space:nowrap}.action-input__icon[data-v-07819ce0]{min-width:0;min-height:0;padding:22px 0 22px 44px;background-position:14px center;background-size:16px}.action-input__form[data-v-07819ce0]{display:flex;align-items:center;flex:1 1 auto;margin:4px 0;padding-right:14px}.action-input__submit[data-v-07819ce0]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.action-input__label[data-v-07819ce0]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;box-sizing:border-box;margin:0 0 0 -8px;padding:7px 6px;opacity:1;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-left-color:rgba(0,0,0,0);border-radius:0 var(--border-radius) var(--border-radius) 0;background-color:var(--color-main-background);background-clip:padding-box}.action-input__label[data-v-07819ce0],.action-input__label *[data-v-07819ce0]{cursor:pointer}.action-input__input[data-v-07819ce0]{flex:1 1 auto;min-width:132px;min-height:36px;max-height:36px;margin:0}.action-input__input[data-v-07819ce0]:disabled{cursor:default}.action-input__input:not(:active):not(:hover):not(:focus):invalid+.action-input__label[data-v-07819ce0]{border-color:var(--color-error);border-left-color:rgba(0,0,0,0)}.action-input__input:not(:active):not(:hover):not(:focus):not(:disabled)+.action-input__label[data-v-07819ce0]:active,.action-input__input:not(:active):not(:hover):not(:focus):not(:disabled)+.action-input__label[data-v-07819ce0]:hover,.action-input__input:not(:active):not(:hover):not(:focus):not(:disabled)+.action-input__label[data-v-07819ce0]:focus{border-color:var(--color-primary-element);border-radius:var(--border-radius)}.action-input__input:active:not(:disabled)+.action-input__label[data-v-07819ce0],.action-input__input:hover:not(:disabled)+.action-input__label[data-v-07819ce0],.action-input__input:focus:not(:disabled)+.action-input__label[data-v-07819ce0]{z-index:2;border-color:var(--color-primary-element);border-left-color:rgba(0,0,0,0)}.action-input__picker[data-v-07819ce0] .mx-input{margin:0}.action-input__multi[data-v-07819ce0]{width:100%}li:last-child>.action-input[data-v-07819ce0]{padding-bottom:10px}li:first-child>.action-input[data-v-07819ce0]{padding-top:10px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/inputs.scss","webpack://./src/assets/variables.scss","webpack://./src/assets/action.scss","webpack://./src/components/NcActionInput/NcActionInput.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCqBD,4GAGC,QAAA,CACA,eAAA,CAEA,WAAA,CAEA,+BAAA,CACA,yCAAA,CACA,kCAAA,CACA,YAAA,CACA,6CAAA,CAEA,cAAA,CAGC,koBAIC,yCAAA,CACA,YAAA,CAGD,wNACC,6BAAA,CACA,YAAA,CACA,6CAAA,CAIF,uIACC,cAAA,CACA,UCrBiB,CDsBjB,mCAAA,CACA,6CAAA,CAGD,uIACC,eAAA,CAGD,oIACC,+BAAA,CACA,0BAAA,CAID,oIACC,cAAA,CACA,+BAAA,CACA,yCAAA,CACA,6CAAA,CAGC,4kBAGC,+CAAA,CACA,mDAAA,CAED,sMACC,oCAAA,CAIF,+JACC,cAAA,CACA,oCAAA,CAEA,6CAAA,CE3ED,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UDMiB,CCLjB,kFACC,cAAA,CACA,UDGgB,CCDjB,qCACC,oBAAA,CCjCH,+BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CAEA,qDACC,UFLe,CEMf,WFNe,CEOf,SFYa,CEVb,gFACC,qBAAA,CAKF,0DACC,UFEe,CEDf,gIAEC,SAAA,CAMD,2DACC,UFRc,CEUf,kIAEC,SFXY,CEed,oCACC,cAAA,CACA,kBAAA,CAGD,qCACC,WAAA,CACA,YAAA,CAGA,wBAAA,CAEA,+BAAA,CACA,oBF3CU,CE+CX,qCACC,YAAA,CACA,kBAAA,CACA,aAAA,CAEA,YAAA,CACA,kBFjDY,CEoDb,uCACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CACA,eAAA,CAEA,SF7Da,CE8Db,+BAAA,CACA,yCAAA,CACA,+BAAA,CACA,2DAAA,CAEA,6CAAA,CACA,2BAAA,CAEA,8EACC,cAAA,CAKF,sCACC,aAAA,CAEA,eAAA,CACA,eAAA,CACA,eAAA,CACA,QAAA,CAGA,+CACC,cAAA,CAMC,wGACC,+BAAA,CACA,+BAAA,CAID,gWAGC,yCAAA,CACA,kCAAA,CAOF,iPAEC,SAAA,CAEA,yCAAA,CACA,+BAAA,CAKH,iDACC,QAAA,CAGD,sCACC,UAAA,CAOF,6CACC,mBAAA,CAID,8CACC,gBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n\n/* Default global values */\nbutton:not(.button-vue),\ninput:not([type='range']),\ntextarea {\n\tmargin: 0;\n\tpadding: 7px 6px;\n\n\tcursor: text;\n\n\tcolor: var(--color-text-lighter);\n\tborder: 1px solid var(--color-border-dark);\n\tborder-radius: var(--border-radius);\n\toutline: none;\n\tbackground-color: var(--color-main-background);\n\n\tfont-size: 13px;\n\n\t&:not(:disabled):not(.primary) {\n\t\t&:hover,\n\t\t&:focus,\n\t\t&.active {\n\t\t\t/* active class used for multiselect */\n\t\t\tborder-color: var(--color-primary-element);\n\t\t\toutline: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcolor: var(--color-text-light);\n\t\t\toutline: none;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\topacity: $opacity_disabled;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&:required {\n\t\tbox-shadow: none;\n\t}\n\n\t&:invalid {\n\t\tborder-color: var(--color-error);\n\t\tbox-shadow: none !important;\n\t}\n\n\t/* Primary action button, use sparingly */\n\t&.primary {\n\t\tcursor: pointer;\n\t\tcolor: var(--color-primary-text);\n\t\tborder-color: var(--color-primary-element);\n\t\tbackground-color: var(--color-primary-element);\n\n\t\t&:not(:disabled) {\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\tborder-color: var(--color-primary-element-light);\n\t\t\t\tbackground-color: var(--color-primary-element-light);\n\t\t\t}\n\t\t\t&:active {\n\t\t\t\tcolor: var(--color-primary-text-dark);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t\tcolor: var(--color-primary-text-dark);\n\t\t\t// opacity is already defined to .5 if disabled\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n@import '../../assets/inputs';\n@import '../../assets/action';\n@include action-active;\n@include action--disabled;\n\n$input-margin: 4px;\n\n.action-input {\n\tdisplay: flex;\n\talign-items: flex-start;\n\n\twidth: 100%;\n\theight: auto;\n\tmargin: 0;\n\tpadding: 0;\n\n\tcursor: pointer;\n\twhite-space: nowrap;\n\n\tcolor: var(--color-main-text);\n\tborder: 0;\n\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\tbackground-color: transparent;\n\tbox-shadow: none;\n\n\tfont-weight: normal;\n\n\t&:deep(.material-design-icon) {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\topacity: $opacity_full;\n\n\t\t.material-design-icon__svg {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t// do not change the opacity of the datepicker\n\t&:not(.action-input--picker) {\n\t\topacity: $opacity_normal;\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n\n\t// only change for the icon then\n\t&--picker {\n\t\t.action-input__icon {\n\t\t\topacity: $opacity_normal;\n\t\t}\n\t\t&:hover .action-input__icon,\n\t\t&:focus .action-input__icon {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n\n\t& > span {\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t}\n\n\t&__icon {\n\t\tmin-width: 0; /* Overwrite icons*/\n\t\tmin-height: 0;\n\t\t/* Keep padding to define the width to\n\t\t\tassure correct position of a possible text */\n\t\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\n\n\t\tbackground-position: #{$icon-margin} center;\n\t\tbackground-size: $icon-size;\n\t}\n\n\t// Forms & text inputs\n\t&__form {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 1 1 auto;\n\n\t\tmargin: $input-margin 0;\n\t\tpadding-right: $icon-margin;\n\t}\n\n\t&__submit {\n\t\tposition: absolute;\n\t\tleft: -10000px;\n\t\ttop: auto;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\twidth: #{$clickable-area - $input-margin * 2};\n\t\theight: #{$clickable-area - $input-margin * 2};\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 0 0 -8px;\n\t\tpadding: 7px 6px;\n\n\t\topacity: $opacity_full;\n\t\tcolor: var(--color-text-lighter);\n\t\tborder: 1px solid var(--color-border-dark);\n\t\tborder-left-color: transparent;\n\t\tborder-radius: 0 var(--border-radius) var(--border-radius) 0;\n\t\t/* Avoid background under border */\n\t\tbackground-color: var(--color-main-background);\n\t\tbackground-clip: padding-box;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t/* Inputs inside popover supports text, submit & reset */\n\t&__input {\n\t\tflex: 1 1 auto;\n\n\t\tmin-width: $clickable-area * 3;\n\t\tmin-height: #{$clickable-area - $input-margin * 2}; /* twice the element margin-y */\n\t\tmax-height: #{$clickable-area - $input-margin * 2}; /* twice the element margin-y */\n\t\tmargin: 0;\n\n\t\t// if disabled, change cursor\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t/* only show confirm borders if input is not focused */\n\t\t&:not(:active):not(:hover):not(:focus) {\n\t\t\t&:invalid {\n\t\t\t\t& + .action-input__label {\n\t\t\t\t\tborder-color: var(--color-error);\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:not(:disabled) + .action-input__label {\n\t\t\t\t&:active,\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:active,\n\t\t&:hover,\n\t\t&:focus {\n\t\t\t&:not(:disabled) + .action-input__label {\n\t\t\t\t/* above previous input */\n\t\t\t\tz-index: 2;\n\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t\tborder-left-color: transparent;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__picker :deep(.mx-input) {\n\t\tmargin: 0;\n\t}\n\n\t&__multi {\n\t\twidth: 100%;\n\t}\n}\n\n// if a form is the last of the list\n// add the same bottomMargin as the right padding\n// for visual balance\nli:last-child > .action-input {\n\tpadding-bottom: $icon-margin - $input-margin;\n}\n\n// same for first item\nli:first-child > .action-input {\n\tpadding-top: $icon-margin - $input-margin;\n}\n\n"],sourceRoot:""}]),e.Z=o},2911:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-452e1d1a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-452e1d1a]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-link[data-v-452e1d1a]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-link[data-v-452e1d1a]:hover,.action-link[data-v-452e1d1a]:focus{opacity:1}.action-link>span[data-v-452e1d1a]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-452e1d1a]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-452e1d1a] .material-design-icon{width:44px;height:44px;opacity:1}.action-link[data-v-452e1d1a] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link p[data-v-452e1d1a]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-452e1d1a]{cursor:pointer;white-space:pre-wrap}.action-link__title[data-v-452e1d1a]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,wEAEC,SChCY,CDmCb,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,oDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},1915:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-2ea9dc76]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-2ea9dc76]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-2ea9dc76]{pointer-events:none;opacity:.5}.action--disabled[data-v-2ea9dc76]:hover,.action--disabled[data-v-2ea9dc76]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-2ea9dc76]{opacity:1 !important}.action-radio[data-v-2ea9dc76]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-radio__radio[data-v-2ea9dc76]{position:absolute;top:auto;left:-10000px;overflow:hidden;width:1px;height:1px}.action-radio__radio:focus+.action-radio__label[data-v-2ea9dc76]{opacity:1}.action-radio__label[data-v-2ea9dc76]{display:flex;align-items:center;width:100%;padding:0 !important;padding-right:14px !important;opacity:.7}.action-radio__label[data-v-2ea9dc76]::before{margin:0 14px 0 !important}.action-radio--disabled[data-v-2ea9dc76],.action-radio--disabled .action-radio__label[data-v-2ea9dc76]{cursor:pointer}.action-radio:not(.action-radio--disabled):hover .action-radio__label[data-v-2ea9dc76],.action-radio:not(.action-radio--disabled):focus .action-radio__label[data-v-2ea9dc76]{opacity:1}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss","webpack://./src/components/NcActionRadio/NcActionRadio.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CEpCH,+BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBAAA,CAGA,sCACC,iBAAA,CACA,QAAA,CACA,aAAA,CAEA,eAAA,CAEA,SAAA,CACA,UAAA,CACA,iEACC,SDMY,CCFd,sCACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,oBAAA,CACA,6BAAA,CAEA,UDPe,CCUf,8CACC,0BAAA,CAKD,uGAEC,cAAA,CAMD,8KACC,SDxBY",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n@import '../../assets/action';\n@include action-active;\n@include action--disabled;\n\n.action-radio {\n\tdisplay: flex;\n\talign-items: flex-start;\n\n\twidth: 100%;\n\theight: auto;\n\tmargin: 0;\n\tpadding: 0;\n\n\tcursor: pointer;\n\twhite-space: nowrap;\n\n\tcolor: var(--color-main-text);\n\tborder: 0;\n\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\tbackground-color: transparent;\n\tbox-shadow: none;\n\n\tfont-weight: normal;\n\tline-height: $clickable-area;\n\n\t/* checkbox/radio fixes */\n\t&__radio {\n\t\tposition: absolute;\n\t\ttop: auto;\n\t\tleft: -10000px;\n\n\t\toverflow: hidden;\n\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\t&:focus + .action-radio__label {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\talign-items: center; // align radio to text\n\n\t\twidth: 100%;\n\t\tpadding: 0 !important;\n\t\tpadding-right: $icon-margin !important;\n\n\t\topacity: $opacity_normal;\n\t\t// radio-width is 12px, border is 2\n\t\t// (44 - 14 - 2) / 2 = 14\n\t\t&::before {\n\t\t\tmargin: 0 14px 0 !important;\n\t\t}\n\t}\n\n\t&--disabled {\n\t\t&,\n\t\t.action-radio__label {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t&:not(.action-radio--disabled):hover,\n\t&:not(.action-radio--disabled):focus {\n\t\t.action-radio__label {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},146:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-088cc8ee]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-088cc8ee]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-router[data-v-088cc8ee]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-router[data-v-088cc8ee]:hover,.action-router[data-v-088cc8ee]:focus{opacity:1}.action-router>span[data-v-088cc8ee]{cursor:pointer;white-space:nowrap}.action-router__icon[data-v-088cc8ee]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-router[data-v-088cc8ee] .material-design-icon{width:44px;height:44px;opacity:1}.action-router[data-v-088cc8ee] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-router p[data-v-088cc8ee]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-router__longtext[data-v-088cc8ee]{cursor:pointer;white-space:pre-wrap}.action-router__title[data-v-088cc8ee]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action--disabled[data-v-088cc8ee]{pointer-events:none;opacity:.5}.action--disabled[data-v-088cc8ee]:hover,.action--disabled[data-v-088cc8ee]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-088cc8ee]{opacity:1 !important}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA,CAjGF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},1474:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-a1812d84]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-separator[data-v-a1812d84]{height:0;margin:5px 10px 5px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActionSeparator/NcActionSeparator.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,QAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.action-separator {\n\theight: 0;\n\tmargin: 5px 10px 5px 15px;\n\tborder-bottom: 1px solid var(--color-border-dark);\n\tcursor: default;\n}\n"],sourceRoot:""}]),e.Z=o},2490:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-baabfed8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-baabfed8]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-text[data-v-baabfed8]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-text[data-v-baabfed8]:hover,.action-text[data-v-baabfed8]:focus{opacity:1}.action-text>span[data-v-baabfed8]{cursor:pointer;white-space:nowrap}.action-text__icon[data-v-baabfed8]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-text[data-v-baabfed8] .material-design-icon{width:44px;height:44px;opacity:1}.action-text[data-v-baabfed8] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text p[data-v-baabfed8]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-text__longtext[data-v-baabfed8]{cursor:pointer;white-space:pre-wrap}.action-text__title[data-v-baabfed8]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action--disabled[data-v-baabfed8]{pointer-events:none;opacity:.5}.action--disabled[data-v-baabfed8]:hover,.action--disabled[data-v-baabfed8]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-baabfed8]{opacity:1 !important}.action-text[data-v-baabfed8],.action-text span[data-v-baabfed8]{cursor:default}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss","webpack://./src/components/NcActionText/NcActionText.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,wEAEC,SChCY,CDmCb,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,oDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA,CAjGF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CElCF,iEAEC,cAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n@import '../../assets/action';\n@include action-active;\n@include action-item('text');\n@include action--disabled;\n\n.action-text {\n\t&,\n\tspan {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},6517:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-109a14bf]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-109a14bf]:not(.button-vue),input[data-v-109a14bf]:not([type=range]),textarea[data-v-109a14bf]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-109a14bf]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-109a14bf]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-109a14bf],input[data-v-109a14bf]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-109a14bf]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-109a14bf],textarea[data-v-109a14bf]:not(:disabled):not(.primary):hover,textarea[data-v-109a14bf]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-109a14bf]{border-color:var(--color-primary-element);outline:none}button[data-v-109a14bf]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-109a14bf]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-109a14bf]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-109a14bf]:not(.button-vue):disabled,input[data-v-109a14bf]:not([type=range]):disabled,textarea[data-v-109a14bf]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-109a14bf]:not(.button-vue):required,input[data-v-109a14bf]:not([type=range]):required,textarea[data-v-109a14bf]:required{box-shadow:none}button[data-v-109a14bf]:not(.button-vue):invalid,input[data-v-109a14bf]:not([type=range]):invalid,textarea[data-v-109a14bf]:invalid{border-color:var(--color-error);box-shadow:none !important}button:not(.button-vue).primary[data-v-109a14bf],input:not([type=range]).primary[data-v-109a14bf],textarea.primary[data-v-109a14bf]{cursor:pointer;color:var(--color-primary-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):hover,button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):focus,button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):active,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):hover,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):focus,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):active,textarea.primary[data-v-109a14bf]:not(:disabled):hover,textarea.primary[data-v-109a14bf]:not(:disabled):focus,textarea.primary[data-v-109a14bf]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):active,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):active,textarea.primary[data-v-109a14bf]:not(:disabled):active{color:var(--color-primary-text-dark)}button:not(.button-vue).primary[data-v-109a14bf]:disabled,input:not([type=range]).primary[data-v-109a14bf]:disabled,textarea.primary[data-v-109a14bf]:disabled{cursor:default;color:var(--color-primary-text-dark);background-color:var(--color-primary-element)}li.active[data-v-109a14bf]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-109a14bf]{pointer-events:none;opacity:.5}.action--disabled[data-v-109a14bf]:hover,.action--disabled[data-v-109a14bf]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-109a14bf]{opacity:1 !important}.action-text-editable[data-v-109a14bf]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-text-editable[data-v-109a14bf]:hover,.action-text-editable[data-v-109a14bf]:focus{opacity:1}.action-text-editable>span[data-v-109a14bf]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-109a14bf]{min-width:0;min-height:0;padding:22px 0 22px 44px;background-position:14px center;background-size:16px}.action-text-editable[data-v-109a14bf] .material-design-icon{width:44px;height:44px;opacity:1}.action-text-editable[data-v-109a14bf] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-109a14bf]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-right:14px}.action-text-editable__submit[data-v-109a14bf]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.action-text-editable__label[data-v-109a14bf]{display:flex;align-items:center;justify-content:center;position:absolute;right:15px;bottom:1px;width:36px;height:36px;box-sizing:border-box;margin:0;padding:7px 6px;opacity:1;color:var(--color-text-lighter);border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-109a14bf],.action-text-editable__label *[data-v-109a14bf]{cursor:pointer}.action-text-editable__textarea[data-v-109a14bf]{flex:1 1 auto;min-height:80px;max-height:124px;min-width:176px;width:100% !important;margin:0}.action-text-editable__textarea[data-v-109a14bf]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-109a14bf]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-109a14bf]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-109a14bf]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-109a14bf]:focus{background-color:var(--color-primary-element);color:var(--color-primary-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-109a14bf],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-109a14bf],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-109a14bf]{z-index:2;border-color:var(--color-primary-element);border-left-color:rgba(0,0,0,0)}li:last-child>.action-text-editable[data-v-109a14bf]{margin-bottom:10px}li:first-child>.action-text-editable[data-v-109a14bf]{margin-top:10px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/inputs.scss","webpack://./src/assets/variables.scss","webpack://./src/assets/action.scss","webpack://./src/components/NcActionTextEditable/NcActionTextEditable.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCqBD,4GAGC,QAAA,CACA,eAAA,CAEA,WAAA,CAEA,+BAAA,CACA,yCAAA,CACA,kCAAA,CACA,YAAA,CACA,6CAAA,CAEA,cAAA,CAGC,koBAIC,yCAAA,CACA,YAAA,CAGD,wNACC,6BAAA,CACA,YAAA,CACA,6CAAA,CAIF,uIACC,cAAA,CACA,UCrBiB,CDsBjB,mCAAA,CACA,6CAAA,CAGD,uIACC,eAAA,CAGD,oIACC,+BAAA,CACA,0BAAA,CAID,oIACC,cAAA,CACA,+BAAA,CACA,yCAAA,CACA,6CAAA,CAGC,4kBAGC,+CAAA,CACA,mDAAA,CAED,sMACC,oCAAA,CAIF,+JACC,cAAA,CACA,oCAAA,CAEA,6CAAA,CE3ED,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UDMiB,CCLjB,kFACC,cAAA,CACA,UDGgB,CCDjB,qCACC,oBAAA,CCjCH,uCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UFsBgB,CErBhB,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBFJgB,CEMhB,0FAEC,SFWa,CERd,4CACC,cAAA,CACA,kBAAA,CAGD,6CACC,WAAA,CACA,YAAA,CAGA,wBAAA,CAEA,+BAAA,CACA,oBFpBU,CEuBX,6DACC,UF5Be,CE6Bf,WF7Be,CE8Bf,SFXa,CEab,wFACC,qBAAA,CAKF,6CACC,YAAA,CACA,aAAA,CACA,qBAAA,CAEA,iBAAA,CACA,YAAA,CACA,kBFrCY,CEwCb,+CACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAGD,8CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,iBAAA,CACA,UAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,QAAA,CACA,eAAA,CAEA,SFrDa,CEsDb,+BAAA,CACA,QAAA,CACA,iBAAA,CAEA,6CAAA,CACA,2BAAA,CAEA,8FACC,cAAA,CAKF,iDACC,aAAA,CAEA,eAAA,CACA,gBAAA,CAEA,eAAA,CACA,qBAAA,CACA,QAAA,CAGA,0DACC,cAAA,CAMC,2HACC,mCAAA,CAID,yZAGC,6CAAA,CACA,+BAAA,CAOF,0SAEC,SAAA,CAEA,yCAAA,CACA,+BAAA,CASJ,qDACC,kBAAA,CAID,sDACC,eAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n\n/* Default global values */\nbutton:not(.button-vue),\ninput:not([type='range']),\ntextarea {\n\tmargin: 0;\n\tpadding: 7px 6px;\n\n\tcursor: text;\n\n\tcolor: var(--color-text-lighter);\n\tborder: 1px solid var(--color-border-dark);\n\tborder-radius: var(--border-radius);\n\toutline: none;\n\tbackground-color: var(--color-main-background);\n\n\tfont-size: 13px;\n\n\t&:not(:disabled):not(.primary) {\n\t\t&:hover,\n\t\t&:focus,\n\t\t&.active {\n\t\t\t/* active class used for multiselect */\n\t\t\tborder-color: var(--color-primary-element);\n\t\t\toutline: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcolor: var(--color-text-light);\n\t\t\toutline: none;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\topacity: $opacity_disabled;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&:required {\n\t\tbox-shadow: none;\n\t}\n\n\t&:invalid {\n\t\tborder-color: var(--color-error);\n\t\tbox-shadow: none !important;\n\t}\n\n\t/* Primary action button, use sparingly */\n\t&.primary {\n\t\tcursor: pointer;\n\t\tcolor: var(--color-primary-text);\n\t\tborder-color: var(--color-primary-element);\n\t\tbackground-color: var(--color-primary-element);\n\n\t\t&:not(:disabled) {\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\tborder-color: var(--color-primary-element-light);\n\t\t\t\tbackground-color: var(--color-primary-element-light);\n\t\t\t}\n\t\t\t&:active {\n\t\t\t\tcolor: var(--color-primary-text-dark);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t\tcolor: var(--color-primary-text-dark);\n\t\t\t// opacity is already defined to .5 if disabled\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n@import '../../assets/inputs';\n@import '../../assets/action';\n@include action-active;\n@include action--disabled;\n\n$input-margin: 4px;\n\n.action-text-editable {\n\tdisplay: flex;\n\talign-items: flex-start;\n\n\twidth: 100%;\n\theight: auto;\n\tmargin: 0;\n\tpadding: 0;\n\n\tcursor: pointer;\n\twhite-space: nowrap;\n\n\topacity: $opacity_normal;\n\tcolor: var(--color-main-text);\n\tborder: 0;\n\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\tbackground-color: transparent;\n\tbox-shadow: none;\n\n\tfont-weight: normal;\n\tline-height: $clickable-area;\n\n\t&:hover,\n\t&:focus {\n\t\topacity: $opacity_full;\n\t}\n\n\t& > span {\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t}\n\n\t&__icon {\n\t\tmin-width: 0; /* Overwrite icons*/\n\t\tmin-height: 0;\n\t\t/* Keep padding to define the width to\n\t\t\tassure correct position of a possible text */\n\t\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\n\n\t\tbackground-position: #{$icon-margin} center;\n\t\tbackground-size: $icon-size;\n\t}\n\n\t&:deep(.material-design-icon) {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\topacity: $opacity_full;\n\n\t\t.material-design-icon__svg {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t// Forms & text inputs\n\t&__form {\n\t\tdisplay: flex;\n\t\tflex: 1 1 auto;\n\t\tflex-direction: column;\n\n\t\tposition: relative;\n\t\tmargin: $input-margin 0;\n\t\tpadding-right: $icon-margin;\n\t}\n\n\t&__submit {\n\t\tposition: absolute;\n\t\tleft: -10000px;\n\t\ttop: auto;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\t// bottom-right corner\n\t\tposition: absolute;\n\t\tright: $icon-margin + 1;\n\t\tbottom: 1px;\n\t\twidth: #{$clickable-area - $input-margin * 2};\n\t\theight: #{$clickable-area - $input-margin * 2};\n\t\tbox-sizing: border-box;\n\t\tmargin: 0;\n\t\tpadding: 7px 6px;\n\n\t\topacity: $opacity_full;\n\t\tcolor: var(--color-text-lighter);\n\t\tborder: 0;\n\t\tborder-radius: 50%;\n\t\t/* Avoid background under border */\n\t\tbackground-color: var(--color-main-background);\n\t\tbackground-clip: padding-box;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t/* Inputs inside popover supports text, submit & reset */\n\t&__textarea {\n\t\tflex: 1 1 auto;\n\n\t\tmin-height: #{$clickable-area * 2 - $input-margin * 2}; /* twice the element margin-y */\n\t\tmax-height: #{$clickable-area * 3 - $input-margin * 2}; /* twice the element margin-y */\n\t\t// block width widening\n\t\tmin-width: $clickable-area * 4;\n\t\twidth: 100% !important;\n\t\tmargin: 0;\n\n\t\t// if disabled, change cursor\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t/* only show confirm borders if input is not focused */\n\t\t&:not(:active):not(:hover):not(:focus) {\n\t\t\t&:invalid {\n\t\t\t\t& + .action-text-editable__label {\n\t\t\t\t\tbackground-color: var(--color-error);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:not(:disabled) + .action-text-editable__label {\n\t\t\t\t&:active,\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\t\tcolor: var(--color-primary-text);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:active,\n\t\t&:hover,\n\t\t&:focus {\n\t\t\t&:not(:disabled) + .action-text-editable__label {\n\t\t\t\t/* above previous input */\n\t\t\t\tz-index: 2;\n\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t\tborder-left-color: transparent;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// if a form is the last of the list\n// add the same bottomMargin as the right padding\n// for visual balance\nli:last-child > .action-text-editable {\n\tmargin-bottom: $icon-margin - $input-margin;\n}\n\n// same for first item\nli:first-child > .action-text-editable {\n\tmargin-top: $icon-margin - $input-margin;\n}\n\n"],sourceRoot:""}]),e.Z=o},2810:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-7a49ed06]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-7a49ed06]{display:flex;align-items:center}.action-item[data-v-7a49ed06]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-7a49ed06]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-7a49ed06]{--open-background-color: var(--color-primary-light-hover)}.action-item.action-item--error[data-v-7a49ed06]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-7a49ed06]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-7a49ed06]{--open-background-color: var(--color-success-hover)}.action-item.action-item--open .action-item__menutoggle[data-v-7a49ed06]{opacity:1;background-color:var(--open-background-color)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActions/NcActions.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,kBAAA,CAGD,8BACC,gFAAA,CACA,iBAAA,CACA,oBAAA,CAEA,mDACC,2DAAA,CAGD,qDACC,yDAAA,CAGD,iDACC,iDAAA,CAGD,mDACC,mDAAA,CAGD,mDACC,mDAAA,CAGD,yEACC,SCWa,CDVb,6CAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.action-items {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.action-item {\n\t--open-background-color: var(--color-background-hover, $action-background-hover);\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&.action-item--primary {\n\t\t--open-background-color: var(--color-primary-element-hover);\n\t}\n\n\t&.action-item--secondary {\n\t\t--open-background-color: var(--color-primary-light-hover);\n\t}\n\n\t&.action-item--error {\n\t\t--open-background-color: var(--color-error-hover);\n\t}\n\n\t&.action-item--warning {\n\t\t--open-background-color: var(--color-warning-hover);\n\t}\n\n\t&.action-item--success {\n\t\t--open-background-color: var(--color-success-hover);\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\topacity: $opacity_full;\n\t\tbackground-color: var(--open-background-color);\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},8582:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(100vh - 16px);overflow:auto}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActions/NcActions.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,gFACC,wCAAA,CACA,WAAA,CACA,6BAAA,CACA,aAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n// We overwrote the popover base class, so we can style\n// the popover__inner for actions only.\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner {\n\tborder-radius: var(--border-radius-large);\n\tpadding: 4px;\n\tmax-height: calc(100vh - 16px);\n\toverflow: auto;\n}\n"],sourceRoot:""}]),e.Z=o},1073:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-1aa2c168]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-1aa2c168]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0 !important;background-color:var(--color-main-background);min-width:0;--topbar-margin: 4px}.app-content[data-v-1aa2c168]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-1aa2c168]{position:relative;width:100%;height:100%}.app-content-wrapper--mobile.app-content-wrapper--show-list[data-v-1aa2c168] .app-content-list{display:block}.app-content-wrapper--mobile.app-content-wrapper--show-list[data-v-1aa2c168] .app-content-details{display:none}.app-content-wrapper--mobile.app-content-wrapper--show-details[data-v-1aa2c168] .app-content-list{display:none}.app-content-wrapper--mobile.app-content-wrapper--show-details[data-v-1aa2c168] .app-content-details{display:block}[data-v-1aa2c168] .splitpanes.default-theme .app-content-list{max-width:none}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane{background-color:rgba(0,0,0,0);transition:none}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky;top:var(--header-height)}@media only screen and (max-width: 1024px){[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (max-width: 1024px){[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__splitter{width:9px;margin-left:-5px;background-color:rgba(0,0,0,0);border-left:none}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__splitter:after{display:none}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppContent/NcAppContent.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8BACC,gBAAA,CACA,YAAA,CACA,gBAAA,CACA,WAAA,CAEA,mBAAA,CACA,6CAAA,CACA,WAAA,CAQA,oBAAA,CANA,0DACC,aAAA,CAQF,sCACC,iBAAA,CACA,UAAA,CACA,WAAA,CAMC,gGACC,aAAA,CAED,mGACC,YAAA,CAID,mGACC,YAAA,CAED,sGACC,aAAA,CAMF,8DACC,cAAA,CAGD,8DACC,8BAAA,CACA,eAAA,CAEA,mEACC,eAAA,CACA,eAAA,CACA,wBAAA,CAEA,2CALD,mEAME,YAAA,CAAA,CAIF,sEACC,eAAA,CAEA,2CAHD,sEAIE,cAAA,CAAA,CAKH,kEACC,SAAA,CACA,gBAAA,CACA,8BAAA,CACA,gBAAA,CAEA,iJAEC,YAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.app-content {\n\tposition: initial;\n\tz-index: 1000;\n\tflex-basis: 100vw;\n\theight: 100%;\n\t// Overriding server styles TODO: cleanup!\n\tmargin: 0 !important;\n\tbackground-color: var(--color-main-background);\n\tmin-width: 0;\n\n\t&:not(.app-content--has-list) {\n\t\toverflow: auto;\n\t}\n\n\t// Variables\n\t// the whitespace between the topbar content and its edges\n\t--topbar-margin: #{$topbar-margin};\n}\n\n.app-content-wrapper {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n// Mobile list/details handling\n.app-content-wrapper--mobile {\n\t&.app-content-wrapper--show-list :deep() {\n\t\t.app-content-list {\n\t\t\tdisplay: block;\n\t\t}\n\t\t.app-content-details {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\t&.app-content-wrapper--show-details :deep() {\n\t\t.app-content-list {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.app-content-details {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n:deep(.splitpanes.default-theme) {\n\t.app-content-list {\n\t\tmax-width: none;\n\t}\n\n\t.splitpanes__pane {\n\t\tbackground-color: transparent;\n\t\ttransition: none;\n\n\t\t&-list {\n\t\t\tmin-width: 300px;\n\t\t\tposition: sticky;\n\t\t\ttop: var(--header-height);\n\n\t\t\t@media only screen and (max-width: $breakpoint-mobile) {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t&-details {\n\t\t\toverflow-y: auto;\n\n\t\t\t@media only screen and (max-width: $breakpoint-mobile) {\n\t\t\t\tmin-width: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.splitpanes__splitter {\n\t\twidth: 9px;\n\t\tmargin-left: -5px;\n\t\tbackground-color: transparent;\n\t\tborder-left: none;\n\n\t\t&:before,\n\t\t&:after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},5194:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-45131f51]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-45131f51]{position:fixed;width:44px;height:44px;padding:14px;cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000}.app-details-toggle[data-v-45131f51]:active,.app-details-toggle[data-v-45131f51]:hover,.app-details-toggle[data-v-45131f51]:focus{opacity:1}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppContent/NcAppDetailsToggle.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,qCACC,cAAA,CACA,UCqBgB,CDpBhB,WCoBgB,CDnBhB,YC2Ba,CD1Bb,cAAA,CACA,UAAA,CACA,wBAAA,CACA,6CAAA,CACA,YAAA,CAEA,kIAGC,SAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-details-toggle {\n\tposition: fixed;\n\twidth: $clickable-area;\n\theight: $clickable-area;\n\tpadding: $icon-margin;\n\tcursor: pointer;\n\topacity: .6;\n\ttransform: rotate(180deg);\n\tbackground-color: var(--color-main-background);\n\tz-index: 2000;\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\topacity: 1;\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},9598:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-3ab7cf52]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-3ab7cf52]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;position:relative;top:0;left:0;padding:0px;z-index:1800;height:100%;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--close[data-v-3ab7cf52]{transform:translateX(-100%);position:absolute}.app-navigation>ul[data-v-3ab7cf52],.app-navigation__list[data-v-3ab7cf52]{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:calc(var(--default-grid-baseline, 4px)*2)}@media only screen and (max-width: 1024px){.app-navigation[data-v-3ab7cf52]:not(.app-navigation--close){position:absolute}}@media only screen and (max-width: 512px){.app-navigation[data-v-3ab7cf52]{z-index:1400}}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigation/NcAppNavigation.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,iCAGC,8GAAA,CAEA,yEAAA,CACA,WC6CkB,CD5ClB,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CAEA,YAAA,CACA,WAAA,CACA,qBAAA,CACA,wBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,YAAA,CACA,qBAAA,CACA,WAAA,CACA,aAAA,CACA,gFAAA,CACA,2DAAA,CACA,mDAAA,CAEA,wCACC,2BAAA,CACA,iBAAA,CAID,2EAEC,iBAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,YAAA,CACA,qBAAA,CACA,qCAAA,CACA,iDAAA,CAKF,2CACC,6DACC,iBAAA,CAAA,CAKF,0CACC,iCACC,YAAA,CAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-navigation {\n\t// Set scoped variable override\n\t// Using --color-text-maxcontrast as a fallback evaluates to an invalid value as it references itself in this scope instead of the variable defined higher up\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\n\n\ttransition: transform var(--animation-quick), margin var(--animation-quick);\n\twidth: $navigation-width;\n\tposition: relative;\n\ttop: 0;\n\tleft: 0;\n\tpadding: 0px;\n\t// Above appcontent\n\tz-index: 1800;\n\theight: 100%;\n\tbox-sizing: border-box;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tbackground-color: var(--color-main-background-blur, var(--color-main-background));\n\t-webkit-backdrop-filter: var(--filter-background-blur, none);\n\tbackdrop-filter: var(--filter-background-blur, none);\n\n\t&--close {\n\t\ttransform: translateX(-100%);\n\t\tposition: absolute;\n\t}\n\n\t//list of navigation items\n\t& > ul,\n\t&__list {\n\t\tposition: relative;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: var(--default-grid-baseline, 4px);\n\t\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\n\t}\n}\n\n// When on mobile, we make the navigation slide over the appcontent\n@media only screen and (max-width: $breakpoint-mobile) {\n\t.app-navigation:not(.app-navigation--close) {\n\t\tposition: absolute;\n\t}\n}\n\n// Put the toggle behind appsidebar on small screens\n@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\n\t.app-navigation {\n\t\tz-index: 1400;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},9814:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-b3657dbc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-b3657dbc]{display:flex;justify-content:space-between;padding:0 calc(var(--default-grid-baseline, 4px)*2) 0 calc(var(--default-grid-baseline, 4px)*3)}.app-navigation-caption__title[data-v-b3657dbc]{font-weight:bold;color:var(--color-primary-element);font-size:var(--default-font-size);line-height:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7;box-shadow:none !important;flex-shrink:0}.app-navigation-caption__actions[data-v-b3657dbc]{flex:0 0 44px}.app-navigation-caption[data-v-b3657dbc]:not(:first-child){margin-top:22px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,yCACC,YAAA,CACA,6BAAA,CACA,+FAAA,CAEA,gDACC,gBAAA,CACA,kCAAA,CACA,kCAAA,CACA,gBCae,CDZf,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,UC2Be,CD1Bf,0BAAA,CACA,aAAA,CAGD,kDACC,aAAA,CAKF,2DACC,eAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.app-navigation-caption {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tpadding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 3);\n\n\t&__title {\n\t\tfont-weight: bold;\n\t\tcolor: var(--color-primary-element);\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\topacity: $opacity_normal;\n\t\tbox-shadow: none !important;\n\t\tflex-shrink: 0;\n\t}\n\n\t&__actions {\n\t\tflex: 0 0 $clickable-area;\n\t}\n}\n\n// extra top space if it's not the first item on the list\n.app-navigation-caption:not(:first-child) {\n\tmargin-top: math.div($clickable-area, 2);\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},9710:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-025c90dc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__counter[data-v-025c90dc]{font-size:calc(var(--default-font-size)*.8);overflow:hidden;width:fit-content;max-width:44px;text-align:center;text-overflow:ellipsis;line-height:1em;padding:4px 8px;border-radius:var(--border-radius-pill);background-color:var(--color-background-darker)}.app-navigation-entry__counter--highlighted[data-v-025c90dc]{padding:4px 6px;color:var(--color-primary-text);background-color:var(--color-primary)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationCounter/NcAppNavigationCounter.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gDACC,2CAAA,CACA,eAAA,CACA,iBAAA,CACA,cCmBgB,CDlBhB,iBAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CACA,uCAAA,CACA,+CAAA,CAEA,6DACC,eAAA,CACA,+BAAA,CACA,qCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-navigation-entry__counter {\n\tfont-size: calc(var(--default-font-size) * .8);\n\toverflow: hidden;\n\twidth: fit-content;\n\tmax-width: $clickable-area;\n\ttext-align: center;\n\ttext-overflow: ellipsis;\n\tline-height: 1em;\n\tpadding: 4px 8px;\n\tborder-radius: var(--border-radius-pill);\n\tbackground-color: var(--color-background-darker);\n\n\t&--highlighted {\n\t\tpadding: 4px 6px;\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary);\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},2546:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-2f791f07]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-2f791f07]{display:block;padding:15px}.app-navigation-entry__icon-bullet div[data-v-2f791f07]{width:14px;height:14px;cursor:pointer;transition:background 100ms ease-in-out;border:none;border-radius:50%}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationIconBullet/NcAppNavigationIconBullet.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oDACC,aAAA,CAEA,YAAA,CACA,wDACC,UAAA,CACA,WAAA,CACA,cAAA,CACA,uCAAA,CACA,WAAA,CACA,iBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-navigation-entry__icon-bullet {\n\tdisplay: block;\n\t// there is 2 margins\n\tpadding: $icon-margin + 1px;\n\tdiv {\n\t\twidth: $icon-size - 2px;\n\t\theight: $icon-size - 2px;\n\t\tcursor: pointer;\n\t\ttransition: background 100ms ease-in-out;\n\t\tborder: none;\n\t\tborder-radius: 50%;\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},7185:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-929d604e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-929d604e]{position:absolute;z-index:105;color:var(--color-main-text)}.icon-collapse[data-v-929d604e]:hover{color:var(--color-primary)}.icon-collapse--open[data-v-929d604e]{color:var(--color-main-text)}.icon-collapse--open[data-v-929d604e]:hover{color:var(--color-primary)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,iBAAA,CACA,WAAA,CACA,4BAAA,CAEA,sCACC,0BAAA,CAED,sCACC,4BAAA,CACA,4CACC,0BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.icon-collapse {\n\tposition: absolute;\n\tz-index: 105; // above a, under button\n\tcolor: var(--color-main-text);\n\n\t&:hover{\n\t\tcolor: var(--color-primary);\n\t}\n\t&--open {\n\t\tcolor: var(--color-main-text);\n\t\t&:hover{\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},7879:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:44px;transition:background-color var(--animation-quick) ease-in-out;transition:background-color 200ms ease-in-out;border-radius:var(--border-radius-pill)}.app-navigation-entry-wrapper{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul{display:none}.app-navigation-entry.active{background-color:var(--color-primary-light) !important}.app-navigation-entry:focus-within,.app-navigation-entry:hover{background-color:var(--color-background-hover)}.app-navigation-entry.active .app-navigation-entry__children,.app-navigation-entry:focus-within .app-navigation-entry__children,.app-navigation-entry:hover .app-navigation-entry__children{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions{display:inline-block}.app-navigation-entry.app-navigation-entry--deleted>ul{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link,.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-div{padding-right:14px}.app-navigation-entry .app-navigation-entry-link,.app-navigation-entry .app-navigation-entry-div{z-index:100;display:flex;overflow:hidden;flex:1 1 0;box-sizing:border-box;min-height:44px;padding:0;white-space:nowrap;color:var(--color-main-text);background-repeat:no-repeat;background-position:14px center;background-size:16px 16px;line-height:44px}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon,.app-navigation-entry .app-navigation-entry-div .app-navigation-entry-icon{display:flex;align-items:center;flex:0 0 44px;justify-content:center;width:44px;height:44px;background-size:16px 16px}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__title,.app-navigation-entry .app-navigation-entry-div .app-navigation-entry__title{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}.app-navigation-entry .app-navigation-entry-link .editingContainer,.app-navigation-entry .app-navigation-entry-div .editingContainer{width:calc(100% - 44px);margin:auto}.app-navigation-entry__children{position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%}.app-navigation-entry__children .app-navigation-entry{display:inline-flex;flex-wrap:wrap;padding-left:16px}.app-navigation-entry__deleted{display:inline-flex;flex:1 1 0;padding-left:30px !important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:44px}.app-navigation-entry--collapsible .icon-collapse{visibility:hidden}.app-navigation-entry--collapsible.app-navigation-entry--no-icon a .app-navigation-entry-icon,.app-navigation-entry--collapsible:hover a .app-navigation-entry-icon,.app-navigation-entry--collapsible:focus a .app-navigation-entry-icon{visibility:hidden}.app-navigation-entry--collapsible.app-navigation-entry--no-icon .icon-collapse,.app-navigation-entry--collapsible:hover .icon-collapse,.app-navigation-entry--collapsible:focus .icon-collapse{visibility:visible}.app-navigation-entry--collapsible.app-navigation-entry--no-icon .app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child,.app-navigation-entry--collapsible:hover .app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child,.app-navigation-entry--collapsible:focus .app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child{visibility:visible}.app-navigation-entry__utils{display:flex;min-width:44px;align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper{margin-right:calc(var(--default-grid-baseline)*2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions{display:none}.app-navigation-entry--editing .app-navigation-entry-edit{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted{z-index:250;transform:translateX(0)}.app-navigation-entry--pinned{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned{margin-top:0}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationItem/NcAppNavigationItem.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,sBACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,UAAA,CACA,eCgBgB,CDfhB,8DAAA,CACA,6CAAA,CACA,uCAAA,CAEA,8BACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,UAAA,CAEA,sGAEC,YAAA,CAMF,6BACC,sDAAA,CAED,+DAEC,8CAAA,CAKA,4LACC,6CAAA,CAWD,wdACC,oBAAA,CAKF,uDAEC,YAAA,CAIA,yKACC,kBChCW,CDqCb,iGACC,WAAA,CACA,YAAA,CACA,eAAA,CACA,UAAA,CACA,qBAAA,CACA,eCnDe,CDoDf,SAAA,CACA,kBAAA,CACA,4BAAA,CACA,2BAAA,CACA,+BAAA,CACA,yBAAA,CACA,gBC1De,CD4Df,uJACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,sBAAA,CACA,UCjEc,CDkEd,WClEc,CDmEd,yBAAA,CAGD,2JACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CAGD,qIACC,uBAAA,CACA,WAAA,CAKH,gCACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,qBAAA,CACA,UAAA,CAEA,sDACC,mBAAA,CACA,cAAA,CACA,iBC1FU,CD+FZ,+BACC,mBAAA,CACA,UAAA,CACA,4BAAA,CACA,0EACC,iBAAA,CACA,eAAA,CACA,UAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBC7Ge,CDqHhB,kDACC,iBAAA,CAIA,0OAEC,iBAAA,CAED,gMAEC,kBAAA,CAID,iaACC,kBAAA,CAMH,6BACC,YAAA,CACA,cC7IgB,CD8IhB,kBAAA,CACA,aAAA,CACA,wBAAA,CACA,qHACC,oBAAA,CAGD,oEAEC,iDAAA,CACA,YAAA,CACA,kBAAA,CACA,aAAA,CAGD,wEACC,YAAA,CAOD,0DACC,WAAA,CACA,SAAA,CAMD,6DACC,WAAA,CACA,uBAAA,CAKF,8BACC,OAAA,CACA,eAAA,CAEA,4DACC,YAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-navigation-entry {\n\tposition: relative;\n\tdisplay: flex;\n\tflex-shrink: 0;\n\tflex-wrap: wrap;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmin-height: $clickable-area;\n\ttransition: background-color var(--animation-quick) ease-in-out;\n\ttransition: background-color 200ms ease-in-out;\n\tborder-radius: var(--border-radius-pill);\n\n\t&-wrapper {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-shrink: 0;\n\t\tflex-wrap: wrap;\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\n\t\t&.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul {\n\t\t\t// NO ANIMATE because if not really hidden, we can still tab through it\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// When .active class is applied, change color background of link and utils. The\n\t// !important prevents the focus state to override the active state.\n\t&.active {\n\t\tbackground-color: var(--color-primary-light) !important;\n\t}\n\t&:focus-within,\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\t&.active,\n\t&:focus-within,\n\t&:hover {\n\t\t.app-navigation-entry__children {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\t}\n\n\t// Show the actions on active\n\t&.active,\n\t// Always show the undo button\n\t&.app-navigation-entry--deleted,\n\t&:focus,\n\t&:focus-within,\n\t&:hover {\n\t\t.app-navigation-entry__utils .app-navigation-entry__actions {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* hide deletion/collapse of subitems */\n\t&.app-navigation-entry--deleted > ul {\n\t\t// NO ANIMATE because if not really hidden, we can still tab through it\n\t\tdisplay: none;\n\t}\n\n\t&:not(.app-navigation-entry--editing) {\n\t\t.app-navigation-entry-link, .app-navigation-entry-div {\n\t\t\tpadding-right: $icon-margin;\n\t\t}\n\t}\n\n\t// Main entry link\n\t.app-navigation-entry-link, .app-navigation-entry-div {\n\t\tz-index: 100; /* above the bullet to allow click*/\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\tflex: 1 1 0;\n\t\tbox-sizing: border-box;\n\t\tmin-height: $clickable-area;\n\t\tpadding: 0;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-main-text);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: $icon-margin center;\n\t\tbackground-size: $icon-size $icon-size;\n\t\tline-height: $clickable-area;\n\n\t\t.app-navigation-entry-icon {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 $clickable-area;\n\t\t\tjustify-content: center;\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\tbackground-size: $icon-size $icon-size;\n\t\t}\n\n\t\t.app-navigation-entry__title {\n\t\t\toverflow: hidden;\n\t\t\tmax-width: 100%;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t.editingContainer {\n\t\t\twidth: calc(100% - #{$clickable-area});\n\t\t\tmargin: auto;\n\t\t}\n\t}\n}\n/* Second level nesting for lists */\n.app-navigation-entry__children {\n\tposition: relative;\n\tdisplay: flex;\n\tflex: 0 1 auto;\n\tflex-direction: column;\n\twidth: 100%;\n\n\t.app-navigation-entry {\n\t\tdisplay: inline-flex;\n\t\tflex-wrap: wrap;\n\t\tpadding-left: $icon-size;\n\t}\n}\n\n/* Deleted entries */\n.app-navigation-entry__deleted {\n\tdisplay: inline-flex;\n\tflex: 1 1 0;\n\tpadding-left: $clickable-area - $icon-margin !important;\n\t.app-navigation-entry__deleted-description {\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tflex: 1 1 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tline-height: $clickable-area;\n\t}\n}\n\n/* Makes the icon of the collapsible element disappear\n* When hovering on the root element */\n.app-navigation-entry--collapsible {\n\t//shows the triangle button\n\t.icon-collapse {\n\t\tvisibility: hidden;\n\t}\n\t&.app-navigation-entry--no-icon,\n\t&:hover, &:focus {\n\t\ta .app-navigation-entry-icon {\n\t\t\t// hides the icon\n\t\t\tvisibility: hidden;\n\t\t}\n\t\t.icon-collapse {\n\t\t\t//shows the triangle button\n\t\t\tvisibility: visible;\n\t\t}\n\t\t// prevent the icon of children elements from being hidden\n\t\t// by the previous rule\n\t\t.app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child {\n\t\t\tvisibility: visible;\n\t\t}\n\t}\n}\n\n/* counter and actions */\n.app-navigation-entry__utils {\n\tdisplay: flex;\n\tmin-width: $clickable-area;\n\talign-items: center;\n\tflex: 0 1 auto;\n\tjustify-content: flex-end;\n\t&#{&}--display-actions .action-item.app-navigation-entry__actions {\n\t\tdisplay: inline-block;\n\t}\n\t/* counter */\n\t.app-navigation-entry__counter-wrapper {\n\t\t// Add slightly more space to the right of the counter\n\t\tmargin-right: calc(var(--default-grid-baseline) * 2);\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 0 1 auto;\n\t}\n\t/* actions */\n\t.action-item.app-navigation-entry__actions {\n\t\tdisplay: none;\n\t}\n}\n\n// STATES\n/* editing state */\n.app-navigation-entry--editing {\n\t.app-navigation-entry-edit {\n\t\tz-index: 250;\n\t\topacity: 1;\n\t}\n}\n\n/* deleted state */\n.app-navigation-entry--deleted {\n\t.app-navigation-entry-deleted {\n\t\tz-index: 250;\n\t\ttransform: translateX(0);\n\t}\n}\n\n/* pinned state */\n.app-navigation-entry--pinned {\n\torder: 2;\n\tmargin-top: auto;\n\t// only put a marginTop auto to the first one!\n\t~ .app-navigation-entry--pinned {\n\t\tmargin-top: 0;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},3227:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm{flex:1 0 100%;width:100%}.app-navigation-input-confirm form{display:flex}.app-navigation-input-confirm__input{height:34px;flex:1 1 100%;font-size:100% !important;margin:5px !important;margin-left:-8px !important;padding:7px !important}.app-navigation-input-confirm__input:active,.app-navigation-input-confirm__input:focus,.app-navigation-input-confirm__input:hover{outline:none;background-color:var(--color-main-background);color:var(--color-text-light);border-color:var(--color-primary-element)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationItem/NcInputConfirmCancel.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCFD,8BACC,aAAA,CACA,UAAA,CAEA,mCACC,YAAA,CAGD,qCACC,WAba,CAcb,aAAA,CACA,yBAAA,CACA,qBAAA,CACA,2BAAA,CACA,sBAAA,CAEA,kIAGC,YAAA,CACA,6CAAA,CACA,6BAAA,CACA,yCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n$input-height: 34px;\n$input-padding: 7px;\n$input-margin: 5px;\n\n.app-navigation-input-confirm {\n\tflex: 1 0 100%;\n\twidth: 100%;\n\n\tform {\n\t\tdisplay: flex;\n\t}\n\n\t&__input {\n\t\theight: $input-height;\n\t\tflex: 1 1 100%;\n\t\tfont-size: 100% !important;\n\t\tmargin: $input-margin !important;\n\t\tmargin-left: -1px - $input-padding !important;\n\t\tpadding: $input-padding !important;\n\n\t\t&:active,\n\t\t&:focus,\n\t\t&:hover {\n\t\t\toutline: none;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tcolor: var(--color-text-light);\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},8139:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-5e6c9e57]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-5e6c9e57]{display:block;padding:calc(var(--default-grid-baseline, 4px)*2)}.app-navigation-new button[data-v-5e6c9e57]{width:100%}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationNew/NcAppNavigationNew.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qCACC,aAAA,CACA,iDAAA,CACA,4CACC,UAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n/* 'New' button */\n.app-navigation-new {\n\tdisplay: block;\n\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\n\tbutton {\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},1004:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new-item__title{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-left:7px;font-size:14px}.newItemContainer{width:calc(100% - 44px);margin:auto}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBAAA,CACA,cAAA,CAGD,kBACC,uBAAA,CACA,WAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-navigation-new-item__title {\n\toverflow: hidden;\n\tmax-width: 100%;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tpadding-left: 7px;\n\tfont-size: 14px;\n}\n\n.newItemContainer {\n\twidth: calc(100% - #{$clickable-area});\n\tmargin: auto;\n}\n"],sourceRoot:""}]),e.Z=o},6680:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-b90baef8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#app-settings[data-v-b90baef8]{margin-top:auto;padding:3px}#app-settings__header[data-v-b90baef8]{box-sizing:border-box;margin:0 3px 3px 3px}#app-settings__header .settings-button[data-v-b90baef8]{display:flex;flex:1 1 0;height:44px;width:100%;padding:0;margin:0;background-color:var(--color-main-background);box-shadow:none;border:0;border-radius:var(--border-radius-pill);text-align:left;font-weight:normal;font-size:100%;color:var(--color-main-text);padding-right:14px;line-height:44px}#app-settings__header .settings-button[data-v-b90baef8]:hover,#app-settings__header .settings-button[data-v-b90baef8]:focus{background-color:var(--color-background-hover)}#app-settings__header .settings-button__icon[data-v-b90baef8]{width:44px;height:44px;min-width:44px}#app-settings__header .settings-button__label[data-v-b90baef8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}#app-settings__content[data-v-b90baef8]{display:block;padding:10px;margin-bottom:-3px;max-height:300px;overflow-y:auto;box-sizing:border-box}.slide-up-leave-active[data-v-b90baef8],.slide-up-enter-active[data-v-b90baef8]{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden !important}.slide-up-enter[data-v-b90baef8],.slide-up-leave-to[data-v-b90baef8]{max-height:0 !important;padding:0 10px !important}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,eAAA,CACA,WC0DgC,CDxDhC,uCACC,qBAAA,CACA,oBAAA,CAEA,wDACC,YAAA,CACA,UAAA,CACA,WCYc,CDXd,UAAA,CACA,SAAA,CACA,QAAA,CACA,6CAAA,CACA,eAAA,CACA,QAAA,CACA,uCAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBCDc,CDGd,4HAEC,8CAAA,CAGD,8DACC,UCTa,CDUb,WCVa,CDWb,cCXa,CDad,+DACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CAKH,wCACC,aAAA,CACA,YAAA,CAGA,kBAAA,CAGA,gBAAA,CACA,eAAA,CACA,qBAAA,CAIF,gFAEC,yCAAA,CACA,sCAAA,CACA,4BAAA,CAGD,qEAEC,uBAAA,CACA,yBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n#app-settings {\n\tmargin-top: auto;\n\tpadding: $app-navigation-settings-margin;\n\n\t&__header {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\n\n\t\t.settings-button {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 0;\n\t\t\theight: $clickable-area;\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbox-shadow: none;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\ttext-align: left;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 100%;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tpadding-right: 14px;\n\t\t\tline-height: $clickable-area;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&__icon {\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmin-width: $clickable-area;\n\t\t\t}\n\t\t\t&__label {\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: block;\n\t\tpadding: 10px;\n\n\t\t/* prevent scrolled contents from stopping too early */\n\t\tmargin-bottom: -$app-navigation-settings-margin;\n\n\t\t/* restrict height of settings and make scrollable */\n\t\tmax-height: 300px;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.slide-up-leave-active,\n.slide-up-enter-active {\n\ttransition-duration: var(--animation-slow);\n\ttransition-property: max-height, padding;\n\toverflow-y: hidden !important;\n}\n\n.slide-up-enter,\n.slide-up-leave-to {\n\tmax-height: 0 !important;\n\tpadding: 0 10px !important;\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},373:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-7babc9e6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button.app-navigation-toggle[data-v-7babc9e6]{position:absolute;top:4px;right:-4px;margin-right:-44px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8CACC,iBAAA,CACA,OCsDe,CDrDf,UAAA,CACA,kBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\nbutton.app-navigation-toggle {\n\tposition: absolute;\n\ttop: $topbar-margin;\n\tright: - $topbar-margin;\n\tmargin-right: - $clickable-area;\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},322:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-2ba1c378]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-modal[data-v-2ba1c378] .modal-wrapper .modal-container{display:flex;overflow:hidden}.app-settings[data-v-2ba1c378]{width:100%;display:flex;flex-direction:column;min-width:0}.app-settings__title[data-v-2ba1c378]{min-height:44px;height:44px;line-height:44px;padding-top:4px;text-align:center}.app-settings__wrapper[data-v-2ba1c378]{display:flex;width:100%;overflow:hidden;height:100%;position:relative}.app-settings__navigation[data-v-2ba1c378]{min-width:200px;margin-right:20px;overflow-x:hidden;overflow-y:auto;position:relative;height:100%}.app-settings__content[data-v-2ba1c378]{max-width:100vw;overflow-y:auto;overflow-x:hidden;padding:24px;width:100%}.navigation-list[data-v-2ba1c378]{height:100%;box-sizing:border-box;overflow-y:auto;padding:12px}.navigation-list__link[data-v-2ba1c378]{display:block;font-size:16px;height:44px;margin:4px 0;line-height:44px;border-radius:var(--border-radius-pill);font-weight:bold;padding:0 20px;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:rgba(0,0,0,0);border:none}.navigation-list__link[data-v-2ba1c378]:hover,.navigation-list__link[data-v-2ba1c378]:focus{background-color:var(--color-background-hover)}.navigation-list__link--active[data-v-2ba1c378]{background-color:var(--color-primary-light) !important}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qEACC,YAAA,CACA,eAAA,CAGD,+BACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,WAAA,CACA,sCACC,eCWe,CDVf,WCUe,CDTf,gBCSe,CDRf,eAAA,CACA,iBAAA,CAED,wCACC,YAAA,CACA,UAAA,CACA,eAAA,CACA,WAAA,CACA,iBAAA,CAED,2CACC,eAAA,CACA,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,WAAA,CAED,wCACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAIF,kCACC,WAAA,CACA,qBAAA,CACA,eAAA,CACA,YAAA,CACA,wCACC,aAAA,CACA,cAAA,CACA,WC3Be,CD4Bf,YAAA,CACA,gBC7Be,CD8Bf,uCAAA,CACA,gBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,8BAAA,CACA,WAAA,CACA,4FAEC,8CAAA,CAED,gDACC,sDAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.app-settings-modal :deep(.modal-wrapper .modal-container) {\n\tdisplay: flex;\n\toverflow: hidden;\n}\n\n.app-settings {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-width: 0;\n\t&__title {\n\t\tmin-height: $clickable-area;\n\t\theight: $clickable-area;\n\t\tline-height: $clickable-area;\n\t\tpadding-top: 4px; // Same as the close button top spacing\n\t\ttext-align: center;\n\t}\n\t&__wrapper {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\toverflow: hidden;\n\t\theight: 100%;\n\t\tposition: relative;\n\t}\n\t&__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t\theight: 100%;\n\t}\n\t&__content {\n\t\tmax-width: 100vw;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tpadding: 24px;\n\t\twidth: 100%;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\t&__link {\n\t\tdisplay: block;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-light) !important;\n\t\t}\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},2746:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-600605cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-600605cc]{margin-bottom:80px}.app-settings-section__title[data-v-600605cc]{font-size:20px;margin:0;padding:20px 0;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppSettingsSection/NcAppSettingsSection.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,uCACC,kBAAA,CACA,8CACC,cAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-settings-section {\n\tmargin-bottom: 80px;\n\t&__title {\n\t\tfont-size: 20px;\n\t\tmargin: 0;\n\t\tpadding: 20px 0;\n\t\tfont-weight: bold;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},9253:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-a563487c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-a563487c]{position:-webkit-sticky;position:sticky;z-index:1500;top:var(--header-height);right:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;width:27vw;min-width:300px;max-width:500px;height:100%;border-left:1px solid var(--color-border);background:var(--color-main-background)}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]{position:absolute;z-index:100;top:6px;right:6px;width:44px;height:44px;opacity:.7;border-radius:22px}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]:hover,.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]:active,.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]:focus{opacity:1;background-color:rgba(127,127,127,.25)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-a563487c]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-a563487c]{z-index:2;width:70px;height:70px;margin:9px;border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-a563487c]{padding-left:0;flex:1 1 auto;min-width:0;padding-right:94px;padding-top:10px}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-a563487c]{padding-right:50px}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-a563487c]{z-index:3;position:absolute;top:9px;left:-44px;gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-a563487c]{top:6px;right:50px;background-color:rgba(0,0,0,0);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-a563487c]{position:absolute;top:6px;right:50px}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-a563487c]{padding-right:94px}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-a563487c]{padding-right:50px}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-a563487c]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-a563487c]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-a563487c]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-a563487c]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:18px 6px 18px 9px;gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-a563487c]{padding-left:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__maintitle-form[data-v-a563487c],.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__maintitle-form[data-v-a563487c]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__subtitle[data-v-a563487c]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-a563487c]{display:flex;height:44px;width:44px;justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-a563487c]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-a563487c]:hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container[data-v-a563487c]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container[data-v-a563487c]{display:flex;align-items:center;min-height:44px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle[data-v-a563487c]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle[data-v-a563487c] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle-form[data-v-a563487c]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle-form input.app-sidebar-header__maintitle-input[data-v-a563487c]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:bold}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__menu[data-v-a563487c]{height:44px;width:44px;border-radius:22px;background-color:rgba(127,127,127,.25);margin-left:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle[data-v-a563487c],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-a563487c]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-a563487c]{padding:0;opacity:.7;font-size:var(--default-font-size)}.app-sidebar .app-sidebar-header__description[data-v-a563487c]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width: 512px){.app-sidebar[data-v-a563487c]{width:100vw}}.slide-right-leave-active[data-v-a563487c],.slide-right-enter-active[data-v-a563487c]{transition-duration:var(--animation-quick);transition-property:max-width,min-width}.slide-right-enter-to[data-v-a563487c],.slide-right-leave[data-v-a563487c]{min-width:300px;max-width:500px}.slide-right-enter[data-v-a563487c],.slide-right-leave-to[data-v-a563487c]{min-width:0 !important;max-width:0 !important}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppSidebar/NcAppSidebar.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCYD,8BACC,uBAAA,CACA,eAAA,CACA,YAAA,CACA,wBAAA,CACA,OAAA,CACA,YAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,aAAA,CACA,UAAA,CACA,eA9BmB,CA+BnB,eA9BmB,CA+BnB,WAAA,CACA,yCAAA,CACA,uCAAA,CAGC,sEACC,iBAAA,CACA,WAAA,CACA,OA5BmB,CA6BnB,SA7BmB,CA8BnB,UCnBc,CDoBd,WCpBc,CDqBd,UCHc,CDId,kBAAA,CACA,qOAGC,SCPW,CDQX,sCCJsB,CDUvB,qHACC,kBAAA,CAEA,iJACC,SAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,aAAA,CAED,+IACC,cAAA,CACA,aAAA,CACA,WAAA,CACA,kBAAA,CACA,gBApE2B,CAsE3B,yLACC,kBAAA,CAGD,qLACC,SAAA,CACA,iBAAA,CACA,OAAA,CACA,UAAA,CACA,KAAA,CAED,yKACC,OA1EgB,CA2EhB,UAAA,CACA,8BAAA,CACA,iBAAA,CASH,kHACC,iBAAA,CACA,OAxFkB,CAyFlB,UAAA,CAGD,kHACC,kBAAA,CAEA,4JACC,kBAAA,CAMH,4EACC,YAAA,CACA,qBAAA,CAID,0DACC,UAAA,CACA,YAAA,CACA,gBAAA,CACA,2BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uEACC,cAAA,CAKF,wDACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,kBAAA,CACA,yBAAA,CACA,SAAA,CAGA,8EACC,gBAAA,CAGD,2NAEC,eAAA,CACA,kBAAA,CAGD,+GACC,eAAA,CAGD,8FACC,YAAA,CACA,WCxIa,CDyIb,UCzIa,CD0Ib,sBAAA,CACA,aAAA,CAEA,wHAEC,eAAA,CACA,8HACC,eAAA,CACA,8CAAA,CAMH,6FACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CAEA,sIACC,YAAA,CACA,kBAAA,CACA,eClKY,CDqKZ,qKACC,SAAA,CACA,eAAA,CACA,cAAA,CACA,gBAxLc,CA2Ld,gLACC,cAAA,CACA,yBAAA,CACA,QAAA,CAIF,0KACC,YAAA,CACA,aAAA,CACA,kBAAA,CAEA,oNACC,aAAA,CACA,QAAA,CACA,WA7Mc,CA8Md,cAAA,CACA,gBAAA,CAKF,gKACC,WCnMW,CDoMX,UCpMW,CDqMX,kBAAA,CACA,sCC/KoB,CDgLpB,eAAA,CAKF,uPAEC,eAAA,CACA,UAAA,CACA,QAAA,CACA,kBAAA,CACA,sBAAA,CAID,2HACC,SAAA,CACA,UCtMY,CDuMZ,kCAAA,CAMH,+DACC,YAAA,CACA,kBAAA,CACA,aAAA,CAMH,0CACC,8BACC,WAAA,CAAA,CAIF,sFAEC,0CAAA,CACA,uCAAA,CAGD,2EAEC,eA7QmB,CA8QnB,eA7QmB,CAgRpB,2EAEC,sBAAA,CACA,sBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n$sidebar-min-width: 300px;\n$sidebar-max-width: 500px;\n\n$desc-vertical-padding: 18px;\n$desc-vertical-padding-compact: 10px;\n$desc-input-padding: 7px;\n\n// title and subtitle\n$desc-title-height: 30px;\n$desc-subtitle-height: 22px;\n$desc-height: $desc-title-height + $desc-subtitle-height;\n\n$top-buttons-spacing: 6px;\n\n/*\n\tSidebar: to be used within #content\n\tapp-content will be shrinked properly\n*/\n.app-sidebar {\n\tposition: -webkit-sticky; // Safari support\n\tposition: sticky;\n\tz-index: 1500;\n\ttop: var(--header-height);\n\tright: 0;\n\tdisplay: flex;\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tflex-direction: column;\n\tflex-shrink: 0;\n\twidth: 27vw;\n\tmin-width: $sidebar-min-width;\n\tmax-width: $sidebar-max-width;\n\theight: 100%;\n\tborder-left: 1px solid var(--color-border);\n\tbackground: var(--color-main-background);\n\n\t.app-sidebar-header {\n\t\t> .app-sidebar__close {\n\t\t\tposition: absolute;\n\t\t\tz-index: 100;\n\t\t\ttop: $top-buttons-spacing;\n\t\t\tright: $top-buttons-spacing;\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_normal;\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t&:hover,\n\t\t\t&:active,\n\t\t\t&:focus {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\tbackground-color: $action-background-hover;\n\t\t\t}\n\t\t}\n\n\t\t// Compact mode only affects a sidebar with a figure\n\t\t&--compact.app-sidebar-header--with-figure {\n\t\t\t.app-sidebar-header__info {\n\t\t\t\tflex-direction: row;\n\n\t\t\t\t.app-sidebar-header__figure {\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\twidth: $desc-height + $desc-vertical-padding;\n\t\t\t\t\theight: $desc-height + $desc-vertical-padding;\n\t\t\t\t\tmargin: math.div($desc-vertical-padding, 2);\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tflex: 0 0 auto;\n\t\t\t\t}\n\t\t\t\t.app-sidebar-header__desc {\n\t\t\t\t\tpadding-left: 0;\n\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\tmin-width: 0;\n\t\t\t\t\tpadding-right: 2 * $clickable-area + $top-buttons-spacing;\n\t\t\t\t\tpadding-top: $desc-vertical-padding-compact;\n\n\t\t\t\t\t&.app-sidebar-header__desc--without-actions {\n\t\t\t\t\t\tpadding-right: #{$clickable-area + $top-buttons-spacing};\n\t\t\t\t\t}\n\n\t\t\t\t\t.app-sidebar-header__tertiary-actions {\n\t\t\t\t\t\tz-index: 3; // above star\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: math.div($desc-vertical-padding, 2);\n\t\t\t\t\t\tleft: -1 * $clickable-area;\n\t\t\t\t\t\tgap: 0; // override gap\n\t\t\t\t\t}\n\t\t\t\t\t.app-sidebar-header__menu {\n\t\t\t\t\t\ttop: $top-buttons-spacing;\n\t\t\t\t\t\tright: $clickable-area + $top-buttons-spacing; // left of the close button\n\t\t\t\t\t\tbackground-color: transparent;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// sidebar without figure\n\t\t&:not(.app-sidebar-header--with-figure) {\n\t\t\t// align the menu with the close button\n\t\t\t.app-sidebar-header__menu {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: $top-buttons-spacing;\n\t\t\t\tright: $top-buttons-spacing + $clickable-area;\n\t\t\t}\n\t\t\t// increase the padding to not overlap the menu\n\t\t\t.app-sidebar-header__desc {\n\t\t\t\tpadding-right: #{$clickable-area * 2 + $top-buttons-spacing};\n\n\t\t\t\t&.app-sidebar-header__desc--without-actions {\n\t\t\t\t\tpadding-right: #{$clickable-area + $top-buttons-spacing};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// the container with the figure and the description\n\t\t.app-sidebar-header__info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t// header background\n\t\t&__figure {\n\t\t\twidth: 100%;\n\t\t\theight: 250px;\n\t\t\tmax-height: 250px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: contain;\n\t\t\t&--with-action {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// description\n\t\t&__desc {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tpadding: #{$desc-vertical-padding} #{$top-buttons-spacing} #{$desc-vertical-padding} #{math.div($desc-vertical-padding, 2)};\n\t\t\tgap: 0 4px;\n\n\t\t\t// custom overrides\n\t\t\t&--with-tertiary-action {\n\t\t\t\tpadding-left: 6px;\n\t\t\t}\n\n\t\t\t&--editable .app-sidebar-header__maintitle-form,\n\t\t\t&--with-subtitle--editable .app-sidebar-header__maintitle-form {\n\t\t\t\tmargin-top: -2px;\n\t\t\t\tmargin-bottom: -2px;\n\t\t\t}\n\n\t\t\t&--with-subtitle--editable .app-sidebar-header__subtitle {\n\t\t\t\tmargin-top: -2px;\n\t\t\t}\n\n\t\t\t.app-sidebar-header__tertiary-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\theight: $clickable-area;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\tjustify-content: center;\n\t\t\t\tflex: 0 0 auto;\n\n\t\t\t\t.app-sidebar-header__star {\n\t\t\t\t\t// Override default Button component styles\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// titles\n\t\t\t.app-sidebar-header__title-container {\n\t\t\t\tflex: 1 1 auto;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: center;\n\t\t\t\tmin-width: 0;\n\n\t\t\t\t.app-sidebar-header__maintitle-container {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tmin-height: $clickable-area;\n\n\t\t\t\t\t// main title\n\t\t\t\t\t.app-sidebar-header__maintitle {\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tmin-height: 30px;\n\t\t\t\t\t\tfont-size: 20px;\n\t\t\t\t\t\tline-height: $desc-title-height;\n\n\t\t\t\t\t\t// Needs 'deep' as the link is generated by the linkify directive\n\t\t\t\t\t\t&:deep(.linkified) {\n\t\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.app-sidebar-header__maintitle-form {\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\t\talign-items: center;\n\n\t\t\t\t\t\tinput.app-sidebar-header__maintitle-input {\n\t\t\t\t\t\t\tflex: 1 1 auto;\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\tpadding: $desc-input-padding;\n\t\t\t\t\t\t\tfont-size: 20px;\n\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// main menu\n\t\t\t\t\t.app-sidebar-header__menu {\n\t\t\t\t\t\theight: $clickable-area;\n\t\t\t\t\t\twidth: $clickable-area;\n\t\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\t\tbackground-color: $action-background-hover;\n\t\t\t\t\t\tmargin-left: 5px;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// shared between main and subtitle\n\t\t\t\t.app-sidebar-header__maintitle,\n\t\t\t\t.app-sidebar-header__subtitle {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\t}\n\n\t\t\t\t// subtitle\n\t\t\t\t.app-sidebar-header__subtitle {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\topacity: $opacity_normal;\n\t\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// sidebar description slot\n\t\t&__description {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin: 0 10px;\n\t\t}\n\t}\n}\n\n// Make the sidebar full-width on small screens\n@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\n\t.app-sidebar {\n\t\twidth: 100vw;\n\t}\n}\n\n.slide-right-leave-active,\n.slide-right-enter-active {\n\ttransition-duration: var(--animation-quick);\n\ttransition-property: max-width, min-width;\n}\n\n.slide-right-enter-to,\n.slide-right-leave {\n\tmin-width: $sidebar-min-width;\n\tmax-width: $sidebar-max-width;\n}\n\n.slide-right-enter,\n.slide-right-leave-to {\n\tmin-width: 0 !important;\n\tmax-width: 0 !important;\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},269:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-header__description button,.app-sidebar-header__description .button,.app-sidebar-header__description input[type=button],.app-sidebar-header__description input[type=submit],.app-sidebar-header__description input[type=reset]{padding:6px 22px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppSidebar/NcAppSidebar.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCHA,4OAIC,gBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n// ! slots specific designs, cannot be scoped\n// if any button inside the description slot, increase visual padding\n.app-sidebar-header__description {\n\tbutton, .button,\n\tinput[type='button'],\n\tinput[type='submit'],\n\tinput[type='reset'] {\n\t\tpadding: 6px 22px;\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},1091:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-7339f406]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-7339f406]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-7339f406]{margin-top:10px}.app-sidebar-tabs__nav ul[data-v-7339f406]{display:flex;justify-content:stretch}.app-sidebar-tabs__tab[data-v-7339f406]{display:block;flex:1 1;min-width:0;text-align:center}.app-sidebar-tabs__tab a[data-v-7339f406]{position:relative;display:block;overflow:hidden;padding:25px 5px 5px 5px;transition:color var(--animation-quick),opacity var(--animation-quick),border-color var(--animation-quick);text-align:center;white-space:nowrap;text-overflow:ellipsis;opacity:.7;color:var(--color-main-text);border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__tab a[data-v-7339f406]:hover,.app-sidebar-tabs__tab a[data-v-7339f406]:focus,.app-sidebar-tabs__tab a[data-v-7339f406]:active,.app-sidebar-tabs__tab a.active[data-v-7339f406]{opacity:1}.app-sidebar-tabs__tab a:hover .app-sidebar-tabs__tab-icon[data-v-7339f406],.app-sidebar-tabs__tab a:focus .app-sidebar-tabs__tab-icon[data-v-7339f406],.app-sidebar-tabs__tab a:active .app-sidebar-tabs__tab-icon[data-v-7339f406],.app-sidebar-tabs__tab a.active .app-sidebar-tabs__tab-icon[data-v-7339f406]{opacity:1}.app-sidebar-tabs__tab a[data-v-7339f406]:not(.active):hover,.app-sidebar-tabs__tab a[data-v-7339f406]:not(.active):focus{border-bottom-color:var(--color-background-darker);box-shadow:inset 0 -1px 0 var(--color-background-darker)}.app-sidebar-tabs__tab a.active[data-v-7339f406]{color:var(--color-text-light);border-bottom-color:var(--color-text-light);box-shadow:inset 0 -1px 0 var(--color-text-light);font-weight:bold}.app-sidebar-tabs__tab a[data-v-7339f406]:focus{border-bottom-color:var(--color-primary-element);box-shadow:inset 0 -1px 0 var(--color-primary-element)}.app-sidebar-tabs__tab-icon[data-v-7339f406]{position:absolute;top:0;left:0;width:100%;height:25px;transition:opacity var(--animation-quick);opacity:.7}.app-sidebar-tabs__tab-icon>span[data-v-7339f406]{display:flex;align-items:center;justify-content:center;background-size:16px}.app-sidebar-tabs__content[data-v-7339f406]{position:relative;min-height:0;height:100%}.app-sidebar-tabs__content--multiple[data-v-7339f406]>:not(section){display:none}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppSidebar/NcAppSidebarTabs.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,qBAAA,CACA,YAAA,CACA,aAAA,CAEA,wCACC,eAAA,CACA,2CACC,YAAA,CACA,uBAAA,CAGF,wCACC,aAAA,CACA,QAAA,CACA,WAAA,CACA,iBAAA,CACA,0CACC,iBAAA,CACA,aAAA,CACA,eAAA,CACA,wBAAA,CACA,0GAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UCcc,CDbd,4BAAA,CACA,2CAAA,CAEA,kMAIC,SCOW,CDNX,kTACC,SCKU,CDFZ,0HAEC,kDAAA,CACA,wDAAA,CAED,iDACC,6BAAA,CACA,2CAAA,CACA,iDAAA,CACA,gBAAA,CAKD,gDACC,gDAAA,CACA,sDAAA,CAKH,6CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,yCAAA,CACA,UC3Be,CD6Bf,kDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CAIF,4CACC,iBAAA,CAEA,YAAA,CACA,WAAA,CAGA,oEACC,YAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-sidebar-tabs {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 0;\n\tflex: 1 1 100%;\n\n\t&__nav {\n\t\tmargin-top: 10px;\n\t\tul {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: stretch;\n\t\t}\n\t}\n\t&__tab {\n\t\tdisplay: block;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\ttext-align: center;\n\t\ta {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\toverflow: hidden;\n\t\t\tpadding: 25px 5px 5px 5px;\n\t\t\ttransition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);\n\t\t\ttext-align: center;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\topacity: $opacity_normal;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tborder-bottom: 1px solid var(--color-border);\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active,\n\t\t\t&.active {\n\t\t\t\topacity: $opacity_full;\n\t\t\t\t.app-sidebar-tabs__tab-icon {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&:not(.active):hover,\n\t\t\t&:not(.active):focus {\n\t\t\t\tborder-bottom-color: var(--color-background-darker);\n\t\t\t\tbox-shadow: inset 0 -1px 0 var(--color-background-darker);\n\t\t\t}\n\t\t\t&.active {\n\t\t\t\tcolor: var(--color-text-light);\n\t\t\t\tborder-bottom-color: var(--color-text-light);\n\t\t\t\tbox-shadow: inset 0 -1px 0 var(--color-text-light);\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\t\t\t// differentiate the two for accessibility purpose\n\t\t\t// make sure the user knows she's focusing the navigation\n\t\t\t// and can use arrows/home/pageup...\n\t\t\t&:focus {\n\t\t\t\tborder-bottom-color: var(--color-primary-element);\n\t\t\t\tbox-shadow: inset 0 -1px 0 var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n\n\t&__tab-icon {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 25px;\n\t\ttransition: opacity var(--animation-quick);\n\t\topacity: $opacity_normal;\n\n\t\t& > span {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbackground-size: 16px;\n\t\t}\n\t}\n\n\t&__content {\n\t\tposition: relative;\n\t\t// take full available height\n\t\tmin-height: 0;\n\t\theight: 100%;\n\t\t// force the use of the tab component if more than one tab\n\t\t// you can just put raw content if you don't use tabs\n\t\t&--multiple > :not(section) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},9957:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-268dd44a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-268dd44a]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-268dd44a]:focus{border-color:var(--color-primary);box-shadow:0 0 .2em var(--color-primary);outline:0}.app-sidebar__tab--active[data-v-268dd44a]{display:block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAppSidebarTab/NcAppSidebarTab.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,YAAA,CACA,eAAA,CACA,eAAA,CACA,WAAA,CACA,aAAA,CAEA,yCACC,iCAAA,CACA,wCAAA,CACA,SAAA,CAGD,2CACC,aAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.app-sidebar__tab {\n\tdisplay: none;\n\tpadding: 10px;\n\tmin-height: 100%; // fill available height\n\tmax-height: 100%; // scroll inside\n\theight: 100%;\n\toverflow: auto;\n\n\t&:focus {\n\t\tborder-color: var(--color-primary);\n\t\tbox-shadow: 0 0 0.2em var(--color-primary);\n\t\toutline: 0;\n\t}\n\n\t&--active {\n\t\tdisplay: block;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},6666:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(3423),n.b),c=new URL(n(2605),n.b),d=new URL(n(7127),n.b),u=o()(i()),p=l()(A),m=l()(c),h=l()(d);u.push([t.id,".material-design-icon[data-v-09226ec4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-09226ec4]{position:relative;display:inline-block;width:var(--size);height:var(--size)}.avatardiv--unknown[data-v-09226ec4]{position:relative;background-color:var(--color-main-background)}.avatardiv[data-v-09226ec4]:not(.avatardiv--unknown){background-color:var(--color-main-background) !important;box-shadow:0 0 5px rgba(0,0,0,.05) inset}.avatardiv--with-menu[data-v-09226ec4]{cursor:pointer}.avatardiv--with-menu[data-v-09226ec4] .v-popper{position:absolute;top:0;left:0}.avatardiv--with-menu .icon-more[data-v-09226ec4]{cursor:pointer;opacity:0}.avatardiv--with-menu:focus .icon-more[data-v-09226ec4],.avatardiv--with-menu:hover .icon-more[data-v-09226ec4]{opacity:1}.avatardiv--with-menu:focus img[data-v-09226ec4],.avatardiv--with-menu:hover img[data-v-09226ec4]{opacity:.3}.avatardiv--with-menu .icon-more[data-v-09226ec4],.avatardiv--with-menu img[data-v-09226ec4]{transition:opacity var(--animation-quick)}.avatardiv .avatardiv__initials-wrapper[data-v-09226ec4]{height:var(--size);width:var(--size);background-color:var(--color-main-background);border-radius:50%}.avatardiv .avatardiv__initials-wrapper .unknown[data-v-09226ec4]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal}.avatardiv img[data-v-09226ec4]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-09226ec4]{width:var(--size);height:var(--size)}.avatardiv .avatardiv__user-status[data-v-09226ec4]{position:absolute;right:-4px;bottom:-4px;max-height:18px;max-width:18px;height:40%;width:40%;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);background-repeat:no-repeat;background-size:16px;background-position:center;border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-09226ec4]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-09226ec4]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-09226ec4]{background-image:url("+p+")}.avatardiv .avatardiv__user-status--dnd[data-v-09226ec4]{background-image:url("+m+");background-color:#fff}.avatardiv .avatardiv__user-status--away[data-v-09226ec4]{background-image:url("+h+")}.avatardiv .avatardiv__user-status--icon[data-v-09226ec4]{border:none;background-color:rgba(0,0,0,0)}.avatardiv .popovermenu-wrapper[data-v-09226ec4]{position:relative;display:inline-block}.avatar-class-icon[data-v-09226ec4]{border-radius:50%;background-color:var(--color-background-darker);height:100%}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcAvatar/NcAvatar.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,4BACC,iBAAA,CACA,oBAAA,CACA,iBAAA,CACA,kBAAA,CAEA,qCACC,iBAAA,CACA,6CAAA,CAGD,qDAEC,wDAAA,CACA,wCAAA,CAGD,uCACC,cAAA,CACA,iDACC,iBAAA,CACA,KAAA,CACA,MAAA,CAED,kDACC,cAAA,CACA,SAAA,CAIA,gHACC,SAAA,CAED,kGACC,UAAA,CAGF,6FAEC,yCAAA,CAIF,yDACC,kBAAA,CACA,iBAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kEACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,iBAAA,CACA,kBAAA,CAIF,gCAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CAGD,kDACC,iBAAA,CACA,kBAAA,CAGD,oDACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,cAAA,CACA,UAAA,CACA,SAAA,CACA,gBAAA,CACA,kCAAA,CACA,6CAAA,CACA,6CAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CACA,iBAAA,CAEA,gEACC,0CAAA,CACA,8CAAA,CAED,iEACC,uCAAA,CACA,2CAAA,CAGD,4DACC,wDAAA,CAED,yDACC,wDAAA,CACA,qBAAA,CAED,0DACC,wDAAA,CAED,0DACC,WAAA,CACA,8BAAA,CAIF,iDACC,iBAAA,CACA,oBAAA,CAIF,oCACC,iBAAA,CACA,+CAAA,CACA,WAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: var(--size);\n\theight: var(--size);\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-main-background);\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White/black background for avatars with transparency\n\t\tbackground-color: var(--color-main-background) !important;\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t:deep(.v-popper) {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t}\n\t\t.icon-more {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t}\n\t\t&:focus,\n\t\t&:hover {\n\t\t\t.icon-more {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t.icon-more,\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t}\n\n\t.avatardiv__initials-wrapper {\n\t\theight: var(--size);\n\t\twidth: var(--size);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 50%;\n\n\t\t.unknown {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.material-design-icon {\n\t\twidth: var(--size);\n\t\theight: var(--size);\n\t}\n\n\t.avatardiv__user-status {\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\tmax-height: 18px;\n\t\tmax-width: 18px;\n\t\theight: 40%;\n\t\twidth: 40%;\n\t\tline-height: 15px;\n\t\tfont-size: var(--default-font-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 16px;\n\t\tbackground-position: center;\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-light);\n\t\t\tbackground-color: var(--color-primary-light);\n\t\t}\n\n\t\t&--online{\n\t\t\tbackground-image: url('../../assets/status-icons/user-status-online.svg');\n\t\t}\n\t\t&--dnd{\n\t\t\tbackground-image: url('../../assets/status-icons/user-status-dnd.svg');\n\t\t\tbackground-color: #ffffff;\n\t\t}\n\t\t&--away{\n\t\t\tbackground-image: url('../../assets/status-icons/user-status-away.svg');\n\t\t}\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n}\n\n.avatar-class-icon {\n\tborder-radius: 50%;\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n"],sourceRoot:""}]),e.Z=u},4327:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-1519484b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-crumb[data-v-1519484b]{background-image:none;display:inline-flex;height:44px;padding:0}.vue-crumb[data-v-1519484b]:last-child{max-width:210px;font-weight:bold}.vue-crumb:last-child>a[data-v-1519484b],.vue-crumb:last-child>a[data-v-1519484b] *{cursor:default}.vue-crumb:last-child .vue-crumb__separator[data-v-1519484b]{display:none}.vue-crumb:not(:last-child)>a[data-v-1519484b]:hover,.vue-crumb:not(:last-child)>a[data-v-1519484b]:focus{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb--hidden[data-v-1519484b]{display:none}.vue-crumb.vue-crumb--hovered>a[data-v-1519484b]{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb__separator[data-v-1519484b]{padding:0;color:var(--color-text-maxcontrast)}.vue-crumb>a[data-v-1519484b]{overflow:hidden;color:var(--color-text-maxcontrast);padding:12px;max-width:100%;border-radius:var(--border-radius-pill);align-items:center;display:inline-flex}.vue-crumb>a>span[data-v-1519484b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item{max-width:100%}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item .button-vue{padding:0 4px 0 16px}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item .button-vue__wrapper{flex-direction:row-reverse}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-background-dark);color:var(--color-main-text)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcBreadcrumb/NcBreadcrumb.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,4BACC,qBAAA,CACA,mBAAA,CACA,WCmBgB,CDlBhB,SAAA,CAEA,uCACC,eAAA,CACA,gBAAA,CAEA,oFAEC,cAAA,CAID,6DACC,YAAA,CAMD,0GAEC,6CAAA,CACA,4BAAA,CAIF,oCACC,YAAA,CAGD,iDACC,6CAAA,CACA,4BAAA,CAGD,uCACC,SAAA,CACA,mCAAA,CAGD,8BACC,eAAA,CACA,mCAAA,CACA,YAAA,CACA,cAAA,CACA,uCAAA,CACA,kBAAA,CACA,mBAAA,CAEA,mCACC,eAAA,CACA,sBAAA,CACA,kBAAA,CAMF,wDAEC,cAAA,CAEA,oEACC,oBAAA,CAEA,6EACC,0BAAA,CAKF,mGACC,6CAAA,CACA,4BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.vue-crumb {\n\tbackground-image: none;\n\tdisplay: inline-flex;\n\theight: $clickable-area;\n\tpadding: 0;\n\n\t&:last-child {\n\t\tmax-width: 210px;\n\t\tfont-weight: bold;\n\n\t\t> a,\n\t\t> a:deep(*) {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t// Don't show breadcrumb separator for last crumb\n\t\t.vue-crumb__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// Hover and focus effect for crumbs, but not the last one\n\t&:not(:last-child) > a {\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&--hidden {\n\t\tdisplay: none;\n\t}\n\n\t&#{&}--hovered > a {\n\t\tbackground-color: var(--color-background-dark);\n\t\tcolor: var(--color-main-text);\n\t}\n\n\t&__separator {\n\t\tpadding: 0;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t> a {\n\t\toverflow: hidden;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding: 12px;\n\t\tmax-width: 100%;\n\t\tborder-radius: var(--border-radius-pill);\n\t\talign-items: center;\n\t\tdisplay: inline-flex;\n\n\t\t> span {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n\n\t// Adjust action item appearance for crumbs with actions\n\t// to match other crumbs\n\t&:not(.dropdown) :deep(.action-item) {\n\t\t// Adjustments necessary to correctly shrink on small screens\n\t\tmax-width: 100%;\n\n\t\t.button-vue {\n\t\t\tpadding: 0 4px 0 16px;\n\n\t\t\t&__wrapper {\n\t\t\t\tflex-direction: row-reverse;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust the background of the last crumb when the action is open\n\t\t&.action-item--open .action-item__menutoggle {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},9656:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-2b60ed1a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.breadcrumb[data-v-2b60ed1a]{width:100%;flex-grow:1;display:inline-flex}.breadcrumb--collapsed .vue-crumb[data-v-2b60ed1a]:last-child{min-width:100px;flex-shrink:1}.breadcrumb .breadcrumb__crumbs[data-v-2b60ed1a]{flex-shrink:1;max-width:100%;min-width:228px}.breadcrumb .breadcrumb__crumbs[data-v-2b60ed1a],.breadcrumb .breadcrumb__actions[data-v-2b60ed1a]{display:inline-flex}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcBreadcrumbs/NcBreadcrumbs.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6BACC,UAAA,CACA,WAAA,CACA,mBAAA,CAEA,8DACC,eAAA,CACA,aAAA,CAGD,iDACC,aAAA,CACA,cAAA,CAKA,eAAA,CAGD,mGAEC,mBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.breadcrumb {\n\twidth: 100%;\n\tflex-grow: 1;\n\tdisplay: inline-flex;\n\n\t&--collapsed .vue-crumb:last-child {\n\t\tmin-width: 100px;\n\t\tflex-shrink: 1;\n\t}\n\n\t& #{&}__crumbs {\n\t\tflex-shrink: 1;\n\t\tmax-width: 100%;\n\t\t/**\n\t\t * This value is given by the min-width of the last crumb (100px) plus\n\t\t * two times the width of a crumb with an icon (first crumb and hidden crumbs actions).\n\t\t */\n\t\tmin-width: 228px;\n\t}\n\n\t& #{&}__crumbs,\n\t& #{&}__actions {\n\t\tdisplay: inline-flex;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},7190:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-7a8f3349]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-7a8f3349]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color .1s linear !important;transition:border .1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-7a8f3349]{cursor:pointer}.button-vue[data-v-7a8f3349]:focus{outline:none}.button-vue[data-v-7a8f3349]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-7a8f3349]{cursor:default}.button-vue[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-light-hover)}.button-vue[data-v-7a8f3349]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-7a8f3349]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-7a8f3349]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-7a8f3349]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-7a8f3349]{width:44px !important}.button-vue--text-only[data-v-7a8f3349]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-7a8f3349]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-7a8f3349]{padding:0 16px 0 4px}.button-vue--wide[data-v-7a8f3349]{width:100%}.button-vue[data-v-7a8f3349]:focus-visible{outline:2px solid var(--color-main-text) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{outline:2px solid var(--color-primary-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-7a8f3349]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-7a8f3349]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-7a8f3349]{color:var(--color-primary-light-text);background-color:var(--color-primary-light)}.button-vue--vue-secondary[data-v-7a8f3349]:hover:not(:disabled){color:var(--color-primary-light-text);background-color:var(--color-primary-light-hover)}.button-vue--vue-tertiary[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{color:var(--color-primary-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-7a8f3349]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-7a8f3349]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-7a8f3349]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-7a8f3349]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-7a8f3349]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-7a8f3349]:active{background-color:var(--color-error)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcButton/NcButton.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,kCAAA,CACA,gBAAA,CACA,eCcgB,CDbhB,cCagB,CDZhB,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,cAAA,CAIA,kBAAA,CACA,iDAAA,CACA,4BAAA,CAkBA,qDAAA,CACA,qCAAA,CAxBA,+BACC,cAAA,CAOD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCMiB,CDJjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,iDAAA,CAKD,oCACC,qDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,4BAAA,CAGD,mCACC,WCpCe,CDqCf,UCrCe,CDsCf,eCtCe,CDuCf,cCvCe,CDwCf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,+EACC,2CAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,+BAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,qCAAA,CACA,2CAAA,CACA,iEACC,qCAAA,CACA,iDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,+BAAA,CACA,8BAAA,CAEA,2EACC,8BAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,wCACC,mCAAA,CACA,UAAA,CACA,6DACC,yCAAA,CAID,+CACC,mCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& * {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: math.div($clickable-area, 2);\n\ttransition: background-color 0.1s linear !important;\n\ttransition: border 0.1s linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\topacity: $opacity_disabled;\n\t\t// Gives a wash out effect\n\t\tfilter: saturate($opacity_normal);\n\t}\n\n\t// Default button type\n\tbackground-color: var(--color-primary-element-lighter);\n\tcolor: var(--color-primary-light-text);\n\t&:hover:not(:disabled) {\n\t\tbackground-color: var(--color-primary-light-hover);\n\t}\n\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-lighter);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: space-around;\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding: 0 16px 0 4px;\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t&.button-vue--vue-tertiary-on-primary {\n\t\t\toutline: 2px solid var(--color-primary-text);\n\t\t\tborder-radius: var(--border-radius);\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-text);\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-primary-light-text);\n\t\tbackground-color: var(--color-primary-light);\n\t\t&:hover:not(:disabled) {\n\t\t\tcolor: var(--color-primary-light-text);\n\t\t\tbackground-color: var(--color-primary-light-hover);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Tertiary, no background\n\t&--vue-tertiary-no-background {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Tertiary on primary color (like the header)\n\t&--vue-tertiary-on-primary {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: transparent;\n\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},556:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-2b31639e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-2b31639e]{display:flex}.checkbox-radio-switch__input[data-v-2b31639e]{position:absolute;z-index:-1;opacity:0 !important;width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch__label[data-v-2b31639e]{display:flex;position:relative;align-items:center;user-select:none;height:44px;border-radius:44px;padding:0 14px;margin:0 -14px}.checkbox-radio-switch__label[data-v-2b31639e],.checkbox-radio-switch__label *[data-v-2b31639e]{cursor:pointer}.checkbox-radio-switch__icon[data-v-2b31639e]{margin-right:4px;margin-left:-2px;color:var(--color-primary-element);width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch--disabled .checkbox-radio-switch__label[data-v-2b31639e]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__label .checkbox-radio-switch__icon[data-v-2b31639e]{color:var(--color-text-light)}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__label[data-v-2b31639e]:hover,.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__label[data-v-2b31639e]:focus-within{background-color:var(--color-primary-light)}.checkbox-radio-switch-switch:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon[data-v-2b31639e]{color:var(--color-text-lighter)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked .checkbox-radio-switch__icon[data-v-2b31639e]{color:var(--color-primary-element-light)}.checkbox-radio-switch--button-variant .checkbox-radio-switch__label[data-v-2b31639e]{border-radius:0;width:100%;margin:0}.checkbox-radio-switch--button-variant[data-v-2b31639e]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped){border-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped[data-v-2b31639e]:first-of-type{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped[data-v-2b31639e]:last-of-type{border-bottom-left-radius:var(--border-radius-large);border-bottom-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped+.checkbox-radio-switch--button-variant-v-grouped[data-v-2b31639e]:not(.checkbox-radio-switch--button-variant-v-grouped.checkbox-radio-switch--checked){border-top:0}.checkbox-radio-switch--button-variant-v-grouped+.checkbox-radio-switch--button-variant-v-grouped.checkbox-radio-switch--checked[data-v-2b31639e]{margin-top:-2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-2b31639e]:first-of-type{border-top-left-radius:var(--border-radius-large);border-bottom-left-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-h-grouped[data-v-2b31639e]:last-of-type{border-top-right-radius:var(--border-radius-large);border-bottom-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-h-grouped+.checkbox-radio-switch--button-variant-h-grouped[data-v-2b31639e]:not(.checkbox-radio-switch--button-variant-h-grouped.checkbox-radio-switch--checked){border-left:0}.checkbox-radio-switch--button-variant-h-grouped+.checkbox-radio-switch--button-variant-h-grouped.checkbox-radio-switch--checked[data-v-2b31639e]{margin-left:-2px}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-2b31639e]{border:2px solid var(--color-border-dark);overflow:hidden}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-2b31639e]{font-weight:bold;border:2px solid var(--color-primary-element-light)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-2b31639e]:hover{border:2px solid var(--color-primary)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked label[data-v-2b31639e]{background-color:var(--color-background-dark)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,wCACC,YAAA,CAEA,+CACC,iBAAA,CACA,UAAA,CACA,oBAAA,CACA,sBAAA,CACA,uBAAA,CAGD,+CACC,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBAAA,CACA,WCKe,CDJf,kBCIe,CDHf,cAAA,CACA,cAAA,CAEA,gGACC,cAAA,CAIF,8CACC,gBA7BQ,CA+BR,gBAAA,CACA,kCAAA,CACA,sBAAA,CACA,uBAAA,CAGD,gFACC,UCEiB,CDDjB,6GACC,6BAAA,CAIF,2OAEC,2CAAA,CAID,iHACC,+BAAA,CAID,2IACC,wCAAA,CAGD,sFACC,eAAA,CACA,UAAA,CACA,QAAA,CAGD,oKACC,wCAAA,CAIA,gFACC,iDAAA,CACA,kDAAA,CAED,+EACC,oDAAA,CACA,qDAAA,CAID,wMACC,YAAA,CAED,kJAGC,eAAA,CAKD,gFACC,iDAAA,CACA,oDAAA,CAED,+EACC,kDAAA,CACA,qDAAA,CAID,wMACC,aAAA,CAED,kJAGC,gBAAA,CAIF,8EACC,yCAAA,CAEA,eAAA,CAEA,uFACC,gBAAA,CACA,mDAAA,CAEA,6FACC,qCAAA,CAGD,6FACC,6CAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n$spacing: 4px;\n\n.checkbox-radio-switch {\n\tdisplay: flex;\n\n\t&__input {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\topacity: 0 !important; // We need !important, or it gets overwritten by server style\n\t\twidth: var(--icon-size);\n\t\theight: var(--icon-size);\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t\talign-items: center;\n\t\tuser-select: none;\n\t\theight: $clickable-area;\n\t\tborder-radius: $clickable-area;\n\t\tpadding: 0 $icon-margin;\n\t\tmargin: 0 #{-$icon-margin};\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tmargin-right: $spacing;\n\t\t// Remove the left margin of material design icons to align text\n\t\tmargin-left: -2px;\n\t\tcolor: var(--color-primary-element);\n\t\twidth: var(--icon-size);\n\t\theight: var(--icon-size);\n\t}\n\n\t&--disabled &__label {\n\t\topacity: $opacity_disabled;\n\t\t.checkbox-radio-switch__icon {\n\t\t\tcolor: var(--color-text-light)\n\t\t}\n\t}\n\n\t&:not(&--disabled) &__label:hover,\n\t&:not(&--disabled) &__label:focus-within {\n\t\tbackground-color: var(--color-primary-light);\n\t}\n\n\t// Switch specific rules\n\t&-switch:not(&--checked) &__icon {\n\t\tcolor: var(--color-text-lighter);\n\t}\n\n\t// If switch is checked AND disabled, use the fade primary colour\n\t&-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked &__icon {\n\t\tcolor: var(--color-primary-element-light);\n\t}\n\n\t&--button-variant &__label {\n\t\tborder-radius: 0;\n\t\twidth: 100%;\n\t\tmargin: 0;\n\t}\n\n\t&--button-variant:not(&--button-variant-v-grouped):not(&--button-variant-h-grouped) {\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&--button-variant-v-grouped {\n\t\t&:first-of-type {\n\t\t\tborder-top-left-radius: var(--border-radius-large);\n\t\t\tborder-top-right-radius: var(--border-radius-large);\n\t\t}\n\t\t&:last-of-type {\n\t\t\tborder-bottom-left-radius: var(--border-radius-large);\n\t\t\tborder-bottom-right-radius: var(--border-radius-large);\n\t\t}\n\n\t\t// avoid double borders between elements\n\t\t& + &:not(&.checkbox-radio-switch--checked) {\n\t\t\tborder-top: 0;\n\t\t}\n\t\t& + &.checkbox-radio-switch--checked {\n\t\t\t// as the selected element has all borders:\n\t\t\t// small trick to cover the previous bottom border (only if there is one)\n\t\t\tmargin-top: -2px;\n\t\t}\n\t}\n\n\t&--button-variant-h-grouped {\n\t\t&:first-of-type {\n\t\t\tborder-top-left-radius: var(--border-radius-large);\n\t\t\tborder-bottom-left-radius: var(--border-radius-large);\n\t\t}\n\t\t&:last-of-type {\n\t\t\tborder-top-right-radius: var(--border-radius-large);\n\t\t\tborder-bottom-right-radius: var(--border-radius-large);\n\t\t}\n\n\t\t// avoid double borders between elements\n\t\t& + &:not(&.checkbox-radio-switch--checked) {\n\t\t\tborder-left: 0;\n\t\t}\n\t\t& + &.checkbox-radio-switch--checked {\n\t\t\t// as the selected element has all borders:\n\t\t\t// small trick to cover the previous bottom border (only if there is one)\n\t\t\tmargin-left: -2px;\n\t\t}\n\t}\n\n\t&--button-variant.checkbox-radio-switch {\n\t\tborder: 2px solid var(--color-border-dark);\n\t\t// better than setting border-radius on labels (producing a small gap)\n\t\toverflow: hidden;\n\n\t\t&--checked {\n\t\t\tfont-weight: bold;\n\t\t\tborder: 2px solid var(--color-primary-element-light);\n\n\t\t\t&:hover {\n\t\t\t\tborder: 2px solid var(--color-primary);\n\t\t\t}\n\n\t\t\tlabel {\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},1596:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-52e63439]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.color-picker[data-v-52e63439]{display:flex;overflow:hidden;align-content:flex-end;flex-direction:column;justify-content:space-between;box-sizing:content-box !important;width:176px;padding:8px;border-radius:3px}.color-picker--advanced-fields[data-v-52e63439]{width:264px}.color-picker__simple[data-v-52e63439]{display:grid;grid-template-columns:repeat(auto-fit, 44px);grid-auto-rows:44px}.color-picker__simple-color-circle[data-v-52e63439]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;margin:auto;padding:0;color:#fff;border:none;border-radius:50%;font-size:16px}.color-picker__simple-color-circle[data-v-52e63439]:hover{opacity:.6}.color-picker__simple-color-circle--active[data-v-52e63439]{width:38px;height:38px;min-height:38px;transition:all 100ms ease-in-out;opacity:1 !important}.color-picker__advanced[data-v-52e63439]{box-shadow:none !important}.color-picker__navigation[data-v-52e63439]{display:flex;flex-direction:row;justify-content:space-between;margin-top:10px}.color-picker__navigation-button[data-v-52e63439]{display:flex;align-content:center;justify-content:center;min-width:44px;height:44px;padding:0;margin:0;border:none;border-radius:22px;background:none;justify-self:flex-end;opacity:.7}.color-picker__navigation-button[data-v-52e63439]:focus,.color-picker__navigation-button[data-v-52e63439]:hover{background-color:rgba(127,127,127,.25);opacity:1}.color-picker__navigation-button.confirm[data-v-52e63439]{display:flex;align-items:center;justify-content:center;padding:4px 8px;color:#fff !important;background-color:var(--color-primary)}.color-picker__navigation-button.confirm[data-v-52e63439]:hover{background-color:var(--color-primary-element-light)}.color-picker__navigation-button.more-settings[data-v-52e63439]{margin-left:auto}[data-v-52e63439] .vc-chrome{width:unset}[data-v-52e63439] .vc-chrome-color-wrap{width:30px;height:30px}[data-v-52e63439] .vc-chrome-active-color{width:34px;height:34px;border-radius:17px}[data-v-52e63439] .vc-chrome-body{padding:14px 0 0 0}[data-v-52e63439] .vc-chrome-saturation-wrap{border-radius:3px}[data-v-52e63439] .vc-chrome-saturation-circle{width:20px;height:20px}.slide-enter[data-v-52e63439]{transform:translateX(-50%);opacity:0}.slide-enter-to[data-v-52e63439]{transform:translateX(0);opacity:1}.slide-leave[data-v-52e63439]{transform:translateX(0);opacity:1}.slide-leave-to[data-v-52e63439]{transform:translateX(-50%);opacity:0}.slide-enter-active[data-v-52e63439],.slide-leave-active[data-v-52e63439]{transition:all 50ms ease-in-out}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcColorPicker/NcColorPicker.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,eAAA,CACA,sBAAA,CACA,qBAAA,CACA,6BAAA,CACA,iCAAA,CACA,WAAA,CACA,WAAA,CACA,iBAAA,CAEA,gDACC,WAAA,CAGD,uCACC,YAAA,CACA,4CAAA,CACA,mBCKe,CDHf,oDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,WAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,cAAA,CACA,0DACC,UAAA,CAED,4DACC,UAAA,CACA,WAAA,CACA,eAAA,CACA,gCAAA,CACA,oBAAA,CAKH,yCACC,0BAAA,CAGD,2CACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,eAAA,CACA,kDACC,YAAA,CACA,oBAAA,CACA,sBAAA,CACA,cCpCc,CDqCd,WCrCc,CDsCd,SAAA,CACA,QAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,qBAAA,CACA,UC1Bc,CD4Bd,gHAEC,sCCrCY,CDsCZ,SC9BW,CDiCZ,0DACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,qBAAA,CACA,qCAAA,CACA,gEACC,mDAAA,CAGF,gEACC,gBAAA,CAOH,8BACC,WAAA,CACA,yCACC,UAAA,CACA,WAAA,CAGD,2CACC,UAAA,CACA,WAAA,CACA,kBAAA,CAGD,mCACC,kBAAA,CAIA,8CACC,iBAAA,CAGD,gDACC,UAAA,CACA,WAAA,CAOH,8BACC,0BAAA,CACA,SAAA,CAED,iCACC,uBAAA,CACA,SAAA,CAED,8BACC,uBAAA,CACA,SAAA,CAED,iCACC,0BAAA,CACA,SAAA,CAED,0EAEC,+BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.color-picker {\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-content: flex-end;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tbox-sizing: content-box !important;\n\twidth: 176px;\n\tpadding: 8px;\n\tborder-radius: 3px;\n\n\t&--advanced-fields {\n\t\twidth: 264px;\n\t}\n\n\t&__simple {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(auto-fit, $clickable-area);\n\t\tgrid-auto-rows: $clickable-area;\n\n\t\t&-color-circle {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: 34px;\n\t\t\theight: 34px;\n\t\t\tmin-height: 34px;\n\t\t\tmargin: auto;\n\t\t\tpadding: 0;\n\t\t\tcolor: white;\n\t\t\tborder: none;\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 16px;\n\t\t\t&:hover {\n\t\t\t\topacity: .6;\n\t\t\t}\n\t\t\t&--active {\n\t\t\t\twidth: 38px;\n\t\t\t\theight: 38px;\n\t\t\t\tmin-height: 38px;\n\t\t\t\ttransition: all 100ms ease-in-out;\n\t\t\t\topacity: 1 !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__advanced {\n\t\tbox-shadow: none !important;\n\t}\n\n\t&__navigation {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 10px;\n\t\t&-button {\n\t\t\tdisplay: flex;\n\t\t\talign-content: center;\n\t\t\tjustify-content: center;\n\t\t\tmin-width: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tborder: none;\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\tbackground: none;\n\t\t\tjustify-self: flex-end;\n\t\t\topacity: $opacity_normal;\n\n\t\t\t&:focus,\n\t\t\t&:hover {\n\t\t\t\tbackground-color: $icon-focus-bg;\n\t\t\t\topacity: $opacity_full;\n\t\t\t}\n\n\t\t\t&.confirm {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tpadding: 4px 8px;\n\t\t\t\tcolor: white !important;\n\t\t\t\tbackground-color: var(--color-primary);\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground-color: var(--color-primary-element-light);\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.more-settings {\n\t\t\t\tmargin-left: auto;\n\t\t\t}\n\t\t}\n\t}\n}\n\n:deep() .vc {\n\t&-chrome {\n\t\twidth: unset;\n\t\t&-color-wrap {\n\t\t\twidth: 30px;\n\t\t\theight: 30px;\n\t\t}\n\n\t\t&-active-color {\n\t\t\twidth: 34px;\n\t\t\theight: 34px;\n\t\t\tborder-radius: 17px;\n\t\t}\n\n\t\t&-body {\n\t\t\tpadding: 14px 0 0 0;\n\t\t}\n\n\t\t&-saturation {\n\t\t\t&-wrap {\n\t\t\t\tborder-radius: 3px;\n\t\t\t}\n\n\t\t\t&-circle {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.slide {\n\t&-enter {\n\t\ttransform: translateX(-50%);\n\t\topacity: 0;\n\t}\n\t&-enter-to {\n\t\ttransform: translateX(0);\n\t\topacity: 1;\n\t}\n\t&-leave {\n\t\ttransform: translateX(0);\n\t\topacity: 1;\n\t}\n\t&-leave-to {\n\t\ttransform: translateX(-50%);\n\t\topacity: 0;\n\t}\n\t&-enter-active,\n\t&-leave-active {\n\t\ttransition: all 50ms ease-in-out;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},7009:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-8feff292]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.content[data-v-8feff292]{box-sizing:border-box;margin:var(--body-container-margin);margin-top:50px;display:flex;width:calc(100% - var(--body-container-margin)*2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-8feff292]:not(.with-sidebar--full){position:fixed}.content[data-v-8feff292] *{box-sizing:border-box}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcContent/NcContent.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0BACC,qBAAA,CACA,mCAAA,CACA,eAAA,CACA,YAAA,CACA,iDAAA,CACA,0CAAA,CACA,yBAAA,CACA,eAAA,CACA,SAAA,CAEA,mDACC,cAAA,CAGD,4BACC,qBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.content {\n\tbox-sizing: border-box;\n\tmargin: var(--body-container-margin);\n\tmargin-top: 50px;\n\tdisplay: flex;\n\twidth: calc(100% - var(--body-container-margin) * 2);\n\tborder-radius: var(--body-container-radius);\n\theight: var(--body-height);\n\toverflow: hidden;\n\tpadding: 0;\n\n\t&:not(.with-sidebar--full) {\n\t\tposition: fixed;\n\t}\n\n\t:deep(*) {\n\t\tbox-sizing: border-box;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},2666:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-4a403ca7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.counter-bubble__counter[data-v-4a403ca7]{font-size:calc(var(--default-font-size)*.8);overflow:hidden;width:fit-content;max-width:44px;text-align:center;text-overflow:ellipsis;line-height:1em;padding:4px 6px;border-radius:var(--border-radius-pill);background-color:var(--color-primary-element-lighter, var(--color-primary-element-light));font-weight:bold;color:var(--color-primary-element)}.counter-bubble__counter--highlighted[data-v-4a403ca7]{color:var(--color-primary-text);background-color:var(--color-primary)}.counter-bubble__counter--outlined[data-v-4a403ca7]{color:var(--color-primary);background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcCounterBubble/NcCounterBubble.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0CACC,2CAAA,CACA,eAAA,CACA,iBAAA,CACA,cCmBgB,CDlBhB,iBAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CACA,uCAAA,CAEA,yFAAA,CACA,gBAAA,CACA,kCAAA,CAEA,uDACC,+BAAA,CACA,qCAAA,CAGD,oDACC,0BAAA,CACA,wBAAA,CACA,0BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.counter-bubble__counter {\n\tfont-size: calc(var(--default-font-size) * .8);\n\toverflow: hidden;\n\twidth: fit-content;\n\tmax-width: $clickable-area;\n\ttext-align: center;\n\ttext-overflow: ellipsis;\n\tline-height: 1em;\n\tpadding: 4px 6px;\n\tborder-radius: var(--border-radius-pill);\n\t// since -lighter is not present in the new version it will only apply to the old one and -light for the newer\n\tbackground-color: var(--color-primary-element-lighter, var(--color-primary-element-light));\n\tfont-weight: bold;\n\tcolor: var(--color-primary-element);\n\n\t&--highlighted {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary);\n\t}\n\n\t&--outlined {\n\t\tcolor: var(--color-primary);\n\t\tbackground: transparent;\n\t\tbox-shadow: inset 0 0 0 2px;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},2010:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-061b9623]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget .empty-content[data-v-061b9623]{text-align:center;margin-top:5vh}.dashboard-widget .empty-content.half-screen[data-v-061b9623]{margin-top:0;margin-bottom:1vh}.more[data-v-061b9623]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-061b9623]:hover,.more[data-v-061b9623]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large);color:var(--color-main-text)}.item-list__entry[data-v-061b9623]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-061b9623]{position:relative;margin-top:auto;margin-bottom:auto;background-color:var(--color-background-dark) !important}.item-list__entry .item__details[data-v-061b9623]{padding-left:8px;max-height:44px;flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-061b9623],.item-list__entry .item__details .message[data-v-061b9623]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-061b9623]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-061b9623]{width:80%;height:15px;margin-top:5px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcDashboardWidget/NcDashboardWidget.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,kDACC,iBAAA,CACA,cAAA,CAEA,8DACC,YAAA,CACA,iBAAA,CAIF,uBACC,aAAA,CACA,iBAAA,CACA,mCAAA,CACA,gBAAA,CACA,cAAA,CAEA,0DAEC,8CAAA,CACA,wCAAA,CACA,4BAAA,CAKF,mCACC,YAAA,CACA,sBAAA,CACA,WAAA,CAEA,gDACC,iBAAA,CACA,eAAA,CACA,kBAAA,CACA,wDAAA,CAED,kDACC,gBAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,gHAEC,kBAAA,CACA,6CAAA,CAED,qDACC,cAAA,CACA,QAAA,CAED,2DACC,SAAA,CACA,WAAA,CACA,cAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.dashboard-widget .empty-content {\n\ttext-align: center;\n\tmargin-top: 5vh;\n\n\t&.half-screen {\n\t\tmargin-top: 0;\n\t\tmargin-bottom: 1vh;\n\t}\n}\n\n.more {\n\tdisplay: block;\n\ttext-align: center;\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: 60px;\n\tcursor: pointer;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t\tcolor: var(--color-main-text);\n\t}\n}\n\n/* skeleton */\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tpadding: 8px;\n\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-top: auto;\n\t\tmargin-bottom: auto;\n\t\tbackground-color: var(--color-background-dark) !important;\n\t}\n\t.item__details {\n\t\tpadding-left: 8px;\n\t\tmax-height: 44px;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 80%;\n\t\t\theight: 15px;\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},8476:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-333a3450]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-333a3450]{display:flex;align-items:flex-start;position:relative;padding:8px}.item-list__entry[data-v-333a3450]:hover,.item-list__entry[data-v-333a3450]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.item-list__entry .item-avatar[data-v-333a3450]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-333a3450]{padding-left:8px;max-height:44px;flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-333a3450],.item-list__entry .item__details .message[data-v-333a3450]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-333a3450]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-333a3450]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-333a3450]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-333a3450]{position:relative;width:14px;height:14px;margin:27px -3px 0px -7px}.item-list__entry button.primary[data-v-333a3450]{padding:21px;margin:0}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,sBAAA,CACA,iBAAA,CACA,WAAA,CAEA,kFAEC,8CAAA,CACA,wCAAA,CAED,gDACC,iBAAA,CACA,eAAA,CACA,kBAAA,CAED,kDACC,gBAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,gHAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CAED,gEACC,UAAA,CACA,oBAAA,CACA,kBAAA,CAED,qDACC,cAAA,CACA,QAAA,CAED,2DACC,UAAA,CACA,mCAAA,CAIF,8CACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CAGD,kDACC,YAAA,CACA,QAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tposition: relative;\n\tpadding: 8px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-top: auto;\n\t\tmargin-bottom: auto;\n\t}\n\t.item__details {\n\t\tpadding-left: 8px;\n\t\tmax-height: 44px;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t\t.message span {\n\t\t\twidth: 10px;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-bottom: -3px;\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 100%;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\n\t.item-icon {\n\t\tposition: relative;\n\t\twidth: 14px;\n\t\theight: 14px;\n\t\tmargin: 27px -3px 0px -7px;\n\t}\n\n\tbutton.primary {\n\t\tpadding: 21px;\n\t\tmargin: 0;\n\t}\n}\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/\n"],sourceRoot:""}]),e.Z=o},9916:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-7a137715]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.native-datetime-picker[data-v-7a137715]{display:flex;flex-direction:column}.native-datetime-picker .native-datetime-picker--input[data-v-7a137715]{width:100%;flex:0 0 auto}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcDateTimePickerNative/NcDateTimePickerNative.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yCACC,YAAA,CACA,qBAAA,CAGD,wEACC,UAAA,CACA,aAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.native-datetime-picker {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.native-datetime-picker .native-datetime-picker--input {\n\twidth: 100%;\n\tflex: 0 0 auto;\n}\n"],sourceRoot:""}]),e.Z=o},7536:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-17d56e6c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.datetime-picker-inline-icon[data-v-17d56e6c]{opacity:.3;border:none;background-color:rgba(0,0,0,0);border-radius:0;padding:6px !important}.datetime-picker-inline-icon--highlighted[data-v-17d56e6c]{opacity:.7}.datetime-picker-inline-icon[data-v-17d56e6c]:focus,.datetime-picker-inline-icon[data-v-17d56e6c]:hover{opacity:1}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcDatetimePicker/NcDatetimePicker.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,8CACC,UAAA,CACA,WAAA,CACA,8BAAA,CACA,eAAA,CACA,sBAAA,CAEA,2DACC,UAAA,CAGD,wGAEC,SAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.datetime-picker-inline-icon {\n\topacity: .3;\n\tborder: none;\n\tbackground-color: transparent;\n\tborder-radius: 0;\n\tpadding: 6px !important;\n\n\t&--highlighted {\n\t\topacity: .7;\n\t}\n\n\t&:focus,\n\t&:hover {\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},1590:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(2463),l=o()(i());l.i(s.Z),l.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.emoji-mart{background-color:var(--color-main-background) !important;border:0;color:var(--color-main-text) !important}.emoji-mart button{margin:0;padding:0;border:none;background:rgba(0,0,0,0);font-size:inherit;height:36px;width:auto}.emoji-mart button *{cursor:pointer !important}.emoji-mart .emoji-mart-bar,.emoji-mart .emoji-mart-anchors,.emoji-mart .emoji-mart-search,.emoji-mart .emoji-mart-search input,.emoji-mart .emoji-mart-category,.emoji-mart .emoji-mart-category-label,.emoji-mart .emoji-mart-category-label span,.emoji-mart .emoji-mart-skin-swatches{background-color:rgba(0,0,0,0) !important;border-color:var(--color-border) !important;color:inherit !important}.emoji-mart .emoji-mart-search input:focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}.emoji-mart .emoji-mart-bar:first-child{border-top-left-radius:var(--border-radius) !important;border-top-right-radius:var(--border-radius) !important}.emoji-mart .emoji-mart-anchors button{border-radius:0;padding:12px 4px;height:auto}.emoji-mart .emoji-mart-anchors button:focus-visible{outline:2px solid var(--color-primary-element)}.emoji-mart .emoji-mart-category{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:start}.emoji-mart .emoji-mart-category .emoji-mart-category-label,.emoji-mart .emoji-mart-category .emoji-mart-emoji{user-select:none;flex-grow:0;flex-shrink:0}.emoji-mart .emoji-mart-category .emoji-mart-category-label{flex-basis:100%;margin:0}.emoji-mart .emoji-mart-category .emoji-mart-emoji{flex-basis:12.5%;text-align:center}.emoji-mart .emoji-mart-category .emoji-mart-emoji:hover::before,.emoji-mart .emoji-mart-category .emoji-mart-emoji.emoji-mart-emoji-selected::before{background-color:var(--color-background-hover) !important;outline:2px solid var(--color-primary-element)}.emoji-mart .emoji-mart-category button:focus-visible{background-color:var(--color-background-hover);border:2px solid var(--color-primary-element) !important;border-radius:50%}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcEmojiPicker/NcEmojiPicker.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,YACC,wDAAA,CACA,QAAA,CACA,uCAAA,CAGA,mBACC,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,iBAAA,CACA,WAAA,CACA,UAAA,CAEA,qBACC,yBAAA,CAIF,0RAQC,yCAAA,CACA,2CAAA,CACA,wBAAA,CAGD,mDACC,+CAAA,CACA,YAAA,CAIA,wCACC,sDAAA,CACA,uDAAA,CAKD,uCACC,eAAA,CACA,gBAAA,CACA,WAAA,CACA,qDAEC,8CAAA,CAKH,iCACC,YAAA,CACA,kBAAA,CACA,cAAA,CACA,qBAAA,CAEA,+GAEC,gBAAA,CACA,WAAA,CACA,aAAA,CAGD,4DACC,eAAA,CACA,QAAA,CAGD,mDAEC,gBAAA,CACA,iBAAA,CAEA,sJAEC,yDAAA,CACA,8CAAA,CAKD,sDACC,8CAAA,CACA,wDAAA,CACA,iBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n@import '~emoji-mart-vue-fast/css/emoji-mart.css';\n\n.emoji-mart {\n\tbackground-color: var(--color-main-background) !important;\n\tborder: 0;\n\tcolor: var(--color-main-text) !important;\n\n\t// default style reset\n\tbutton {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tborder: none;\n\t\tbackground: transparent;\n\t\tfont-size: inherit;\n\t\theight: 36px;\n\t\twidth: auto;\n\n\t\t* {\n\t\t\tcursor: pointer !important;\n\t\t}\n\t}\n\n\t.emoji-mart-bar,\n\t.emoji-mart-anchors,\n\t.emoji-mart-search,\n\t.emoji-mart-search input,\n\t.emoji-mart-category,\n\t.emoji-mart-category-label,\n\t.emoji-mart-category-label span,\n\t.emoji-mart-skin-swatches {\n\t\tbackground-color: transparent !important;\n\t\tborder-color: var(--color-border) !important;\n\t\tcolor: inherit !important;\n\t}\n\n\t.emoji-mart-search input:focus-visible {\n\t\tbox-shadow: inset 0 0 0 2px var(--color-primary);\n\t\toutline: none;\n\t}\n\n\t.emoji-mart-bar {\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: var(--border-radius) !important;\n\t\t\tborder-top-right-radius: var(--border-radius) !important;\n\t\t}\n\t}\n\n\t.emoji-mart-anchors {\n\t\tbutton {\n\t\t\tborder-radius: 0;\n\t\t\tpadding: 12px 4px;\n\t\t\theight: auto;\n\t\t\t&:focus-visible {\n\t\t\t\t/* box-shadow: inset 0 0 0 2px var(--color-primary); */\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n\n\t.emoji-mart-category {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t\tjustify-content: start;\n\n\t\t.emoji-mart-category-label,\n\t\t.emoji-mart-emoji {\n\t\t\tuser-select: none;\n\t\t\tflex-grow: 0;\n\t\t\tflex-shrink: 0;\n\t\t}\n\n\t\t.emoji-mart-category-label {\n\t\t\tflex-basis: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t.emoji-mart-emoji {\n\t\t\t// 8 emoji per row\n\t\t\tflex-basis: calc(100% / 8);\n\t\t\ttext-align: center;\n\n\t\t\t&:hover::before,\n\t\t\t&.emoji-mart-emoji-selected::before{\n\t\t\t\tbackground-color: var(--color-background-hover) !important;\n\t\t\t\toutline: 2px solid var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t\tbutton {\n\n\t\t\t&:focus-visible {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\tborder: 2px solid var(--color-primary-element) !important;\n\t\t\t\tborder-radius: 50%;\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]),e.Z=l},6505:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-78a70aaa]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-78a70aaa]{display:flex;align-items:center;flex-direction:column;margin-top:20vh}.modal-wrapper .empty-content[data-v-78a70aaa]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-78a70aaa]{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 15px;opacity:.4;background-repeat:no-repeat;background-position:center;background-size:64px}.empty-content__icon[data-v-78a70aaa] svg{width:64px;height:64px}.empty-content__title[data-v-78a70aaa]{margin-bottom:10px;text-align:center}.empty-content__action[data-v-78a70aaa]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-78a70aaa]{margin-top:20px;display:flex}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcEmptyContent/NcEmptyContent.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,eAAA,CAEA,+CACC,cAAA,CACA,iBAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,UAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,0CACC,UAAA,CACA,WAAA,CAIF,uCACC,kBAAA,CACA,iBAAA,CAGD,wCACC,cAAA,CAEA,uDACC,eAAA,CACA,YAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.empty-content {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tmargin-top: 20vh;\n\n\t.modal-wrapper & {\n\t\tmargin-top: 5vh;\n\t\tmargin-bottom: 5vh;\n\t}\n\n\t&__icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 64px;\n\t\theight: 64px;\n\t\tmargin: 0 auto 15px;\n\t\topacity: .4;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: 64px;\n\n\t\t:deep(svg) {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\t\t}\n\t}\n\n\t&__title {\n\t\tmargin-bottom: 10px;\n\t\ttext-align: center;\n\t}\n\n\t&__action {\n\t\tmargin-top: 8px;\n\n\t\t.modal-wrapper & {\n\t\t\tmargin-top: 20px;\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},4132:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-1fabb8a0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-field[data-v-1fabb8a0]{position:relative;width:100%;border-radius:var(--border-radius-large)}.input-field__main-wrapper[data-v-1fabb8a0]{height:36px;position:relative}.input-field__input[data-v-1fabb8a0]{margin:0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-dark);height:36px !important;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer;width:100%;-webkit-appearance:textfield !important;-moz-appearance:textfield !important}.input-field__input[data-v-1fabb8a0]:active:not([disabled]),.input-field__input[data-v-1fabb8a0]:hover:not([disabled]),.input-field__input[data-v-1fabb8a0]:focus:not([disabled]){border-color:var(--color-primary-element)}.input-field__input[data-v-1fabb8a0]:focus{cursor:text}.input-field__input[data-v-1fabb8a0]:focus-visible{box-shadow:unset !important}.input-field__input--success[data-v-1fabb8a0]{border-color:var(--color-success) !important}.input-field__input--success[data-v-1fabb8a0]:focus-visible{box-shadow:#f8fafc 0px 0px 0px 2px,var(--color-primary-element) 0px 0px 0px 4px,rgba(0,0,0,.05) 0px 1px 2px 0px}.input-field__input--error[data-v-1fabb8a0]{border-color:var(--color-error) !important}.input-field__input--error[data-v-1fabb8a0]:focus-visible{box-shadow:#f8fafc 0px 0px 0px 2px,var(--color-primary-element) 0px 0px 0px 4px,rgba(0,0,0,.05) 0px 1px 2px 0px}.input-field__input--leading-icon[data-v-1fabb8a0]{padding-left:28px}.input-field__input--trailing-icon[data-v-1fabb8a0]{padding-right:28px}.input-field__label[data-v-1fabb8a0]{padding:4px 0;display:block}.input-field__label--hidden[data-v-1fabb8a0]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.input-field__icon[data-v-1fabb8a0]{position:absolute;height:32px;width:32px;display:flex;align-items:center;justify-content:center;opacity:.7}.input-field__icon--leading[data-v-1fabb8a0]{bottom:2px;left:2px}.input-field__icon--trailing[data-v-1fabb8a0]{bottom:2px;right:2px}.input-field__clear-button.button-vue[data-v-1fabb8a0]{position:absolute;top:2px;right:1px;min-width:unset;min-height:unset;height:32px;width:32px !important;border-radius:var(--border-radius-large)}.input-field__helper-text-message[data-v-1fabb8a0]{padding:4px 0;display:flex;align-items:center}.input-field__helper-text-message__icon[data-v-1fabb8a0]{margin-right:8px;align-self:start;margin-top:4px}.input-field__helper-text-message--error[data-v-1fabb8a0]{color:var(--color-error)}.input-field__helper-text-message--success[data-v-1fabb8a0]{color:var(--color-success)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcInputField/NcInputField.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8BACC,iBAAA,CACA,UAAA,CACA,wCAAA,CAEA,4CACC,WAAA,CACA,iBAAA,CAGD,qCACC,QAAA,CACA,cAAA,CACA,kCAAA,CACA,6CAAA,CACA,4BAAA,CACA,yCAAA,CACA,sBAAA,CACA,wCAAA,CACA,sBAAA,CACA,cAAA,CACA,UAAA,CACA,uCAAA,CACA,oCAAA,CAEA,kLAGC,yCAAA,CAGD,2CACC,WAAA,CAGD,mDACC,2BAAA,CAGD,8CACC,4CAAA,CACA,4DACC,+GAAA,CAIF,4CACC,0CAAA,CACA,0DACC,+GAAA,CAIF,mDACC,iBAAA,CAGD,oDACC,kBAAA,CAIF,qCACC,aAAA,CACA,aAAA,CAEA,6CACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAIF,oCACC,iBAAA,CACA,WAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,6CACC,UAAA,CACA,QAAA,CAGD,8CACC,UAAA,CACA,SAAA,CAIF,uDACC,iBAAA,CACA,OAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CACA,qBAAA,CACA,wCAAA,CAGD,mDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,yDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,0DACC,wBAAA,CAGD,4DACC,0BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.input-field {\n\tposition: relative;\n\twidth: 100%;\n\tborder-radius: var(--border-radius-large);\n\n\t&__main-wrapper {\n\t\theight: 36px;\n\t\tposition: relative;\n\t}\n\n\t&__input {\n\t\tmargin: 0;\n\t\tpadding: 0 12px;\n\t\tfont-size: var(--default-font-size);\n\t\tbackground-color: var(--color-main-background);\n\t\tcolor: var(--color-main-text);\n\t\tborder: 2px solid var(--color-border-dark);\n\t\theight: 36px !important;\n\t\tborder-radius: var(--border-radius-large);\n\t\ttext-overflow: ellipsis;\n\t\tcursor: pointer;\n\t\twidth: 100%;\n\t\t-webkit-appearance: textfield !important;\n\t\t-moz-appearance: textfield !important;\n\n\t\t&:active:not([disabled]),\n\t\t&:hover:not([disabled]),\n\t\t&:focus:not([disabled]) {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&:focus {\n\t\t\tcursor: text;\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbox-shadow: unset !important; // Override server rules\n\t\t}\n\n\t\t&--success {\n\t\t\tborder-color: var(--color-success) !important; //Override hover border color\n\t\t\t&:focus-visible {\n\t\t\t\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n\t\t\t}\n\t\t}\n\n\t\t&--error {\n\t\t\tborder-color: var(--color-error) !important; //Override hover border color\n\t\t\t&:focus-visible {\n\t\t\t\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n\t\t\t}\n\t\t}\n\n\t\t&--leading-icon {\n\t\t\tpadding-left: 28px;\n\t\t}\n\n\t\t&--trailing-icon {\n\t\t\tpadding-right: 28px;\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding: 4px 0;\n\t\tdisplay: block;\n\n\t\t&--hidden {\n\t\t\tposition: absolute;\n\t\t\tleft: -10000px;\n\t\t\ttop: auto;\n\t\t\twidth: 1px;\n\t\t\theight: 1px;\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tposition: absolute;\n\t\theight: 32px;\n\t\twidth: 32px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\topacity: 0.7;\n\t\t&--leading {\n\t\t\tbottom: 2px;\n\t\t\tleft: 2px;\n\t\t}\n\n\t\t&--trailing {\n\t\t\tbottom: 2px;\n\t\t\tright: 2px;\n\t\t}\n\t}\n\n\t&__clear-button.button-vue {\n\t\tposition: absolute;\n\t\ttop: 2px;\n\t\tright: 1px;\n\t\tmin-width: unset;\n\t\tmin-height: unset;\n\t\theight: 32px;\n\t\twidth: 32px !important;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\n\t\t&--success {\n\t\t\tcolor: var(--color-success);\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},7491:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-e11e15ca]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-e11e15ca]{position:relative;width:100%}.list-item__wrapper--active .list-item[data-v-e11e15ca],.list-item__wrapper:active .list-item[data-v-e11e15ca],.list-item__wrapper.active .list-item[data-v-e11e15ca]{background-color:var(--color-primary-light)}.list-item[data-v-e11e15ca]{display:block;position:relative;flex:0 0 auto;justify-content:flex-start;padding:8px;border-radius:32px;margin:2px 0;width:100%;cursor:pointer;transition:background-color var(--animation-quick) ease-in-out;list-style:none}.list-item[data-v-e11e15ca]:hover,.list-item[data-v-e11e15ca]:focus{background-color:var(--color-background-hover)}.list-item-content__wrapper[data-v-e11e15ca]{display:flex;align-items:center;height:48px}.list-item-content__wrapper--compact[data-v-e11e15ca]{height:36px}.list-item-content__wrapper--compact .line-one[data-v-e11e15ca],.list-item-content__wrapper--compact .line-two[data-v-e11e15ca]{margin-top:-4px;margin-bottom:-4px}.list-item-content[data-v-e11e15ca]{display:flex;flex:1 1 auto;justify-content:space-between;padding-left:8px}.list-item-content__main[data-v-e11e15ca]{flex:1 1 auto;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-e11e15ca]{display:flex}.list-item-content__actions[data-v-e11e15ca]{flex:0 0 auto;align-self:center;justify-content:center;margin-left:4px}.list-item__extra[data-v-e11e15ca]{margin-top:4px}.line-one[data-v-e11e15ca]{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;margin:0 auto 0 0;overflow:hidden}.line-one__title[data-v-e11e15ca]{overflow:hidden;flex-grow:1;cursor:pointer;text-overflow:ellipsis;color:var(--color-main-text);font-weight:bold}.line-one__details[data-v-e11e15ca]{color:var(--color-text-maxcontrast);margin:0 8px;font-weight:normal}.line-two[data-v-e11e15ca]{display:flex;align-items:flex-start;justify-content:space-between;white-space:nowrap}.line-two--bold[data-v-e11e15ca]{font-weight:bold}.line-two__subtitle[data-v-e11e15ca]{overflow:hidden;flex-grow:1;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.line-two__additional_elements[data-v-e11e15ca]{margin:2px 4px 0 4px;display:flex;align-items:center}.line-two__indicator[data-v-e11e15ca]{margin:0 5px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcListItem/NcListItem.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qCACC,iBAAA,CACA,UAAA,CAKC,sKACC,2CAAA,CAMH,4BACC,aAAA,CACA,iBAAA,CACA,aAAA,CACA,0BAAA,CACA,WAAA,CAGA,kBAAA,CACA,YAAA,CACA,UAAA,CACA,cAAA,CACA,8DAAA,CACA,eAAA,CACA,oEAEC,8CAAA,CAGD,6CACC,YAAA,CACA,kBAAA,CACA,WAAA,CAEA,sDACC,WAAA,CAEA,gIACC,eAAA,CACA,kBAAA,CAKH,oCACC,YAAA,CACA,aAAA,CACA,6BAAA,CACA,gBAAA,CAEA,0CACC,aAAA,CACA,OAAA,CACA,aAAA,CAEA,mDACC,YAAA,CAIF,6CACC,aAAA,CACA,iBAAA,CACA,sBAAA,CACA,eAAA,CAIF,mCACC,cAAA,CAIF,2BACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,kBAAA,CACA,iBAAA,CACA,eAAA,CAEA,kCACC,eAAA,CACA,WAAA,CACA,cAAA,CACA,sBAAA,CACA,4BAAA,CACA,gBAAA,CAGD,oCACC,mCAAA,CACA,YAAA,CACA,kBAAA,CAIF,2BACC,YAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,iCACC,gBAAA,CAGD,qCACC,eAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,gDACC,oBAAA,CACA,YAAA,CACA,kBAAA,CAGD,sCACC,YAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.list-item__wrapper {\n\tposition: relative;\n\twidth: 100%;\n\n\t&--active,\n\t&:active,\n\t&.active {\n\t\t.list-item {\n\t\t\tbackground-color: var(--color-primary-light);\n\t\t}\n\t}\n}\n\n// NcListItem\n.list-item {\n\tdisplay: block;\n\tposition: relative;\n\tflex: 0 0 auto;\n\tjustify-content: flex-start;\n\tpadding: 8px;\n\t// Fix for border-radius being too large for 3-line entries like in Mail\n\t// 44px avatar size / 2 + 8px padding, and 2px for better visual quality\n\tborder-radius: 32px;\n\tmargin: 2px 0;\n\twidth: 100%;\n\tcursor: pointer;\n\ttransition: background-color var(--animation-quick) ease-in-out;\n\tlist-style: none;\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&-content__wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: 48px;\n\n\t\t&--compact {\n\t\t\theight: 36px;\n\n\t\t\t.line-one, .line-two {\n\t\t\t\tmargin-top: -4px;\n\t\t\t\tmargin-bottom: -4px;\n\t\t\t}\n\t\t}\n\t}\n\n\t&-content {\n\t\tdisplay: flex;\n\t\tflex: 1 1 auto;\n\t\tjustify-content: space-between;\n\t\tpadding-left: 8px;\n\n\t\t&__main {\n\t\t\tflex: 1 1 auto;\n\t\t\twidth: 0;\n\t\t\tmargin: auto 0;\n\n\t\t\t&--oneline {\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tflex: 0 0 auto;\n\t\t\talign-self: center;\n\t\t\tjustify-content: center;\n\t\t\tmargin-left: 4px;\n\t\t}\n\t}\n\n\t&__extra {\n\t\tmargin-top: 4px;\n\t}\n}\n\n.line-one {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\twhite-space: nowrap;\n\tmargin: 0 auto 0 0;\n\toverflow: hidden;\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tflex-grow: 1;\n\t\tcursor: pointer;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-main-text);\n\t\tfont-weight: bold;\n\t}\n\n\t&__details {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin: 0 8px;\n\t\tfont-weight: normal;\n\t}\n}\n\n.line-two {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tjustify-content: space-between;\n\twhite-space: nowrap;\n\t&--bold {\n\t\tfont-weight: bold;\n\t}\n\n\t&__subtitle {\n\t\toverflow: hidden;\n\t\tflex-grow: 1;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__additional_elements {\n\t\tmargin: 2px 4px 0 4px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t&__indicator {\n\t\tmargin: 0 5px;\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},1369:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-7564b97c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.option[data-v-7564b97c]{display:flex;align-items:center;width:100%;height:var(--height)}.option__avatar[data-v-7564b97c]{margin-right:var(--margin)}.option__details[data-v-7564b97c]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__lineone[data-v-7564b97c]{color:var(--color-text-light)}.option__linetwo[data-v-7564b97c]{opacity:.7}.option__lineone[data-v-7564b97c],.option__linetwo[data-v-7564b97c]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.1em}.option__lineone strong[data-v-7564b97c],.option__linetwo strong[data-v-7564b97c]{font-weight:bold}.option__icon[data-v-7564b97c]{flex:0 0 44px;width:44px;height:44px;opacity:.5;background-position:center;background-size:16px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcListItemIcon/NcListItemIcon.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yBACC,YAAA,CACA,kBAAA,CACA,UAAA,CACA,oBAAA,CAEA,iCACC,0BAAA,CAGD,kCACC,YAAA,CACA,QAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CAGD,kCACC,6BAAA,CAED,kCACC,UCmBe,CDjBhB,oEAEC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CACA,kFACC,gBAAA,CAIF,+BACC,aAAA,CACA,UCde,CDef,WCfe,CDgBf,UCCiB,CAAA,0BAAA,CDCjB,oBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.option {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n\theight: var(--height);\n\n\t&__avatar {\n\t\tmargin-right: var(--margin);\n\t}\n\n\t&__details {\n\t\tdisplay: flex;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-width: 0;\n\t}\n\n\t&__lineone {\n\t\tcolor: var(--color-text-light);\n\t}\n\t&__linetwo {\n\t\topacity: $opacity_normal;\n\t}\n\t&__lineone,\n\t&__linetwo {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tline-height: 1.1em;\n\t\tstrong {\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tflex: 0 0 $clickable-area;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\topacity: $opacity_disabled;\n\t\tbackground-position: center;\n\t\tbackground-size: 16px;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},5030:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-c4a9cada]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon svg[data-v-c4a9cada]{animation:rotate var(--animation-duration, 0.8s) linear infinite}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcLoadingIcon/NcLoadingIcon.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,gEAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.loading-icon svg{\n\tanimation: rotate var(--animation-duration, 0.8s) linear infinite;\n}\n"],sourceRoot:""}]),e.Z=o},8809:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,'.material-design-icon[data-v-05d94d80]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-05d94d80]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-mask--dark[data-v-05d94d80]{background-color:rgba(0,0,0,.92)}.modal-header[data-v-05d94d80]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;overflow:hidden;transition:opacity 250ms,visibility 250ms}.modal-header.invisible[style*="display:none"][data-v-05d94d80],.modal-header.invisible[style*="display: none"][data-v-05d94d80]{visibility:hidden}.modal-header .modal-title[data-v-05d94d80]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px;margin-bottom:0}@media only screen and (min-width: 1024px){.modal-header .modal-title[data-v-05d94d80]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-05d94d80]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-05d94d80]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-05d94d80]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:rgba(0,0,0,0)}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-05d94d80]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons__pause[data-v-05d94d80]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-05d94d80]{color:#fff}.modal-header .icons-menu[data-v-05d94d80] .action-item{margin:3px}.modal-header .icons-menu[data-v-05d94d80] .action-item--single{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-05d94d80] button{color:#fff}.modal-header .icons-menu[data-v-05d94d80] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-05d94d80] .action-item__menutoggle span,.modal-header .icons-menu[data-v-05d94d80] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-05d94d80]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-05d94d80],.modal-wrapper .next[data-v-05d94d80]{z-index:10000;display:flex !important;height:35vw;position:absolute;transition:opacity 250ms,visibility 250ms;color:var(--color-primary-text)}.modal-wrapper .prev[data-v-05d94d80]:focus-visible,.modal-wrapper .next[data-v-05d94d80]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev.invisible[style*="display:none"][data-v-05d94d80],.modal-wrapper .prev.invisible[style*="display: none"][data-v-05d94d80],.modal-wrapper .next.invisible[style*="display:none"][data-v-05d94d80],.modal-wrapper .next.invisible[style*="display: none"][data-v-05d94d80]{visibility:hidden}.modal-wrapper .prev[data-v-05d94d80]{left:2px}.modal-wrapper .next[data-v-05d94d80]{right:2px}.modal-wrapper .modal-container[data-v-05d94d80]{position:relative;display:block;overflow:auto;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,.2)}.modal-wrapper .modal-container__close[data-v-05d94d80]{position:absolute;top:4px;right:4px}.modal-wrapper--small .modal-container[data-v-05d94d80]{width:400px;max-width:90%;max-height:90%}.modal-wrapper--normal .modal-container[data-v-05d94d80]{max-width:90%;width:600px;max-height:90%}.modal-wrapper--large .modal-container[data-v-05d94d80]{max-width:90%;width:900px;max-height:90%}.modal-wrapper--full .modal-container[data-v-05d94d80]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}@media only screen and (max-width: 512px){.modal-wrapper .modal-container[data-v-05d94d80]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}}.fade-enter-active[data-v-05d94d80],.fade-leave-active[data-v-05d94d80]{transition:opacity 250ms}.fade-enter[data-v-05d94d80],.fade-leave-to[data-v-05d94d80]{opacity:0}.fade-visibility-enter[data-v-05d94d80],.fade-visibility-leave-to[data-v-05d94d80]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-05d94d80],.modal-in-leave-active[data-v-05d94d80],.modal-out-enter-active[data-v-05d94d80],.modal-out-leave-active[data-v-05d94d80]{transition:opacity 250ms}.modal-in-enter[data-v-05d94d80],.modal-in-leave-to[data-v-05d94d80],.modal-out-enter[data-v-05d94d80],.modal-out-leave-to[data-v-05d94d80]{opacity:0}.modal-in-enter .modal-container[data-v-05d94d80],.modal-in-leave-to .modal-container[data-v-05d94d80]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-05d94d80],.modal-out-leave-to .modal-container[data-v-05d94d80]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-05d94d80]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-05d94d80]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-05d94d80 linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-05d94d80]{animation:breath-05d94d80 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-05d94d80]{animation-play-state:paused !important}@keyframes progressring-05d94d80{from{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-05d94d80{0%{opacity:1}50%{opacity:0}100%{opacity:1}}',"",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcModal/NcModal.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,cAAA,CACA,YAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,+BAAA,CACA,mCACC,gCAAA,CAIF,+BACC,iBAAA,CACA,aAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CAGA,uBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WCuBe,CDtBf,eAAA,CACA,yCAAA,CAIA,iIAEC,iBAAA,CAGD,4CACC,iBAAA,CACA,qBAAA,CACA,UAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,cChBY,CDiBZ,eAAA,CAID,2CACC,4CACC,kBAAA,CACA,iBAAA,CAAA,CAIF,2CACC,iBAAA,CACA,OAAA,CACA,YAAA,CACA,kBAAA,CACA,wBAAA,CAEA,yDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6DACC,iBAAA,CACA,UC3Ba,CD4Bb,WC5Ba,CD6Bb,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CACA,8BAAA,CAGC,8WAEC,SC9CU,CD+CV,kBAAA,CACA,sCCxDW,CD2Db,uIAEC,qBAAA,CACA,UCzEa,CD0Eb,WC1Ea,CD2Eb,UAAA,CACA,cAAA,CACA,UC3Da,CD+Df,2DACC,UAAA,CAGD,yDACC,UAAA,CAEA,iEACC,qBAAA,CACA,UC1Fa,CD2Fb,WC3Fa,CD4Fb,cAAA,CACA,0BAAA,CACA,oBAAA,CAIF,kDAEC,UAAA,CAID,oEACC,SAAA,CACA,iJACC,sBAAA,CACA,uBAAA,CAMJ,gCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CAGA,4EAEC,aAAA,CAEA,uBAAA,CACA,WAAA,CACA,iBAAA,CACA,yCAAA,CAEA,+BAAA,CAEA,wGAEC,8CAAA,CACA,wCAAA,CAOD,8RAEC,iBAAA,CAGF,sCACC,QAAA,CAED,sCACC,SAAA,CAID,iDACC,iBAAA,CACA,aAAA,CACA,aAAA,CACA,SAAA,CACA,+BAAA,CACA,wCAAA,CACA,6CAAA,CACA,kCAAA,CACA,wDACC,iBAAA,CACA,OAAA,CACA,SAAA,CAMD,wDACC,WAAA,CACA,aAAA,CACA,cAAA,CAID,yDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,wDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,uDACC,UAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC7Ka,CD8Kb,eAAA,CAKF,0CACC,iDACC,iBAAA,CACA,UAAA,CACA,kBAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC1La,CD2Lb,eAAA,CAAA,CAMH,wEAEC,wBAAA,CAGD,6DAEC,SAAA,CAGD,mFAEC,iBAAA,CACA,SAAA,CAGD,kKAIC,wBAAA,CAGD,4IAIC,SAAA,CAGD,uGAEC,oBAAA,CAGD,yGAEC,oBAAA,CAQA,8DACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CACA,qFACC,kCAAA,CACA,wBAAA,CACA,yEAAA,CAEA,oBAAA,CACA,+BAAA,CACA,8BAAA,CAID,mEACC,kEAAA,CAED,8EACC,sCAAA,CAMH,iCACC,KACC,+BAAA,CAED,GACC,mBAAA,CAAA,CAIF,2BACC,GACC,SAAA,CAED,IACC,SAAA,CAED,KACC,SAAA,CAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.modal-mask {\n\tposition: fixed;\n\tz-index: 9998;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, .5);\n\t&--dark {\n\t\tbackground-color: rgba(0, 0, 0, .92);\n\t}\n}\n\n.modal-header {\n\tposition: absolute;\n\tz-index: 10001;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\t// prevent vue show to use display:none and reseting\n\t// the circle animation loop\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\theight: $header-height;\n\toverflow: hidden;\n\ttransition: opacity 250ms,\n\t\tvisibility 250ms;\n\n\t// replace display by visibility\n\t&.invisible[style*='display:none'],\n\t&.invisible[style*='display: none'] {\n\t\tvisibility: hidden;\n\t}\n\n\t.modal-title {\n\t\toverflow-x: hidden;\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\n\t\ttransition: padding ease 100ms;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: #fff;\n\t\tfont-size: $icon-margin;\n\t\tmargin-bottom: 0;\n\t}\n\n\t// On wider screens the title can be centered\n\t@media only screen and (min-width: $breakpoint-mobile) {\n\t\t.modal-title {\n\t\t\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.icons-menu {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\n\t\t.header-close {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.play-pause-icons {\n\t\t\tposition: relative;\n\t\t\twidth: $header-height;\n\t\t\theight: $header-height;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcursor: pointer;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\t.play-pause-icons__play,\n\t\t\t\t.play-pause-icons__pause {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\tbackground-color: $icon-focus-bg;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__play,\n\t\t\t&__pause {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\t\t\t\tcursor: pointer;\n\t\t\t\topacity: $opacity_normal;\n\t\t\t}\n\t\t}\n\n\t\t.header-actions {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t&:deep() .action-item {\n\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\n\t\t\t&--single {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tcursor: pointer;\n\t\t\t\tbackground-position: center;\n\t\t\t\tbackground-size: 22px;\n\t\t\t}\n\t\t}\n\n\t\t:deep(button) {\n\t\t\t// force white instead of default main text\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t// Force the Actions menu icon to be the same size as other icons\n\t\t&:deep(.action-item__menutoggle) {\n\t\t\tpadding: 0;\n\t\t\tspan, svg {\n\t\t\t\twidth: var(--icon-size);\n\t\t\t\theight: var(--icon-size);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.modal-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\n\t/* Navigation buttons */\n\t.prev,\n\t.next {\n\t\tz-index: 10000;\n\t\t// ignore display: none\n\t\tdisplay: flex !important;\n\t\theight: 35vw;\n\t\tposition: absolute;\n\t\ttransition: opacity 250ms,\n\t\t\tvisibility 250ms;\n\t\tcolor: var(--color-primary-text);\n\n\t\t&:focus-visible {\n\t\t\t// Override NcButton focus styles\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-text);\n\t\t\tbackground-color: var(--color-box-shadow);\n\t\t}\n\n\t\t// we want to keep the elements on page\n\t\t// even if hidden to avoid having a unbalanced\n\t\t// centered content\n\t\t// replace display by visibility\n\t\t&.invisible[style*='display:none'],\n\t\t&.invisible[style*='display: none'] {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\t.prev {\n\t\tleft: 2px;\n\t}\n\t.next {\n\t\tright: 2px;\n\t}\n\n\t/* Content */\n\t.modal-container {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\toverflow: auto; // avoids unecessary hacks if the content should be bigger than the modal\n\t\tpadding: 0;\n\t\ttransition: transform 300ms ease;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\t\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\n\t\t&__close {\n\t\t\tposition: absolute;\n\t\t\ttop: 4px;\n\t\t\tright: 4px;\n\t\t}\n\t}\n\n\t// Sizing\n\t&--small {\n\t\t.modal-container {\n\t\t\twidth: 400px;\n\t\t\tmax-width: 90%;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--normal {\n\t\t.modal-container {\n\t\t\tmax-width: 90%;\n\t\t\twidth: 600px;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--large {\n\t\t.modal-container {\n\t\t\tmax-width: 90%;\n\t\t\twidth: 900px;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--full {\n\t\t.modal-container {\n\t\t\twidth: 100%;\n\t\t\theight: calc(100% - var(--header-height));\n\t\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t// Make modal full screen on mobile\n\t@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\n\t\t.modal-container {\n\t\t\tmax-width: initial;\n\t\t\twidth: 100%;\n\t\t\tmax-height: initial;\n\t\t\theight: calc(100% - var(--header-height));\n\t\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n/* TRANSITIONS */\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-visibility-enter,\n.fade-visibility-leave-to {\n\tvisibility: hidden;\n\topacity: 0;\n}\n\n.modal-in-enter-active,\n.modal-in-leave-active,\n.modal-out-enter-active,\n.modal-out-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.modal-in-enter,\n.modal-in-leave-to,\n.modal-out-enter,\n.modal-out-leave-to {\n\topacity: 0;\n}\n\n.modal-in-enter .modal-container,\n.modal-in-leave-to .modal-container {\n\ttransform: scale(.9);\n}\n\n.modal-out-enter .modal-container,\n.modal-out-leave-to .modal-container {\n\ttransform: scale(1.1);\n}\n\n// animated circle\n$radius: 15;\n$pi: 3.14159265358979;\n\n.modal-mask .play-pause-icons {\n\t.progress-ring {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: rotate(-90deg);\n\t\t.progress-ring__circle {\n\t\t\ttransition: 100ms stroke-dashoffset;\n\t\t\ttransform-origin: 50% 50%; // axis compensation\n\t\t\tanimation: progressring linear var(--slideshow-duration) infinite;\n\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t\t\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\n\t\t}\n\t}\n\t&--paused {\n\t\t.icon-pause {\n\t\t\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\n\t\t}\n\t\t.progress-ring__circle {\n\t\t\tanimation-play-state: paused !important;\n\t\t}\n\t}\n}\n\n// keyframes get scoped too and break the animation name, we need them unscoped\n@keyframes progressring {\n\tfrom {\n\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t}\n\tto {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes breath {\n\t0% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},6422:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-6a6fde89]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-6a6fde89]{display:flex;max-width:100%}.name-parts__first[data-v-6a6fde89]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-6a6fde89],.name-parts__last[data-v-6a6fde89]{white-space:pre}.name-parts__first strong[data-v-6a6fde89],.name-parts__last strong[data-v-6a6fde89]{font-weight:bold}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcMultiselect/NcEllipsisedOption.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6BACC,YAAA,CACA,cAAA,CACA,oCACC,eAAA,CACA,sBAAA,CAED,uEAGC,eAAA,CACA,qFACC,gBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.name-parts {\n\tdisplay: flex;\n\tmax-width: 100%;\n\t&__first {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t&__first,\n\t&__last {\n\t\t// prevent whitespace from being trimmed\n\t\twhite-space: pre;\n\t\tstrong {\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},7098:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-0d67beae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-0d67beae]{color:var(--color-text-light) !important;background-color:var(--note-background) !important;border-inline-start:4px solid var(--note-theme);border-radius:var(--border-radius);margin:1rem 0;margin-top:1rem;padding:1rem;display:flex;flex-direction:row;gap:1rem}.notecard__icon--heading[data-v-0d67beae]{margin-bottom:auto;margin-top:.3rem}.notecard--success[data-v-0d67beae]{--note-background: rgba(var(--color-success-rgb), 0.1);--note-theme: var(--color-success)}.notecard--error[data-v-0d67beae]{--note-background: rgba(var(--color-error-rgb), 0.1);--note-theme: var(--color-error)}.notecard--warning[data-v-0d67beae]{--note-background: rgba(var(--color-warning-rgb), 0.1);--note-theme: var(--color-warning)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcNoteCard/NcNoteCard.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,wCAAA,CACA,kDAAA,CACA,+CAAA,CACA,kCAAA,CACA,aAAA,CACA,eAAA,CACA,YAAA,CACA,YAAA,CACA,kBAAA,CACA,QAAA,CAEA,0CACC,kBAAA,CACA,gBAAA,CAGD,oCACC,sDAAA,CACA,kCAAA,CAGD,kCACC,oDAAA,CACA,gCAAA,CAGD,oCACC,sDAAA,CACA,kCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.notecard {\n\tcolor: var(--color-text-light) !important;\n\tbackground-color: var(--note-background) !important;\n\tborder-inline-start: 4px solid var(--note-theme);\n\tborder-radius: var(--border-radius);\n\tmargin: 1rem 0;\n\tmargin-top: 1rem;\n\tpadding: 1rem;\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: 1rem;\n\n\t&__icon--heading {\n\t\tmargin-bottom: auto;\n\t\tmargin-top: 0.3rem;\n\t}\n\n\t&--success {\n\t\t--note-background: rgba(var(--color-success-rgb), 0.1);\n\t\t--note-theme: var(--color-success);\n\t}\n\n\t&--error {\n\t\t--note-background: rgba(var(--color-error-rgb), 0.1);\n\t\t--note-theme: var(--color-error);\n\t}\n\n\t&--warning {\n\t\t--note-background: rgba(var(--color-warning-rgb), 0.1);\n\t\t--note-theme: var(--color-warning);\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},1427:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0);pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper--theme-dropdown.v-popper__popper{z-index:100000;top:0;left:0;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-dropdown.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);overflow:hidden;background:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}.v-popper--theme-dropdown.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-dropdown.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-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-10px;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcPopover/NcPopover.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,iBACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CACA,aAAA,CACA,eAAA,CACA,SAAA,CAGD,wBACC,aAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,mBAAA,CACA,UAAA,CAMA,2CACC,cAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CAEA,sDAAA,CAEA,4DACC,SAAA,CACA,4BAAA,CACA,kCAAA,CACA,eAAA,CACA,uCAAA,CAGD,sEACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBA1BW,CA6BZ,kGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAGD,qGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAGD,oGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAGD,mGACC,WAAA,CACA,oBAAA,CACA,8CAAA,CAGD,6DACC,iBAAA,CACA,2EAAA,CACA,SAAA,CAGD,8DACC,kBAAA,CACA,yCAAA,CACA,SAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.resize-observer {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n\twidth:100%;\n\theight:100%;\n\tborder:none;\n\tbackground-color:transparent;\n\tpointer-events:none;\n\tdisplay:block;\n\toverflow:hidden;\n\topacity:0\n}\n\n.resize-observer object {\n\tdisplay:block;\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\theight:100%;\n\twidth:100%;\n\toverflow:hidden;\n\tpointer-events:none;\n\tz-index:-1\n}\n\n$arrow-width: 10px;\n\n.v-popper--theme-dropdown {\n\t&.v-popper__popper {\n\t\tz-index: 100000;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tdisplay: block !important;\n\n\t\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t\t.v-popper__inner {\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tborder-radius: var(--border-radius);\n\t\t\toverflow: hidden;\n\t\t\tbackground: var(--color-main-background);\n\t\t}\n\n\t\t.v-popper__arrow-container {\n\t\t\tposition: absolute;\n\t\t\tz-index: 1;\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t\tborder-color: transparent;\n\t\t\tborder-width: $arrow-width;\n\t\t}\n\n\t\t&[data-popper-placement^='top'] .v-popper__arrow-container {\n\t\t\tbottom: -$arrow-width;\n\t\t\tborder-bottom-width: 0;\n\t\t\tborder-top-color: var(--color-main-background);\n\t\t}\n\n\t\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\n\t\t\ttop: -$arrow-width;\n\t\t\tborder-top-width: 0;\n\t\t\tborder-bottom-color: var(--color-main-background);\n\t\t}\n\n\t\t&[data-popper-placement^='right'] .v-popper__arrow-container {\n\t\t\tleft: -$arrow-width;\n\t\t\tborder-left-width: 0;\n\t\t\tborder-right-color: var(--color-main-background);\n\t\t}\n\n\t\t&[data-popper-placement^='left'] .v-popper__arrow-container {\n\t\t\tright: -$arrow-width;\n\t\t\tborder-right-width: 0;\n\t\t\tborder-left-color: var(--color-main-background);\n\t\t}\n\n\t\t&[aria-hidden='true'] {\n\t\t\tvisibility: hidden;\n\t\t\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\n\t\t\topacity: 0;\n\t\t}\n\n\t\t&[aria-hidden='false'] {\n\t\t\tvisibility: visible;\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},2:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-31ffd2d4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}ul[data-v-31ffd2d4]{display:flex;flex-direction:column;gap:4px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcPopoverMenu/NcPopoverMenu.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oBACC,YAAA,CACA,qBAAA,CACA,OAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\nul {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n}\n"],sourceRoot:""}]),e.Z=o},5772:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,'.material-design-icon[data-v-0ce1cbf1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li[data-v-0ce1cbf1]{display:flex;flex:0 0 auto}li.hidden[data-v-0ce1cbf1]{display:none}li>button[data-v-0ce1cbf1],li>a[data-v-0ce1cbf1],li>.menuitem[data-v-0ce1cbf1]{cursor:pointer;line-height:44px;border:0;background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^=icon-][data-v-0ce1cbf1],li>button span[class*=" icon-"][data-v-0ce1cbf1],li>button[class^=icon-][data-v-0ce1cbf1],li>button[class*=" icon-"][data-v-0ce1cbf1],li>a span[class^=icon-][data-v-0ce1cbf1],li>a span[class*=" icon-"][data-v-0ce1cbf1],li>a[class^=icon-][data-v-0ce1cbf1],li>a[class*=" icon-"][data-v-0ce1cbf1],li>.menuitem span[class^=icon-][data-v-0ce1cbf1],li>.menuitem span[class*=" icon-"][data-v-0ce1cbf1],li>.menuitem[class^=icon-][data-v-0ce1cbf1],li>.menuitem[class*=" icon-"][data-v-0ce1cbf1]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^=icon-][data-v-0ce1cbf1],li>button span[class*=" icon-"][data-v-0ce1cbf1],li>a span[class^=icon-][data-v-0ce1cbf1],li>a span[class*=" icon-"][data-v-0ce1cbf1],li>.menuitem span[class^=icon-][data-v-0ce1cbf1],li>.menuitem span[class*=" icon-"][data-v-0ce1cbf1]{padding:22px 0 22px 44px}li>button:not([class^=icon-]):not([class*=icon-])>span[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>button:not([class^=icon-]):not([class*=icon-])>input[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>button:not([class^=icon-]):not([class*=icon-])>form[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>span[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>input[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>form[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>span[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>input[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>form[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}li>button[class^=icon-][data-v-0ce1cbf1],li>button[class*=" icon-"][data-v-0ce1cbf1],li>a[class^=icon-][data-v-0ce1cbf1],li>a[class*=" icon-"][data-v-0ce1cbf1],li>.menuitem[class^=icon-][data-v-0ce1cbf1],li>.menuitem[class*=" icon-"][data-v-0ce1cbf1]{padding:0 14px 0 44px}li>button[data-v-0ce1cbf1]:not(:disabled):hover,li>button[data-v-0ce1cbf1]:not(:disabled):focus,li>button:not(:disabled).active[data-v-0ce1cbf1],li>a[data-v-0ce1cbf1]:not(:disabled):hover,li>a[data-v-0ce1cbf1]:not(:disabled):focus,li>a:not(:disabled).active[data-v-0ce1cbf1],li>.menuitem[data-v-0ce1cbf1]:not(:disabled):hover,li>.menuitem[data-v-0ce1cbf1]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-0ce1cbf1]{opacity:1 !important}li>button.action[data-v-0ce1cbf1],li>a.action[data-v-0ce1cbf1],li>.menuitem.action[data-v-0ce1cbf1]{padding:inherit !important}li>button>span[data-v-0ce1cbf1],li>a>span[data-v-0ce1cbf1],li>.menuitem>span[data-v-0ce1cbf1]{cursor:pointer;white-space:nowrap}li>button>p[data-v-0ce1cbf1],li>a>p[data-v-0ce1cbf1],li>.menuitem>p[data-v-0ce1cbf1]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal;overflow:hidden;text-overflow:ellipsis}li>button>select[data-v-0ce1cbf1],li>a>select[data-v-0ce1cbf1],li>.menuitem>select[data-v-0ce1cbf1]{margin:0;margin-left:6px}li>button[data-v-0ce1cbf1]:not(:empty),li>a[data-v-0ce1cbf1]:not(:empty),li>.menuitem[data-v-0ce1cbf1]:not(:empty){padding-right:14px !important}li>button>img[data-v-0ce1cbf1],li>a>img[data-v-0ce1cbf1],li>.menuitem>img[data-v-0ce1cbf1]{width:16px;height:16px;margin:14px}li>button>input.radio+label[data-v-0ce1cbf1],li>button>input.checkbox+label[data-v-0ce1cbf1],li>a>input.radio+label[data-v-0ce1cbf1],li>a>input.checkbox+label[data-v-0ce1cbf1],li>.menuitem>input.radio+label[data-v-0ce1cbf1],li>.menuitem>input.checkbox+label[data-v-0ce1cbf1]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-0ce1cbf1]::before,li>a>input.checkbox+label[data-v-0ce1cbf1]::before,li>.menuitem>input.checkbox+label[data-v-0ce1cbf1]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-0ce1cbf1]::before,li>a>input.radio+label[data-v-0ce1cbf1]::before,li>.menuitem>input.radio+label[data-v-0ce1cbf1]::before{margin:-2px 12px 0}li>button>input[data-v-0ce1cbf1]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-0ce1cbf1]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-0ce1cbf1]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-0ce1cbf1],li>a form[data-v-0ce1cbf1],li>.menuitem form[data-v-0ce1cbf1]{display:flex;flex:1 1 auto}li>button form[data-v-0ce1cbf1]:not(:first-child),li>a form[data-v-0ce1cbf1]:not(:first-child),li>.menuitem form[data-v-0ce1cbf1]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-0ce1cbf1],li>button>span[style*="display:none"]+form[data-v-0ce1cbf1],li>a>span.hidden+form[data-v-0ce1cbf1],li>a>span[style*="display:none"]+form[data-v-0ce1cbf1],li>.menuitem>span.hidden+form[data-v-0ce1cbf1],li>.menuitem>span[style*="display:none"]+form[data-v-0ce1cbf1]{margin-left:0}li>button input[data-v-0ce1cbf1],li>a input[data-v-0ce1cbf1],li>.menuitem input[data-v-0ce1cbf1]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-0ce1cbf1]:not(:first-child),li>a input[data-v-0ce1cbf1]:not(:first-child),li>.menuitem input[data-v-0ce1cbf1]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*="display:none"]):first-of-type>button>form[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):first-of-type>button>input[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):first-of-type>a>form[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):first-of-type>a>input[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input[data-v-0ce1cbf1]{margin-top:12px}li:not(.hidden):not([style*="display:none"]):last-of-type>button>form[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):last-of-type>button>input[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):last-of-type>a>form[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):last-of-type>a>input[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form[data-v-0ce1cbf1],li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input[data-v-0ce1cbf1]{margin-bottom:12px}li>button[data-v-0ce1cbf1]{padding:0}li>button span[data-v-0ce1cbf1]{opacity:1}',"",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcPopoverMenu/NcPopoverMenuItem.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oBACC,YAAA,CACA,aAAA,CAEA,2BACC,YAAA,CAGD,+EAGC,cAAA,CACA,gBCWe,CDVf,QAAA,CACA,8BAAA,CACA,YAAA,CACA,sBAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBAAA,CACA,eAAA,CACA,UAAA,CACA,4BAAA,CACA,kBAAA,CACA,UCgBe,CDbf,ohBAIC,WAAA,CACA,YAAA,CACA,+BAAA,CACA,oBCRS,CDWV,yRAIC,wBAAA,CAQC,ylCACC,gBC5BY,CDiCf,2PAEC,qBAAA,CAGD,6aAGC,oBAAA,CAID,oGACC,0BAAA,CAGD,8FACC,cAAA,CACA,kBAAA,CAID,qFACC,WAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CAGA,eAAA,CACA,sBAAA,CAID,oGACC,QAAA,CACA,eAAA,CAID,mHACC,6BAAA,CAKD,2FACC,UC5ES,CD6ET,WC7ES,CD8ET,WC1EW,CD8EZ,mRAEC,oBAAA,CACA,UAAA,CAED,sKACC,kBAAA,CAED,6JACC,kBAAA,CAED,4QACC,WAAA,CAID,8FACC,YAAA,CACA,aAAA,CAGA,oJACC,eAAA,CAIF,oTAEC,aAAA,CAGD,iGACC,cCtHc,CDuHd,eAAA,CACA,YAAA,CACA,aAAA,CAEA,uJACC,eAAA,CAUA,+gBACC,eAAA,CAMD,ygBACC,kBAAA,CAKJ,2BACC,SAAA,CACA,gCACC,SCnIY",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'],\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^='icon-']):not([class*='icon-']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^='icon-']):not([class*='icon-']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\n\t\t}\n\n\t\t> span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tmargin: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*='display:none'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*='display:none']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},291:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-3d7aaa3a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-3d7aaa3a]{display:block;width:100%;background:var(--color-background-dark);border:0;padding:0;height:var(--progress-bar-height);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-3d7aaa3a]::-webkit-progress-bar{height:var(--progress-bar-height)}.progress-bar[data-v-3d7aaa3a]::-webkit-progress-value{background:linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-3d7aaa3a]::-moz-progress-bar{background:linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar--error[data-v-3d7aaa3a]::-moz-progress-bar{background:var(--color-error) !important}.progress-bar--error[data-v-3d7aaa3a]::-webkit-progress-value{background:var(--color-error) !important}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcProgressBar/NcProgressBar.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,+BACC,aAAA,CACA,UAAA,CACA,uCAAA,CACA,QAAA,CACA,SAAA,CACA,iCAAA,CACA,gDAAA,CACA,qDACC,iCAAA,CAED,uDACC,2GAAA,CACA,gDAAA,CAED,kDACC,2GAAA,CACA,gDAAA,CAIA,yDACC,wCAAA,CAED,8DACC,wCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n\n.progress-bar {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground: var(--color-background-dark);\n\tborder: 0;\n\tpadding: 0;\n\theight: var(--progress-bar-height);\n\tborder-radius: calc(var(--progress-bar-height) / 2);\n\t&::-webkit-progress-bar {\n\t\theight: var(--progress-bar-height);\n\t}\n\t&::-webkit-progress-value {\n\t\tbackground: linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);\n\t\tborder-radius: calc(var(--progress-bar-height) / 2);\n\t}\n\t&::-moz-progress-bar {\n\t\tbackground: linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);\n\t\tborder-radius: calc(var(--progress-bar-height) / 2);\n\t}\n\t&--error {\n\t\t// Override previous values\n\t\t&::-moz-progress-bar {\n\t\t\tbackground: var(--color-error) !important;\n\t\t}\n\t\t&::-webkit-progress-value {\n\t\t\tbackground: var(--color-error) !important;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},9965:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-bbd87134]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.related-resources__header[data-v-bbd87134]{margin:0 0 10px 46px}.related-resources__header h5[data-v-bbd87134]{font-weight:bold}.related-resources__header p[data-v-bbd87134]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,4CACC,oBAAA,CAEA,+CACC,gBAAA,CAGD,8CACC,mCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.related-resources {\n\t&__header {\n\t\tmargin: 0 0 10px 46px;\n\n\t\th5 {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},9817:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-718b7224]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resource[data-v-718b7224]{display:flex;align-items:center;height:44px}.resource__button[data-v-718b7224]{width:100% !important;justify-content:flex-start !important;padding:0 !important}.resource__button[data-v-718b7224] .button-vue__text{font-weight:normal !important;margin-left:2px !important}.resource__icon[data-v-718b7224]{width:32px;height:32px;background-color:var(--color-text-maxcontrast);border-radius:50%;display:flex;align-items:center;justify-content:center}.resource__icon img[data-v-718b7224]{width:16px;height:16px;filter:var(--background-invert-if-dark)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcRelatedResourcesPanel/NcResource.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,YAAA,CACA,kBAAA,CACA,WAAA,CAGA,mCACC,qBAAA,CACA,qCAAA,CACA,oBAAA,CAEA,qDACC,6BAAA,CACA,0BAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,8CAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,qCACC,UAAA,CACA,WAAA,CACA,uCAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.resource {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 100% !important;\n\t\tjustify-content: flex-start !important;\n\t\tpadding: 0 !important;\n\n\t\t&:deep(.button-vue__text) {\n\t\t\tfont-weight: normal !important;\n\t\t\tmargin-left: 2px !important;\n\t\t}\n\t}\n\n\t&__icon {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},3767:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(3423),n.b),c=new URL(n(2605),n.b),d=new URL(n(7127),n.b),u=o()(i()),p=l()(A),m=l()(c),h=l()(d);u.push([t.id,".material-design-icon[data-v-e2e54e2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.autocomplete-result[data-v-e2e54e2a]{display:flex;height:44px;padding:10px}.highlight .autocomplete-result[data-v-e2e54e2a]{color:var(--color-main-text);background:var(--color-primary-light)}.highlight .autocomplete-result[data-v-e2e54e2a],.highlight .autocomplete-result *[data-v-e2e54e2a]{cursor:pointer}.autocomplete-result__icon[data-v-e2e54e2a]{position:relative;flex:0 0 44px;width:44px;min-width:44px;height:44px;border-radius:44px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:24px}.autocomplete-result__icon--with-avatar[data-v-e2e54e2a]{color:inherit;background-size:cover}.autocomplete-result__status[data-v-e2e54e2a]{position:absolute;right:-4px;bottom:-4px;box-sizing:border-box;width:18px;height:18px;border:2px solid var(--color-main-background);border-radius:50%;background-color:var(--color-main-background);font-size:var(--default-font-size);line-height:15px;background-repeat:no-repeat;background-size:16px;background-position:center}.autocomplete-result__status--online[data-v-e2e54e2a]{background-image:url("+p+")}.autocomplete-result__status--dnd[data-v-e2e54e2a]{background-image:url("+m+");background-color:#fff}.autocomplete-result__status--away[data-v-e2e54e2a]{background-image:url("+h+")}.autocomplete-result__status--icon[data-v-e2e54e2a]{border:none;background-color:rgba(0,0,0,0)}.autocomplete-result__content[data-v-e2e54e2a]{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;min-width:0;padding-left:10px}.autocomplete-result__title[data-v-e2e54e2a],.autocomplete-result__subline[data-v-e2e54e2a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-result__subline[data-v-e2e54e2a]{color:var(--color-text-lighter)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcRichContenteditable/NcAutoCompleteResult.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,sCACC,YAAA,CACA,WCmBgB,CDlBhB,YALsB,CAOtB,iDACC,4BAAA,CACA,qCAAA,CACA,oGACC,cAAA,CAIF,4CACC,iBAAA,CACA,aAAA,CACA,UCKe,CDJf,cCIe,CDHf,WCGe,CDFf,kBCEe,CDDf,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CACA,yDACC,aAAA,CACA,qBAAA,CAIF,8CACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,6CAAA,CACA,iBAAA,CACA,6CAAA,CACA,kCAAA,CACA,gBAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CAEA,sDACC,wDAAA,CAED,mDACC,wDAAA,CACA,qBAAA,CAED,oDACC,wDAAA,CAED,oDACC,WAAA,CACA,8BAAA,CAIF,+CACC,YAAA,CACA,aAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CACA,iBAtEqB,CAyEtB,4FAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CAGD,+CACC,+BAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n$autocomplete-padding: 10px;\n\n.autocomplete-result {\n\tdisplay: flex;\n\theight: $clickable-area;\n\tpadding: $autocomplete-padding;\n\n\t.highlight & {\n\t\tcolor: var(--color-main-text);\n\t\tbackground: var(--color-primary-light);\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\tflex: 0 0 $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\theight: $clickable-area;\n\t\tborder-radius: $clickable-area;\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $clickable-area - 2 * $autocomplete-padding;\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__status {\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\tbox-sizing: border-box;\n\t\twidth: 18px;\n\t\theight: 18px;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: 50%;\n\t\tbackground-color: var(--color-main-background);\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: 15px;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 16px;\n\t\tbackground-position: center;\n\n\t\t&--online{\n\t\t\tbackground-image: url('../../assets/status-icons/user-status-online.svg');\n\t\t}\n\t\t&--dnd{\n\t\t\tbackground-image: url('../../assets/status-icons/user-status-dnd.svg');\n\t\t\tbackground-color: #ffffff;\n\t\t}\n\t\t&--away{\n\t\t\tbackground-image: url('../../assets/status-icons/user-status-away.svg');\n\t\t}\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex: 1 1 100%;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-width: 0;\n\t\tpadding-left: $autocomplete-padding;\n\t}\n\n\t&__title,\n\t&__subline {\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__subline {\n\t\tcolor: var(--color-text-lighter);\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=u},4477:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-32fccbe9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-32fccbe9]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-32fccbe9]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-32fccbe9]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-32fccbe9]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-32fccbe9]{color:inherit;background-size:cover}.mention-bubble__title[data-v-32fccbe9]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-32fccbe9]::before{content:attr(title)}.mention-bubble__select[data-v-32fccbe9]{position:absolute;z-index:-1;left:-1000px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcRichContenteditable/NcMentionBubble.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CAAA,mECCC,+BAAA,CACA,6CAAA,CAGD,0CACC,eAXiB,CAajB,WAAA,CACA,0BAAA,CACA,mBAAA,CACA,kBAAA,CAGD,0CACC,mBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,WAzBc,CA0Bd,wBAAA,CACA,gBAAA,CACA,iBAAA,CACA,gBA3Be,CA4Bf,kBAAA,CACA,6CAAA,CAGD,uCACC,iBAAA,CACA,UAjCmB,CAkCnB,WAlCmB,CAmCnB,iBAAA,CACA,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,oDACC,aAAA,CACA,qBAAA,CAIF,wCACC,eAAA,CACA,eAlDe,CAmDf,kBAAA,CACA,sBAAA,CAEA,gDACC,mBAAA,CAKF,yCACC,iBAAA,CACA,UAAA,CACA,YAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put label in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},7689:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-47912cde]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-contenteditable__input[data-v-47912cde]{overflow-y:auto;width:auto;margin:0;padding:6px;cursor:text;white-space:pre-wrap;word-break:break-word;color:var(--color-main-text);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-large);outline:none;background-color:var(--color-main-background);font-family:var(--font-face);font-size:inherit;min-height:44px;max-height:242px}.rich-contenteditable__input--empty[data-v-47912cde]:before{content:attr(placeholder);color:var(--color-text-maxcontrast)}.rich-contenteditable__input[contenteditable=false][data-v-47912cde]:not(.rich-contenteditable__input--disabled){cursor:default;background-color:rgba(0,0,0,0);color:var(--color-main-text);border-color:rgba(0,0,0,0);opacity:1;border-radius:0}.rich-contenteditable__input--multiline[data-v-47912cde]{min-height:132px;max-height:none}.rich-contenteditable__input--disabled[data-v-47912cde]{opacity:.5;color:var(--color-text-lighter);border:1px solid var(--color-background-darker);border-radius:var(--border-radius);background-color:var(--color-background-dark)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcRichContenteditable/NcRichContenteditable.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8CACC,eAAA,CACA,UAAA,CACA,QAAA,CACA,WAAA,CACA,WAAA,CACA,oBAAA,CACA,qBAAA,CACA,4BAAA,CACA,yCAAA,CACA,wCAAA,CACA,YAAA,CACA,6CAAA,CACA,4BAAA,CACA,iBAAA,CACA,eCOgB,CDNhB,gBAAA,CAGA,4DACC,yBAAA,CACA,mCAAA,CAGD,iHACC,cAAA,CACA,8BAAA,CACA,4BAAA,CACA,0BAAA,CACA,SAAA,CACA,eAAA,CAGD,yDACC,gBAAA,CAEA,eAAA,CAGD,wDACC,UCDiB,CDEjB,+BAAA,CACA,+CAAA,CACA,kCAAA,CACA,6CAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n// Standalone styling, independent from server\n.rich-contenteditable__input {\n\toverflow-y: auto;\n\twidth: auto;\n\tmargin: 0;\n\tpadding: 6px;\n\tcursor: text;\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\tcolor: var(--color-main-text);\n\tborder: 1px solid var(--color-border-dark);\n\tborder-radius: var(--border-radius-large);\n\toutline: none;\n\tbackground-color: var(--color-main-background);\n\tfont-family: var(--font-face);\n\tfont-size: inherit;\n\tmin-height: $clickable-area;\n\tmax-height: $clickable-area * 5.5;\n\n\t// Cannot use :empty because of firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1513303\n\t&--empty:before {\n\t\tcontent: attr(placeholder);\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&[contenteditable='false']:not(&--disabled) {\n\t\tcursor: default;\n\t\tbackground-color: transparent;\n\t\tcolor: var(--color-main-text);\n\t\tborder-color: transparent;\n\t\topacity: 1;\n\t\tborder-radius: 0;\n\t}\n\n\t&--multiline {\n\t\tmin-height: $clickable-area * 3;\n\t\t// No max for mutiline\n\t\tmax-height: none;\n\t}\n\n\t&--disabled {\n\t\topacity: $opacity_disabled;\n\t\tcolor: var(--color-text-lighter);\n\t\tborder: 1px solid var(--color-background-darker);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},7335:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.tribute-container,.tribute-container-emoji{z-index:9000;overflow:auto;min-width:250px;max-width:300px;max-height:288px;margin:5px 0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background);box-shadow:0 1px 5px var(--color-box-shadow)}.tribute-container-emoji{min-width:200px;max-width:200px;padding:4px;max-height:187.25px}.tribute-container-emoji__item{border-radius:8px;padding:4px 8px;margin-bottom:4px;opacity:.8;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tribute-container-emoji__item:last-child{margin-bottom:0}.tribute-container-emoji__item__emoji{padding-right:8px}.tribute-container-emoji .highlight{opacity:1;color:var(--color-main-text);background:var(--color-primary-light)}.tribute-container-emoji .highlight,.tribute-container-emoji .highlight *{cursor:pointer}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcRichContenteditable/NcRichContenteditable.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,4CACC,YAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CAGA,gBAAA,CAEA,YAAA,CACA,4BAAA,CACA,kCAAA,CACA,uCAAA,CACA,4CAAA,CAGD,yBACC,eAAA,CACA,eAAA,CACA,WAAA,CAEA,mBAAA,CAEA,+BACC,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,UAAA,CACA,cAAA,CAGA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,0CACC,eAAA,CAGD,sCACC,iBAAA,CAIF,oCACC,SAAA,CACA,4BAAA,CACA,qCAAA,CACA,0EACC,cAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.tribute-container, .tribute-container-emoji {\n\tz-index: 9000;\n\toverflow: auto;\n\tmin-width: 250px;\n\tmax-width: 300px;\n\t// Show maximum 4 entries and a half to show scroll\n\t// 44px + 10px padding\n\tmax-height: ($clickable-area + 20px) * 4.5;\n\t// Space it out a bit from the text\n\tmargin: 5px 0;\n\tcolor: var(--color-main-text);\n\tborder-radius: var(--border-radius);\n\tbackground: var(--color-main-background);\n\tbox-shadow: 0 1px 5px var(--color-box-shadow);\n}\n\n.tribute-container-emoji {\n\tmin-width: 200px;\n\tmax-width: 200px;\n\tpadding: 4px;\n\t// Show maximum 5 entries and a half to show scroll\n\tmax-height: 34.5px * 5 + math.div(29.5px, 2);\n\n\t&__item {\n\t\tborder-radius: 8px;\n\t\tpadding: 4px 8px;\n\t\tmargin-bottom: 4px;\n\t\topacity: 0.8;\n\t\tcursor: pointer;\n\n\t\t// Take care of long names\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\n\t\t&:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t&__emoji {\n\t\t\tpadding-right: 8px;\n\t\t}\n\t}\n\n\t.highlight {\n\t\topacity: 1;\n\t\tcolor: var(--color-main-text);\n\t\tbackground: var(--color-primary-light);\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},1751:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-751c6bad]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.settings-section[data-v-751c6bad]{display:block;margin-bottom:auto;padding:30px}.settings-section[data-v-751c6bad]:not(:last-child){border-bottom:1px solid var(--color-border)}.settings-section--limit-width>*[data-v-751c6bad]{max-width:900px}.settings-section__title[data-v-751c6bad]{display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:bold;max-width:900px}.settings-section__info[data-v-751c6bad]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-14px;margin-left:0;opacity:.7}.settings-section__info[data-v-751c6bad]:hover,.settings-section__info[data-v-751c6bad]:focus,.settings-section__info[data-v-751c6bad]:active{opacity:1}.settings-section__desc[data-v-751c6bad]{margin-top:-0.2em;margin-bottom:1em;opacity:.7;max-width:900px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcSettingsSection/NcSettingsSection.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,mCACC,aAAA,CACA,kBAAA,CACA,YAAA,CAEA,oDACC,2CAAA,CAGD,kDACC,eAZS,CAeV,0CACC,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,gBAAA,CACA,eArBS,CAwBV,yCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UCLe,CDMf,WCNe,CDQf,YAAA,CACA,aAAA,CACA,UCQe,CDNf,8IACC,SCMY,CDFd,yCACC,iBAAA,CACA,iBAAA,CACA,UCFe,CDGf,eA5CS",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n$maxWidth: 900px;\n\n.settings-section {\n\tdisplay: block;\n\tmargin-bottom: auto;\n\tpadding: 30px;\n\n\t&:not(:last-child) {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&--limit-width > * {\n\t\tmax-width: $maxWidth;\n\t}\n\n\t&__title {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 20px;\n\t\tfont-weight: bold;\n\t\tmax-width: $maxWidth;\n\t}\n\n\t&__info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\t// make sure to properly align the icon with the text\n\t\tmargin: -$icon-margin;\n\t\tmargin-left: 0;\n\t\topacity: $opacity_normal;\n\n\t\t&:hover, &:focus, &:active {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n\n\t&__desc {\n\t\tmargin-top: -.2em;\n\t\tmargin-bottom: 1em;\n\t\topacity: $opacity_normal;\n\t\tmax-width: $maxWidth;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: math.div($clickable-area - $icon-size, 2);\n\n// transparency background for icons\n$icon-focus-bg: rgba(127, 127, 127, .25);\n\n// popovermenu arrow width from the triangle center\n$arrow-width: 9px;\n\n// opacities\n$opacity_disabled: .5;\n$opacity_normal: .7;\n$opacity_full: 1;\n\n// menu round background hover feedback\n// good looking on dark AND white bg\n$action-background-hover: rgba(127, 127, 127, .25);\n\n// various structure data used in the \n// `AppNavigation` component\n$header-height: 50px;\n$navigation-width: 300px;\n\n// mobile breakpoint\n$breakpoint-mobile: 1024px;\n\n// top-bar spacing\n$topbar-margin: 4px;\n\n// navigation spacing\n$app-navigation-settings-margin: 3px;\n"],sourceRoot:""}]),e.Z=o},7887:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-3992c512]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}[data-v-3992c512] .multiselect__tags{border:none !important}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcTimezonePicker/NcTimezonePicker.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,qCACC,sBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n:deep(.multiselect__tags) {\n\tborder: none !important; // Remove the Multiselect border\n}\n"],sourceRoot:""}]),e.Z=o},4188:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,".material-design-icon[data-v-46260473]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-bubble__wrapper[data-v-46260473]{display:inline-block;vertical-align:middle;min-width:0;max-width:100%}.user-bubble__content[data-v-46260473]{display:inline-flex;max-width:100%;background-color:var(--color-background-dark)}.user-bubble__content--primary[data-v-46260473]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.user-bubble__content[data-v-46260473]>:last-child{padding-right:8px}.user-bubble__avatar[data-v-46260473]{align-self:center}.user-bubble__title[data-v-46260473]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-bubble__title[data-v-46260473],.user-bubble__secondary[data-v-46260473]{padding:0;padding-left:4px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcUserBubble/NcUserBubble.vue"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,uCAEC,oBAAA,CACA,qBAAA,CAEA,WAAA,CACA,cAAA,CAGD,uCACC,mBAAA,CACA,cAAA,CACA,6CAAA,CAEA,gDACC,+BAAA,CACA,6CAAA,CAGD,mDAEC,iBAAA,CAIF,sCACC,iBAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAGD,8EAGC,SAAA,CACA,gBAAA",sourcesContent:["/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n\tdisplay: flex;\n\talign-self: center;\n\tjustify-self: center;\n\talign-items: center;\n\tjustify-content: center;\n}\n","@use 'sass:math'; $scope_version:\"a0481fe\"; @import 'variables'; @import 'material-icons';\n\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius left padding\n\t\t\tpadding-right: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__title,\n\t&__secondary {\n\t\t// proper spacing between avatar, title & slot\n\t\tpadding: 0;\n\t\tpadding-left: 4px;\n\t}\n}\n\n"],sourceRoot:""}]),e.Z=o},5999:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,"\n.app-navigation-spacer[data-v-e9226d86] {\n\tflex-shrink: 0;\n\torder: 1;\n\theight: 22px;\n}\n\n","",{version:3,sources:["webpack://./src/components/NcAppNavigationSpacer/NcAppNavigationSpacer.vue"],names:[],mappings:";AAwCA;CACA,cAAA;CACA,QAAA;CACA,YAAA;AACA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2019 Christoph Wurst \n -\n - @author Christoph Wurst \n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see .\n -\n --\x3e\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ninput[type=color][data-v-118ca296]:disabled {\\n\\tcursor: not-allowed;\\n\\topacity: unset;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/ColorpickerWidget.vue\"],\"names\":[],\"mappings\":\";AA8GA;CACA,mBAAA;CACA,cAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.frame[data-v-eece113e] {\\n\\tborder: 1px solid #ccc;\\n\\tbox-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);\\n\\tcolor: #616161;\\n\\tmargin: 10px;\\n\\tpadding: 10px;\\n}\\n.frame h2[data-v-eece113e] {\\n\\tfont-weight: 500;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/FrameWidget.vue\"],\"names\":[],\"mappings\":\";AA0BA;CACA,sBAAA;CACA,iGAAA;CACA,cAAA;CACA,YAAA;CACA,aAAA;AACA;AAEA;CACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#app-content > div[data-v-91428bb8] {\\n\\twidth: 100%;\\n\\tpadding: 5px;\\n\\tpadding-left: 48px;\\n\\tdisplay: flex;\\n\\tflex-grow: 1;\\n\\tflex-wrap: wrap;\\n}\\n#emptycontent[data-v-91428bb8] {\\n\\tjustify-content: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/MainView.vue\"],\"names\":[],\"mappings\":\";AAyGA;CACA,WAAA;CACA,YAAA;CACA,kBAAA;CACA,aAAA;CACA,YAAA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.group-wrapper {\\n display: flex;\\n flex-direction: column;\\n}\\n.group-header {\\n cursor: pointer;\\n display: flex;\\n}\\n.entry-wrapper {\\n\\tborder-bottom: 1px solid #eee;\\n\\tdisplay: flex;\\n\\tpadding: 10px;\\n}\\n.entry {\\n\\tdisplay: flex;\\n\\tflex: 1;\\n\\tjustify-content: space-between;\\n}\\n.entry .label {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n.entry .value {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tfont-weight: bold;\\n\\tmargin-left: 30px;\\n}\\n.toggle-icon {\\n display: inline-block;\\n width: 12px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Widget.vue\"],\"names\":[],\"mappings\":\";AAyDA;EACA,aAAA;EACA,sBAAA;AACA;AACA;EACA,eAAA;EACA,aAAA;AACA;AACA;CACA,6BAAA;CACA,aAAA;CACA,aAAA;AACA;AACA;CACA,aAAA;CACA,OAAA;CACA,8BAAA;AACA;AACA;CACA,aAAA;CACA,mBAAA;AACA;AACA;CACA,aAAA;CACA,mBAAA;CACA,iBAAA;CACA,iBAAA;AACA;AACA;EACA,qBAAA;EACA,WAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.EmojiMart=t():e.EmojiMart=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(){var e={661:function(){\"undefined\"!=typeof window&&function(){for(var e=0,t=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;ie.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var n=t.value,r=e[n];e[n]=r&&\"object\"===u(r)?d(r):r}}catch(e){i.e(e)}finally{i.f()}return Object.freeze(e)}var f,p,v=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var n in h)i[n]=i[h[n]],delete i[h[n]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=\"\"),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=m(i)}return d(e)},j=[\"+1\",\"grinning\",\"kissing_heart\",\"heart_eyes\",\"laughing\",\"stuck_out_tongue_winking_eye\",\"sweat_smile\",\"joy\",\"scream\",\"disappointed\",\"unamused\",\"weary\",\"sob\",\"sunglasses\",\"heart\",\"hankey\"],y={};function g(){p=!0,f=c.get(\"frequently\")}var w={add:function(e){p||g();var t=e.id;f||(f=y),f[t]||(f[t]=0),f[t]+=1,c.set(\"last\",t),c.set(\"frequently\",f)},get:function(e){if(p||g(),!f){y={};for(var t=[],i=Math.min(e,j.length),n=0;n',custom:'',flags:'',foods:'',nature:'',objects:'',smileys:'',people:' ',places:'',recent:'',symbols:''};function C(e,t,i,n,r,o,s,a){var c,u=\"function\"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),s?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:e,options:u}}var b=C({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},created:function(){this.svgs=_}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"emoji-mart-anchors\",attrs:{role:\"tablist\"}},e._l(e.categories,(function(t){return i(\"button\",{key:t.id,class:{\"emoji-mart-anchor\":!0,\"emoji-mart-anchor-selected\":t.id==e.activeCategory.id},style:{color:t.id==e.activeCategory.id?e.color:\"\"},attrs:{role:\"tab\",type:\"button\",\"aria-label\":t.name,\"aria-selected\":t.id==e.activeCategory.id,\"data-title\":e.i18n.categories[t.id]},on:{click:function(i){return e.$emit(\"click\",t)}}},[i(\"div\",{attrs:{\"aria-hidden\":\"true\"},domProps:{innerHTML:e._s(e.svgs[t.id])}}),e._v(\" \"),i(\"span\",{staticClass:\"emoji-mart-anchor-bar\",style:{backgroundColor:e.color},attrs:{\"aria-hidden\":\"true\"}})])})),0)}),[],!1,null,null,null),k=b.exports;function E(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function S(e,t){for(var i=0;i1114111||Math.floor(a)!=a)throw RangeError(\"Invalid code point: \"+a);a<=65535?n.push(a):(e=55296+((a-=65536)>>10),t=a%1024+56320,n.push(e,t)),(r+1===o||n.length>i)&&(s+=String.fromCharCode.apply(null,n),n.length=0)}return s};function P(e){var t=e.split(\"-\").map((function(e){return\"0x\".concat(e)}));return O.apply(null,t)}function A(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function M(e,t){var i=A(e),n=A(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function I(e,t){var i={};for(var n in e){var r=e[n],o=r;t.hasOwnProperty(n)&&(o=t[n]),\"object\"===u(o)&&(o=I(r,o)),i[n]=o}return i}function F(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return z(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?z(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i1&&void 0!==arguments[1]?arguments[1]:{},n=i.emojisToShowFilter,r=i.include,o=i.exclude,s=i.custom,a=i.recent,c=i.recentLength,u=void 0===c?20:c;E(this,e),this._data=v(t),this._emojisFilter=n||null,this._include=r||null,this._exclude=o||null,this._custom=s||[],this._recent=a||w.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:\"recent\",name:\"Recent\",emojis:[]},this._customCategory={id:\"custom\",name:\"Custom\",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}return x(e,[{key:\"buildIndex\",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,i){var n=e._include.indexOf(t.id),r=e._include.indexOf(i.id);return nr?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var i={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var n=e.addEmoji(t);n&&i.emojis.push(n)})),i.emojis.length&&e._categories.push(i)}})),this.isCategoryNeeded(\"custom\")){if(this._custom.length>0){var i,n=F(this._custom);try{for(n.s();!(i=n.n()).done;){var r=i.value;this.addCustomEmoji(r)}}catch(e){n.e(e)}finally{n.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded(\"recent\")&&(this._recent.length&&this._recent.map((function(t){var i,n=F(e._customCategory.emojis);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){n.e(e)}finally{n.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:\"findEmoji\",value:function(e,t){var i=e.match(L);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var n=this._emojis[e];return t?n.getSkin(t):n}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"categories\",value:function(){return this._categories}},{key:\"emoji\",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error(\"Can not find emoji by id: \"+e);return t}},{key:\"firstEmoji\",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error(\"Can not get first emoji\");return e}},{key:\"hasEmoji\",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:\"nativeEmoji\",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"search\",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(\"-\"==e||\"-1\"==e)return[this.emoji(\"-1\")];var n,r=e.toLowerCase().split(/[\\s|,|\\-|_]+/);r.length>2&&(r=[r[0],r[1]]),n=r.map((function(e){for(var t=i._emojis,n=i._searchIndex,r=0,o=0;o1?M.apply(null,n):n.length?n[0]:[])&&o.length>t&&(o=o.slice(0,t)),o}},{key:\"addCustomEmoji\",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=m(t));var i=new $(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:\"addEmoji\",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var n=new $(i);if(this._emojis[e]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(var r in n._skins){var o=n._skins[r];o.native&&(this._nativeEmojis[o.native]=o)}return n.emoticons&&n.emoticons.forEach((function(i){t._emoticons[i]||(t._emoticons[i]=e)})),n}},{key:\"isCategoryNeeded\",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:\"isEmojiNeeded\",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}]),e}(),$=function(){function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],T){var n=T[i],r=this._data.skin_variations[n],o=Object.assign({},t);for(var s in r)o[s]=r[s];delete o.skin_variations,o.skin_tone=parseInt(i)+1,this._skins.push(new e(o))}for(var a in this._sanitized=N(this._data),this._sanitized)this[a]=this._sanitized[a];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}return x(e,[{key:\"getSkin\",value:function(e){return e&&\"native\"!=e&&this._skins?this._skins[e-1]:this}},{key:\"getPosition\",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return\"\".concat(e,\"% \").concat(t,\"%\")}},{key:\"ariaLabel\",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(\", \")}}]),e}(),R=function(){function e(t,i,n,r,o,s,a){E(this,e),this._emoji=t,this._native=r,this._skin=i,this._set=n,this._fallback=o,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(a),this.content=this._content(),this.title=!0===s?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}return x(e,[{key:\"getEmoji\",value:function(){return this._emoji.getSkin(this._skin)}},{key:\"_canRender\",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:\"_cssClass\",value:function(){return[\"emoji-set-\"+this._set,\"emoji-type-\"+this._emojiType()]}},{key:\"_cssStyle\",value:function(e){var t={};return this._isCustom()?t={backgroundImage:\"url(\"+this.getEmoji()._data.imageUrl+\")\",backgroundSize:\"100%\",width:e+\"px\",height:e+\"px\"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+\"px\"}):Object.assign(t,{width:e+\"px\",height:e+\"px\"})),t}},{key:\"_content\",value:function(){return this._isCustom()?\"\":this._isNative()?this.getEmoji().native:this._hasEmoji()?\"\":this._fallback?this._fallback(this.getEmoji()):null}},{key:\"_isNative\",value:function(){return this._native}},{key:\"_isCustom\",value:function(){return this.getEmoji().custom}},{key:\"_hasEmoji\",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data[\"has_img_\"+this._set];return void 0===e||e}},{key:\"_emojiType\",value:function(){return this._isCustom()?\"custom\":this._isNative()?\"native\":this._hasEmoji()?\"image\":\"fallback\"}}]),e}();function N(e){var t=e.name,i=e.short_names,n=e.skin_tone,r=e.skin_variations,o=e.emoticons,s=e.unified,a=e.custom,c=e.imageUrl,u=e.id||i[0],l=\":\".concat(u,\":\");return a?{id:u,name:t,colons:l,emoticons:o,custom:a,imageUrl:c}:(n&&(l+=\":skin-tone-\".concat(n,\":\")),{id:u,name:t,colons:l,emoticons:o,unified:s.toLowerCase(),skin:n||(r?1:null),native:P(s)})}function D(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var B={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:\"apple\"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:\"span\"}},H={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:\"Emoji Mart™\"},emoji:{type:String,default:\"department_store\"},color:{type:String,default:\"#ae65c5\"},set:{type:String,default:\"apple\"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function U(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function V(e){for(var t=1;t0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new R(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:W}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isVisible&&(e.isSearch||e.hasResults)?i(\"section\",{class:{\"emoji-mart-category\":!0,\"emoji-mart-no-results\":!e.hasResults},attrs:{\"aria-label\":e.i18n.categories[e.id]}},[i(\"div\",{staticClass:\"emoji-mart-category-label\"},[i(\"h3\",{staticClass:\"emoji-mart-category-label\"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(\" \"),e._l(e.emojiObjects,(function(t){var n=t.emojiObject,r=t.emojiView;return[r.canRender?i(\"button\",{key:n.id,staticClass:\"emoji-mart-emoji\",class:e.activeClass(n),attrs:{\"aria-label\":r.ariaLabel,role:\"option\",\"aria-selected\":\"false\",\"aria-posinset\":\"1\",\"aria-setsize\":\"1812\",type:\"button\",\"data-title\":n.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[i(\"span\",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(\" \"),e.hasResults?e._e():i(\"div\",[i(\"emoji\",{attrs:{data:e.data,emoji:\"sleuth_or_spy\",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-no-results-label\"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,X=C({props:{skin:{type:Number,required:!0}},data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit(\"change\",e),this.opened=!this.opened}}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{class:{\"emoji-mart-skin-swatches\":!0,\"emoji-mart-skin-swatches-opened\":e.opened}},e._l(6,(function(t){return i(\"span\",{key:t,class:{\"emoji-mart-skin-swatch\":!0,\"emoji-mart-skin-swatch-selected\":e.skin==t}},[i(\"span\",{class:\"emoji-mart-skin emoji-mart-skin-tone-\"+t,on:{click:function(i){return e.onClick(t)}}})])})),0)}),[],!1,null,null,null).exports,Z=C({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:W,Skins:X}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"emoji-mart-preview\"},[e.emoji?[i(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[i(\"emoji\",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-data\"},[i(\"div\",{staticClass:\"emoji-mart-preview-name\"},[e._v(e._s(e.emoji.name))]),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-shortnames\"},e._l(e.emojiShortNames,(function(t){return i(\"span\",{key:t,staticClass:\"emoji-mart-preview-shortname\"},[e._v(\":\"+e._s(t)+\":\")])})),0),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-emoticons\"},e._l(e.emojiEmoticons,(function(t){return i(\"span\",{key:t,staticClass:\"emoji-mart-preview-emoticon\"},[e._v(e._s(t))])})),0)])]:[i(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[i(\"emoji\",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),i(\"div\",{staticClass:\"emoji-mart-preview-data\"},[i(\"span\",{staticClass:\"emoji-mart-title-label\"},[e._v(e._s(e.title))])]),e._v(\" \"),e.showSkinTones?i(\"div\",{staticClass:\"emoji-mart-preview-skins\"},[i(\"skins\",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,G=C({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},data:function(){return{value:\"\"}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit(\"search\",this.value)}},methods:{clear:function(){this.value=\"\"}},mounted:function(){var e=this.$el.querySelector(\"input\");this.autoFocus&&e.focus()}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"emoji-mart-search\"},[i(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.value,expression:\"value\"}],attrs:{type:\"text\",placeholder:e.i18n.search,role:\"textbox\",\"aria-autocomplete\":\"list\",\"aria-owns\":\"emoji-mart-list\",\"aria-label\":\"Search for an emoji\",\"aria-describedby\":\"emoji-mart-search-description\"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"left\",37,t.key,[\"Left\",\"ArrowLeft\"])||\"button\"in t&&0!==t.button?null:function(t){return e.$emit(\"arrowLeft\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"right\",39,t.key,[\"Right\",\"ArrowRight\"])||\"button\"in t&&2!==t.button?null:function(){return e.$emit(\"arrowRight\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:function(){return e.$emit(\"arrowDown\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:function(t){return e.$emit(\"arrowUp\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"enter\",13,t.key,\"Enter\")?null:function(){return e.$emit(\"enter\")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(\" \"),i(\"span\",{staticClass:\"hidden\",attrs:{id:\"emoji-picker-search-description\"}},[e._v(\"Use the left, right, up and down arrow keys to navigate the emoji search\\n results.\")])])}),[],!1,null,null,null),K=G.exports;function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}return x(e,[{key:\"onScroll\",value:function(){for(var e=this._vm.$refs.scroll.scrollTop,t=this.filteredCategories[0],i=0,n=this.filteredCategories.length;ie)break;t=r}this.activeCategory=t}},{key:\"allCategories\",get:function(){return this._categories}},{key:\"filteredCategories\",get:function(){return this.searchEmojis?[{id:\"search\",name:\"Search\",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:\"previewEmojiCategory\",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:\"onAnchorClick\",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),n=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?function(){if(n){var i=n.$el.offsetTop;e.first&&(i=0),t._vm.$refs.scroll.scrollTop=i}}():this.activeCategory=this.filteredCategories[i]}}},{key:\"onSearch\",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:\"onEmojiEnter\",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:\"onEmojiLeave\",value:function(e){this.previewEmoji=null}},{key:\"onArrowLeft\",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:\"onArrowRight\",value:function(){this.previewEmojiIdx=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:\"onArrowDown\",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;tn+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","function getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getBasePlacement(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref) {\n let {\n reference,\n floating,\n placement\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n let coords;\n\n switch (getBasePlacement(placement)) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] = coords[mainAxis] - (reference[length] / 2 - floating[length] / 2);\n break;\n\n case 'end':\n coords[mainAxis] = coords[mainAxis] + (reference[length] / 2 - floating[length] / 2);\n break;\n }\n\n return coords;\n}\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement\n });\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: data != null ? data : {}\n };\n\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n\n ({\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement: statefulPlacement\n }));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nasync function detectOverflow(middlewareArguments, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingParents',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = await platform.getClippingClientRect({\n element: (await platform.isElement(element)) ? element : element.contextElement || (await platform.getDocumentElement({\n element: elements.floating\n })),\n boundary,\n rootBoundary\n });\n const elementClientRect = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n })); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const basePlacement = getBasePlacement(placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions({\n element\n });\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await platform.getOffsetParent({\n element\n });\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects) {\n const isStart = getAlignment(placement) === 'start';\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? isStart ? 'right' : 'left' : isStart ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst basePlacements = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/basePlacements.reduce((acc, basePlacement) => acc.concat(basePlacement, basePlacement + \"-start\", basePlacement + \"-end\"), []);\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getBasePlacement(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _middlewareData$autoP5, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$autoP = middlewareData.autoPlacement) != null && _middlewareData$autoP.skip) {\n return {};\n }\n\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP2 = (_middlewareData$autoP3 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP3.index) != null ? _middlewareData$autoP2 : 0;\n const currentPlacement = placements[currentIndex];\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getBasePlacement(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP4 = (_middlewareData$autoP5 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP5.overflows) != null ? _middlewareData$autoP4 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n return {\n data: {\n skip: true\n },\n reset: {\n placement: placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement\n }\n };\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip, _middlewareData$flip2;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement\n } = middlewareArguments;\n\n if ((_middlewareData$flip = middlewareData.flip) != null && _middlewareData$flip.skip) {\n return {};\n }\n\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const basePlacement = getBasePlacement(placement);\n const isBasePlacement = basePlacement === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[basePlacement]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects);\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip3;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip3 = middlewareData.flip) == null ? void 0 : _middlewareData$flip3.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$slice$;\n\n const placement = (_overflowsData$slice$ = overflowsData.slice().sort((a, b) => a.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0) - b.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0))[0]) == null ? void 0 : _overflowsData$slice$.placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\n\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return basePlacements.some(side => overflow[side] >= 0);\n}\n\nconst hide = () => ({\n name: 'hide',\n\n async fn(modifierArguments) {\n const referenceOverflow = await detectOverflow(modifierArguments, {\n elementContext: 'reference'\n });\n const floatingAltOverflow = await detectOverflow(modifierArguments, {\n altBoundary: true\n });\n const referenceHiddenOffsets = getSideOffsets(referenceOverflow, modifierArguments.rects.reference);\n const escapedOffsets = getSideOffsets(floatingAltOverflow, modifierArguments.rects.floating);\n const referenceHidden = isAnySideFullyClipped(referenceHiddenOffsets);\n const escaped = isAnySideFullyClipped(escapedOffsets);\n return {\n data: {\n referenceHidden,\n referenceHiddenOffsets,\n escaped,\n escapedOffsets\n }\n };\n }\n\n});\n\nfunction convertValueToCoords(_ref) {\n let {\n placement,\n rects,\n value\n } = _ref;\n const basePlacement = getBasePlacement(placement);\n const multiplier = ['left', 'top'].includes(basePlacement) ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({ ...rects,\n placement\n }) : value;\n const {\n mainAxis,\n crossAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawValue\n };\n return getMainAxisFromPlacement(basePlacement) === 'x' ? {\n x: crossAxis,\n y: mainAxis * multiplier\n } : {\n x: mainAxis * multiplier,\n y: crossAxis\n };\n}\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects\n } = middlewareArguments;\n const diffCoords = convertValueToCoords({\n placement,\n rects,\n value\n });\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getBasePlacement(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n\n };\n};\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n options,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset({ ...rects,\n placement\n }) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getBasePlacement(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n\n };\n};\n\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$size;\n\n const {\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$size = middlewareData.size) != null && _middlewareData$size.skip) {\n return {};\n }\n\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const basePlacement = getBasePlacement(placement);\n const isEnd = getAlignment(placement) === 'end';\n let heightSide;\n let widthSide;\n\n if (basePlacement === 'top' || basePlacement === 'bottom') {\n heightSide = basePlacement;\n widthSide = isEnd ? 'left' : 'right';\n } else {\n widthSide = basePlacement;\n heightSide = isEnd ? 'top' : 'bottom';\n }\n\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n apply == null ? void 0 : apply({ ...dimensions,\n ...rects\n });\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n\n };\n};\n\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'inline',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$inlin, _await$platform$getCl;\n\n const {\n placement,\n elements,\n rects,\n platform,\n strategy,\n middlewareData\n } = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n const {\n padding = 2,\n x,\n y\n } = options;\n\n if ((_middlewareData$inlin = middlewareData.inline) != null && _middlewareData$inlin.skip) {\n return {};\n }\n\n const fallback = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n }));\n const clientRects = Array.from((_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects({\n element: elements.reference\n }))) != null ? _await$platform$getCl : []);\n const paddingObject = getSideObjectFromPadding(padding);\n\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getBasePlacement(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n const isLeftPlacement = getBasePlacement(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftPlacement ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n rects: await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n })\n }\n };\n }\n\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction isWindow(value) {\n return (value == null ? void 0 : value.toString()) === '[object Window]';\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n return css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n return {\n width: clientRect.width / scaleX,\n height: clientRect.height / scaleY,\n top: clientRect.top / scaleY,\n right: clientRect.right / scaleX,\n bottom: clientRect.bottom / scaleY,\n left: clientRect.left / scaleX,\n x: clientRect.left / scaleX,\n y: clientRect.top / scaleY\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isWindow(element)) {\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, isOffsetParentAnElement && isScaled(offsetParent));\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n if (Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < 0.01) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].includes(getNodeName(node))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\nfunction getScrollParents(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollParent = getScrollParent(node);\n const isBody = scrollParent === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollParent);\n const target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getScrollParents(getParentNode(target)));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element) {\n const clientRect = getBoundingClientRect(element);\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingParent(element, clippingParent) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent);\n }\n\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n const clippingParents = getScrollParents(getParentNode(element));\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array\n\n\n return clippingParents.filter(clippingParent => isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingClientRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary\n } = _ref;\n const mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromClippingParent(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingParent(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nconst platform = {\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n convertOffsetParentRelativeRectToViewportRelativeRect: args => convertOffsetParentRelativeRectToViewportRelativeRect(args),\n getOffsetParent: _ref2 => {\n let {\n element\n } = _ref2;\n return getOffsetParent(element);\n },\n isElement: value => isElement(value),\n getDocumentElement: _ref3 => {\n let {\n element\n } = _ref3;\n return getDocumentElement(element);\n },\n getClippingClientRect: args => getClippingClientRect(args),\n getDimensions: _ref4 => {\n let {\n element\n } = _ref4;\n return getDimensions(element);\n },\n getClientRects: _ref5 => {\n let {\n element\n } = _ref5;\n return element.getClientRects();\n }\n};\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\n\nexport { computePosition, getScrollParents };\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport { offset, autoPlacement, shift, flip, arrow, size, computePosition, getScrollParents } from \"@floating-ui/dom\";\nimport Vue from \"vue\";\nfunction assign(to, from) {\n for (const key in from) {\n if (Object.prototype.hasOwnProperty.call(from, key)) {\n if (typeof from[key] === \"object\" && to[key]) {\n assign(to[key], from[key]);\n } else {\n to[key] = from[key];\n }\n }\n }\n}\nconst config = {\n disabled: false,\n distance: 5,\n skidding: 0,\n container: \"body\",\n boundary: void 0,\n instantMove: false,\n disposeTimeout: 5e3,\n popperTriggers: [],\n strategy: \"absolute\",\n preventOverflow: true,\n flip: true,\n shift: true,\n overflowPadding: 0,\n arrowPadding: 0,\n arrowOverflow: true,\n themes: {\n tooltip: {\n placement: \"top\",\n triggers: [\"hover\", \"focus\", \"touch\"],\n hideTriggers: (events) => [...events, \"click\"],\n delay: {\n show: 200,\n hide: 0\n },\n handleResize: false,\n html: false,\n loadingContent: \"...\"\n },\n dropdown: {\n placement: \"bottom\",\n triggers: [\"click\"],\n delay: 0,\n handleResize: true,\n autoHide: true\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\", \"focus\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction getDefaultConfig(theme, key) {\n let themeConfig = config.themes[theme] || {};\n let value;\n do {\n value = themeConfig[key];\n if (typeof value === \"undefined\") {\n if (themeConfig.$extend) {\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n value = config[key];\n }\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return value;\n}\nfunction getThemeClasses(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend && !themeConfig.$resetCss) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result.map((c) => `v-popper--theme-${c}`);\n}\nfunction getAllParentThemes(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result;\n}\nvar vueResize = \"\";\nlet supportsPassive = false;\nif (typeof window !== \"undefined\") {\n supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, \"passive\", {\n get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n } catch (e) {\n }\n}\nlet isIOS = false;\nif (typeof window !== \"undefined\" && typeof navigator !== \"undefined\") {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\nconst placements = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((acc, base) => acc.concat([\n base,\n `${base}-start`,\n `${base}-end`\n]), []);\nconst SHOW_EVENT_MAP = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\"\n};\nconst HIDE_EVENT_MAP = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\"\n};\nfunction removeFromArray(array, item) {\n const index = array.indexOf(item);\n if (index !== -1) {\n array.splice(index, 1);\n }\n}\nfunction nextFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n }));\n}\nconst shownPoppers = [];\nlet hidingPopper = null;\nconst shownPoppersByTheme = {};\nfunction getShownPoppersByTheme(theme) {\n let list = shownPoppersByTheme[theme];\n if (!list) {\n list = shownPoppersByTheme[theme] = [];\n }\n return list;\n}\nlet Element = function() {\n};\nif (typeof window !== \"undefined\") {\n Element = window.Element;\n}\nfunction defaultPropFactory(prop) {\n return function() {\n const props = this.$props;\n return getDefaultConfig(props.theme, prop);\n };\n}\nconst PROVIDE_KEY = \"__floating-vue__popper\";\nvar PrivatePopper = () => ({\n name: \"VPopper\",\n props: {\n theme: {\n type: String,\n required: true\n },\n targetNodes: {\n type: Function,\n required: true\n },\n referenceNode: {\n type: Function,\n required: true\n },\n popperNode: {\n type: Function,\n required: true\n },\n shown: {\n type: Boolean,\n default: false\n },\n showGroup: {\n type: String,\n default: null\n },\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: defaultPropFactory(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: defaultPropFactory(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: defaultPropFactory(\"placement\"),\n validator: (value) => placements.includes(value)\n },\n delay: {\n type: [String, Number, Object],\n default: defaultPropFactory(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: defaultPropFactory(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: defaultPropFactory(\"skidding\")\n },\n triggers: {\n type: Array,\n default: defaultPropFactory(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: defaultPropFactory(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: defaultPropFactory(\"container\")\n },\n boundary: {\n type: [String, Element],\n default: defaultPropFactory(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (value) => [\"absolute\", \"fixed\"].includes(value),\n default: defaultPropFactory(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: defaultPropFactory(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: defaultPropFactory(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: defaultPropFactory(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: defaultPropFactory(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: defaultPropFactory(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: defaultPropFactory(\"computeTransformOrigin\")\n },\n autoMinSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: defaultPropFactory(\"autoSize\")\n },\n autoMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: defaultPropFactory(\"flip\")\n },\n shift: {\n type: Boolean,\n default: defaultPropFactory(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: defaultPropFactory(\"shiftCrossAxis\")\n }\n },\n provide() {\n return {\n [PROVIDE_KEY]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [PROVIDE_KEY]: { default: null }\n },\n data() {\n return {\n isShown: false,\n isMounted: false,\n skipTransition: false,\n classes: {\n showFrom: false,\n showTo: false,\n hideFrom: false,\n hideTo: true\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: true\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide === \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: __spreadProps(__spreadValues({}, this.classes), {\n popperClass: this.popperClass\n }),\n result: this.positioningDisabled ? null : this.result\n };\n },\n parentPopper() {\n var _a;\n return (_a = this[PROVIDE_KEY]) == null ? void 0 : _a.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var _a, _b;\n return ((_a = this.popperTriggers) == null ? void 0 : _a.includes(\"hover\")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes(\"hover\"));\n }\n },\n watch: __spreadValues(__spreadValues({\n shown: \"$_autoShowHide\",\n disabled(value) {\n if (value) {\n this.dispose();\n } else {\n this.init();\n }\n },\n async container() {\n if (this.isShown) {\n this.$_ensureTeleport();\n await this.$_computePosition();\n }\n }\n }, [\n \"triggers\",\n \"positioningDisabled\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_refreshListeners\";\n return acc;\n }, {})), [\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_computePosition\";\n return acc;\n }, {})),\n created() {\n this.$_isDisposed = true;\n this.randomId = `popper_${[Math.random(), Date.now()].map((n) => n.toString(36).substring(2, 10)).join(\"_\")}`;\n if (this.autoMinSize) {\n console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.');\n }\n if (this.autoMaxSize) {\n console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n }\n },\n mounted() {\n this.init();\n this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeDestroy() {\n this.dispose();\n },\n methods: {\n show({ event = null, skipDelay = false, force = false } = {}) {\n var _a, _b;\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) && this.parentPopper.lockedChild !== this)\n return;\n this.$_pendingHide = false;\n if (force || !this.disabled) {\n if (((_b = this.parentPopper) == null ? void 0 : _b.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_scheduleShow(event, skipDelay);\n this.$emit(\"show\");\n this.$_showFrameLocked = true;\n requestAnimationFrame(() => {\n this.$_showFrameLocked = false;\n });\n }\n this.$emit(\"update:shown\", true);\n },\n hide({ event = null, skipDelay = false, skipAiming = false } = {}) {\n var _a;\n if (this.$_hideInProgress)\n return;\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n if (!skipAiming && this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n if (this.parentPopper) {\n this.parentPopper.lockedChild = this;\n clearTimeout(this.parentPopper.lockedChildTimer);\n this.parentPopper.lockedChildTimer = setTimeout(() => {\n if (this.parentPopper.lockedChild === this) {\n this.parentPopper.lockedChild.hide({ skipDelay });\n this.parentPopper.lockedChild = null;\n }\n }, 1e3);\n }\n return;\n }\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_pendingHide = false;\n this.$_scheduleHide(event, skipDelay);\n this.$emit(\"hide\");\n this.$emit(\"update:shown\", false);\n },\n init() {\n if (!this.$_isDisposed)\n return;\n this.$_isDisposed = false;\n this.isMounted = false;\n this.$_events = [];\n this.$_preventShow = false;\n this.$_referenceNode = this.referenceNode();\n this.$_targetNodes = this.targetNodes().filter((e) => e.nodeType === e.ELEMENT_NODE);\n this.$_popperNode = this.popperNode();\n this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\");\n this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\");\n this.$_swapTargetAttrs(\"title\", \"data-original-title\");\n this.$_detachPopperNode();\n if (this.triggers.length) {\n this.$_addEventListeners();\n }\n if (this.shown) {\n this.show();\n }\n },\n dispose() {\n if (this.$_isDisposed)\n return;\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({ skipDelay: true });\n this.$_detachPopperNode();\n this.isMounted = false;\n this.isShown = false;\n this.$_updateParentShownChildren(false);\n this.$_swapTargetAttrs(\"data-original-title\", \"title\");\n this.$emit(\"dispose\");\n },\n async onResize() {\n if (this.isShown) {\n await this.$_computePosition();\n this.$emit(\"resize\");\n }\n },\n async $_computePosition() {\n var _a;\n if (this.$_isDisposed || this.positioningDisabled)\n return;\n const options2 = {\n strategy: this.strategy,\n middleware: []\n };\n if (this.distance || this.skidding) {\n options2.middleware.push(offset({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n }\n const isPlacementAuto = this.placement.startsWith(\"auto\");\n if (isPlacementAuto) {\n options2.middleware.push(autoPlacement({\n alignment: (_a = this.placement.split(\"-\")[1]) != null ? _a : \"\"\n }));\n } else {\n options2.placement = this.placement;\n }\n if (this.preventOverflow) {\n if (this.shift) {\n options2.middleware.push(shift({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n }));\n }\n if (!isPlacementAuto && this.flip) {\n options2.middleware.push(flip({\n padding: this.overflowPadding,\n boundary: this.boundary\n }));\n }\n }\n options2.middleware.push(arrow({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n }));\n if (this.arrowOverflow) {\n options2.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement, rects, middlewareData }) => {\n let overflow;\n const { centerOffset } = middlewareData.arrow;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n overflow = Math.abs(centerOffset) > rects.reference.width / 2;\n } else {\n overflow = Math.abs(centerOffset) > rects.reference.height / 2;\n }\n return {\n data: {\n overflow\n }\n };\n }\n });\n }\n if (this.autoMinSize || this.autoSize) {\n const autoSize = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n options2.middleware.push({\n name: \"autoSize\",\n fn: ({ rects, placement, middlewareData }) => {\n var _a2;\n if ((_a2 = middlewareData.autoSize) == null ? void 0 : _a2.skip) {\n return {};\n }\n let width;\n let height;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n width = rects.reference.width;\n } else {\n height = rects.reference.height;\n }\n this.$_innerNode.style[autoSize === \"min\" ? \"minWidth\" : autoSize === \"max\" ? \"maxWidth\" : \"width\"] = width != null ? `${width}px` : null;\n this.$_innerNode.style[autoSize === \"min\" ? \"minHeight\" : autoSize === \"max\" ? \"maxHeight\" : \"height\"] = height != null ? `${height}px` : null;\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n });\n }\n if (this.autoMaxSize || this.autoBoundaryMaxSize) {\n this.$_innerNode.style.maxWidth = null;\n this.$_innerNode.style.maxHeight = null;\n options2.middleware.push(size({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ width, height }) => {\n this.$_innerNode.style.maxWidth = width != null ? `${width}px` : null;\n this.$_innerNode.style.maxHeight = height != null ? `${height}px` : null;\n }\n }));\n }\n const data = await computePosition(this.$_referenceNode, this.$_popperNode, options2);\n Object.assign(this.result, {\n x: data.x,\n y: data.y,\n placement: data.placement,\n strategy: data.strategy,\n arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)\n });\n },\n $_scheduleShow(event = null, skipDelay = false) {\n this.$_updateParentShownChildren(true);\n this.$_hideInProgress = false;\n clearTimeout(this.$_scheduleTimer);\n if (hidingPopper && this.instantMove && hidingPopper.instantMove && hidingPopper !== this.parentPopper) {\n hidingPopper.$_applyHide(true);\n this.$_applyShow(true);\n return;\n }\n if (skipDelay) {\n this.$_applyShow();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n }\n },\n $_scheduleHide(event = null, skipDelay = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n this.$_updateParentShownChildren(false);\n this.$_hideInProgress = true;\n clearTimeout(this.$_scheduleTimer);\n if (this.isShown) {\n hidingPopper = this;\n }\n if (skipDelay) {\n this.$_applyHide();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n }\n },\n $_computeDelay(type) {\n const delay = this.delay;\n return parseInt(delay && delay[type] || delay || 0);\n },\n async $_applyShow(skipTransition = false) {\n clearTimeout(this.$_disposeTimer);\n clearTimeout(this.$_scheduleTimer);\n this.skipTransition = skipTransition;\n if (this.isShown) {\n return;\n }\n this.$_ensureTeleport();\n await nextFrame();\n await this.$_computePosition();\n await this.$_applyShowEffect();\n if (!this.positioningDisabled) {\n this.$_registerEventListeners([\n ...getScrollParents(this.$_referenceNode),\n ...getScrollParents(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n });\n }\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const bounds = this.$_referenceNode.getBoundingClientRect();\n const popperWrapper = this.$_popperNode.querySelector(\".v-popper__wrapper\");\n const parentBounds = popperWrapper.parentNode.getBoundingClientRect();\n const x = bounds.x + bounds.width / 2 - (parentBounds.left + popperWrapper.offsetLeft);\n const y = bounds.y + bounds.height / 2 - (parentBounds.top + popperWrapper.offsetTop);\n this.result.transformOrigin = `${x}px ${y}px`;\n }\n this.isShown = true;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const showGroup = this.showGroup;\n if (showGroup) {\n let popover;\n for (let i = 0; i < shownPoppers.length; i++) {\n popover = shownPoppers[i];\n if (popover.showGroup !== showGroup) {\n popover.hide();\n popover.$emit(\"close-group\");\n }\n }\n }\n shownPoppers.push(this);\n document.body.classList.add(\"v-popper--some-open\");\n for (const theme of getAllParentThemes(this.theme)) {\n getShownPoppersByTheme(theme).push(this);\n document.body.classList.add(`v-popper--some-open--${theme}`);\n }\n this.$emit(\"apply-show\");\n this.classes.showFrom = true;\n this.classes.showTo = false;\n this.classes.hideFrom = false;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.showFrom = false;\n this.classes.showTo = true;\n this.$_popperNode.focus();\n },\n async $_applyHide(skipTransition = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n this.$_hideInProgress = false;\n return;\n }\n clearTimeout(this.$_scheduleTimer);\n if (!this.isShown) {\n return;\n }\n this.skipTransition = skipTransition;\n removeFromArray(shownPoppers, this);\n if (shownPoppers.length === 0) {\n document.body.classList.remove(\"v-popper--some-open\");\n }\n for (const theme of getAllParentThemes(this.theme)) {\n const list = getShownPoppersByTheme(theme);\n removeFromArray(list, this);\n if (list.length === 0) {\n document.body.classList.remove(`v-popper--some-open--${theme}`);\n }\n }\n if (hidingPopper === this) {\n hidingPopper = null;\n }\n this.isShown = false;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n });\n clearTimeout(this.$_disposeTimer);\n const disposeTime = getDefaultConfig(this.theme, \"disposeTimeout\");\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(() => {\n if (this.$_popperNode) {\n this.$_detachPopperNode();\n this.isMounted = false;\n }\n }, disposeTime);\n }\n this.$_removeEventListeners(\"scroll\");\n this.$emit(\"apply-hide\");\n this.classes.showFrom = false;\n this.classes.showTo = false;\n this.classes.hideFrom = true;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.hideFrom = false;\n this.classes.hideTo = true;\n },\n $_autoShowHide() {\n if (this.shown) {\n this.show();\n } else {\n this.hide();\n }\n },\n $_ensureTeleport() {\n if (this.$_isDisposed)\n return;\n let container = this.container;\n if (typeof container === \"string\") {\n container = window.document.querySelector(container);\n } else if (container === false) {\n container = this.$_targetNodes[0].parentNode;\n }\n if (!container) {\n throw new Error(\"No container for popover: \" + this.container);\n }\n container.appendChild(this.$_popperNode);\n this.isMounted = true;\n },\n $_addEventListeners() {\n const handleShow = (event) => {\n if (this.isShown && !this.$_hideInProgress) {\n return;\n }\n event.usedByTooltip = true;\n !this.$_preventShow && this.show({ event });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, SHOW_EVENT_MAP, this.triggers, this.showTriggers, handleShow);\n this.$_registerTriggerListeners([this.$_popperNode], SHOW_EVENT_MAP, this.popperTriggers, this.popperShowTriggers, handleShow);\n const handleHide = (skipAiming) => (event) => {\n if (event.usedByTooltip) {\n return;\n }\n this.hide({ event, skipAiming });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, HIDE_EVENT_MAP, this.triggers, this.hideTriggers, handleHide(false));\n this.$_registerTriggerListeners([this.$_popperNode], HIDE_EVENT_MAP, this.popperTriggers, this.popperHideTriggers, handleHide(true));\n },\n $_registerEventListeners(targetNodes, eventType, handler) {\n this.$_events.push({ targetNodes, eventType, handler });\n targetNodes.forEach((node) => node.addEventListener(eventType, handler, supportsPassive ? {\n passive: true\n } : void 0));\n },\n $_registerTriggerListeners(targetNodes, eventMap, commonTriggers, customTrigger, handler) {\n let triggers = commonTriggers;\n if (customTrigger != null) {\n triggers = typeof customTrigger === \"function\" ? customTrigger(triggers) : customTrigger;\n }\n triggers.forEach((trigger) => {\n const eventType = eventMap[trigger];\n if (eventType) {\n this.$_registerEventListeners(targetNodes, eventType, handler);\n }\n });\n },\n $_removeEventListeners(filterEventType) {\n const newList = [];\n this.$_events.forEach((listener) => {\n const { targetNodes, eventType, handler } = listener;\n if (!filterEventType || filterEventType === eventType) {\n targetNodes.forEach((node) => node.removeEventListener(eventType, handler));\n } else {\n newList.push(listener);\n }\n });\n this.$_events = newList;\n },\n $_refreshListeners() {\n if (!this.$_isDisposed) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n }\n },\n $_handleGlobalClose(event, touch = false) {\n if (this.$_showFrameLocked)\n return;\n this.hide({ event });\n if (event.closePopover) {\n this.$emit(\"close-directive\");\n } else {\n this.$emit(\"auto-hide\");\n }\n if (touch) {\n this.$_preventShow = true;\n setTimeout(() => {\n this.$_preventShow = false;\n }, 300);\n }\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(attrFrom, attrTo) {\n for (const el of this.$_targetNodes) {\n const value = el.getAttribute(attrFrom);\n if (value) {\n el.removeAttribute(attrFrom);\n el.setAttribute(attrTo, value);\n }\n }\n },\n $_applyAttrsToTarget(attrs) {\n for (const el of this.$_targetNodes) {\n for (const n in attrs) {\n const value = attrs[n];\n if (value == null) {\n el.removeAttribute(n);\n } else {\n el.setAttribute(n, value);\n }\n }\n }\n },\n $_updateParentShownChildren(value) {\n let parent = this.parentPopper;\n while (parent) {\n if (value) {\n parent.shownChildren.add(this.randomId);\n } else {\n parent.shownChildren.delete(this.randomId);\n if (parent.$_pendingHide) {\n parent.hide();\n }\n }\n parent = parent.parentPopper;\n }\n },\n $_isAimingPopper() {\n const referenceBounds = this.$el.getBoundingClientRect();\n if (mouseX >= referenceBounds.left && mouseX <= referenceBounds.right && mouseY >= referenceBounds.top && mouseY <= referenceBounds.bottom) {\n const popperBounds = this.$_popperNode.getBoundingClientRect();\n const vectorX = mouseX - mousePreviousX;\n const vectorY = mouseY - mousePreviousY;\n const distance = popperBounds.left + popperBounds.width / 2 - mousePreviousX + (popperBounds.top + popperBounds.height / 2) - mousePreviousY;\n const newVectorLength = distance + popperBounds.width + popperBounds.height;\n const edgeX = mousePreviousX + vectorX * newVectorLength;\n const edgeY = mousePreviousY + vectorY * newVectorLength;\n 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);\n }\n return false;\n }\n },\n render() {\n return this.$scopedSlots.default(this.slotData)[0];\n }\n});\nif (typeof document !== \"undefined\" && typeof window !== \"undefined\") {\n if (isIOS) {\n document.addEventListener(\"touchstart\", handleGlobalMousedown, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n document.addEventListener(\"touchend\", handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener(\"mousedown\", handleGlobalMousedown, true);\n window.addEventListener(\"click\", handleGlobalClick, true);\n }\n window.addEventListener(\"resize\", computePositionAllShownPoppers);\n}\nfunction handleGlobalMousedown(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n try {\n const popperContent = popper.popperNode();\n popper.$_mouseDownContains = popperContent.contains(event.target);\n } catch (e) {\n }\n }\n}\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\nfunction handleGlobalClose(event, touch = false) {\n const preventClose = {};\n for (let i = shownPoppers.length - 1; i >= 0; i--) {\n const popper = shownPoppers[i];\n try {\n const contains = popper.$_containsGlobalTarget = isContainingEventTarget(popper, event);\n popper.$_pendingHide = false;\n requestAnimationFrame(() => {\n popper.$_pendingHide = false;\n if (preventClose[popper.randomId])\n return;\n if (shouldAutoHide(popper, contains, event)) {\n popper.$_handleGlobalClose(event, touch);\n if (!event.closeAllPopover && event.closePopover && contains) {\n let parent2 = popper.parentPopper;\n while (parent2) {\n preventClose[parent2.randomId] = true;\n parent2 = parent2.parentPopper;\n }\n return;\n }\n let parent = popper.parentPopper;\n while (parent) {\n if (shouldAutoHide(parent, parent.$_containsGlobalTarget, event)) {\n parent.$_handleGlobalClose(event, touch);\n } else {\n break;\n }\n parent = parent.parentPopper;\n }\n }\n });\n } catch (e) {\n }\n }\n}\nfunction isContainingEventTarget(popper, event) {\n const popperContent = popper.popperNode();\n return popper.$_mouseDownContains || popperContent.contains(event.target);\n}\nfunction shouldAutoHide(popper, contains, event) {\n return event.closeAllPopover || event.closePopover && contains || getAutoHideResult(popper, event) && !contains;\n}\nfunction getAutoHideResult(popper, event) {\n if (typeof popper.autoHide === \"function\") {\n const result = popper.autoHide(event);\n popper.lastAutoHide = result;\n return result;\n }\n return popper.autoHide;\n}\nfunction computePositionAllShownPoppers(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.$_computePosition(event);\n }\n}\nfunction hideAllPoppers() {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.hide();\n }\n}\nlet mousePreviousX = 0;\nlet mousePreviousY = 0;\nlet mouseX = 0;\nlet mouseY = 0;\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"mousemove\", (event) => {\n mousePreviousX = mouseX;\n mousePreviousY = mouseY;\n mouseX = event.clientX;\n mouseY = event.clientY;\n }, supportsPassive ? {\n passive: true\n } : void 0);\n}\nfunction lineIntersectsLine(x1, y1, x2, y2, x3, y3, x4, y4) {\n const uA = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n const uB = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1;\n}\nfunction getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf(\"MSIE \");\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf(\".\", msie)), 10);\n }\n var trident = ua.indexOf(\"Trident/\");\n if (trident > 0) {\n var rv = ua.indexOf(\"rv:\");\n return parseInt(ua.substring(rv + 3, ua.indexOf(\".\", rv)), 10);\n }\n var edge = ua.indexOf(\"Edge/\");\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf(\".\", edge)), 10);\n }\n return -1;\n}\nvar isIE;\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\nvar script = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n initCompat();\n this.$nextTick(function() {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement(\"object\");\n this._resizeObject = object;\n object.setAttribute(\"aria-hidden\", \"true\");\n object.setAttribute(\"tabindex\", -1);\n object.onload = this.addResizeHandlers;\n object.type = \"text/html\";\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = \"about:blank\";\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify);\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify);\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\nfunction normalizeComponent$1(template, style, script2, scopeId, isFunctionalTemplate, moduleIdentifier, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== \"boolean\") {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n }\n var options2 = typeof script2 === \"function\" ? script2.options : script2;\n if (template && template.render) {\n options2.render = template.render;\n options2.staticRenderFns = template.staticRenderFns;\n options2._compiled = true;\n if (isFunctionalTemplate) {\n options2.functional = true;\n }\n }\n if (scopeId) {\n options2._scopeId = scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function hook2(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (style) {\n style.call(this, createInjectorSSR(context));\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options2._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function(context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function(context) {\n style.call(this, createInjector(context));\n };\n }\n if (hook) {\n if (options2.functional) {\n var originalRender = options2.render;\n options2.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options2.beforeCreate;\n options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return script2;\n}\nvar __vue_script__ = script;\nvar __vue_render__ = function __vue_render__2() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\nvar __vue_inject_styles__ = void 0;\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\nvar __vue_module_identifier__ = void 0;\nvar __vue_is_functional_template__ = false;\nvar __vue_component__ = /* @__PURE__ */ normalizeComponent$1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, void 0, void 0, void 0);\nfunction install$1(Vue2) {\n Vue2.component(\"resize-observer\", __vue_component__);\n Vue2.component(\"ResizeObserver\", __vue_component__);\n}\nvar plugin$1 = {\n version: \"1.0.1\",\n install: install$1\n};\nvar GlobalVue$1 = null;\nif (typeof window !== \"undefined\") {\n GlobalVue$1 = window.Vue;\n} else if (typeof global !== \"undefined\") {\n GlobalVue$1 = global.Vue;\n}\nif (GlobalVue$1) {\n GlobalVue$1.use(plugin$1);\n}\nvar PrivateThemeClass = {\n computed: {\n themeClass() {\n return getThemeClasses(this.theme);\n }\n }\n};\nvar __vue2_script$5 = {\n name: \"VPopperContent\",\n components: {\n ResizeObserver: __vue_component__\n },\n mixins: [\n PrivateThemeClass\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n methods: {\n toPx(value) {\n if (value != null && !isNaN(value)) {\n return `${value}px`;\n }\n return null;\n }\n }\n};\nvar render$2 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { ref: \"popover\", staticClass: \"v-popper__popper\", class: [\n _vm.themeClass,\n _vm.classes.popperClass,\n {\n \"v-popper__popper--shown\": _vm.shown,\n \"v-popper__popper--hidden\": !_vm.shown,\n \"v-popper__popper--show-from\": _vm.classes.showFrom,\n \"v-popper__popper--show-to\": _vm.classes.showTo,\n \"v-popper__popper--hide-from\": _vm.classes.hideFrom,\n \"v-popper__popper--hide-to\": _vm.classes.hideTo,\n \"v-popper__popper--skip-transition\": _vm.skipTransition,\n \"v-popper__popper--arrow-overflow\": _vm.result && _vm.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !_vm.result\n }\n ], style: _vm.result ? {\n position: _vm.result.strategy,\n transform: \"translate3d(\" + Math.round(_vm.result.x) + \"px,\" + Math.round(_vm.result.y) + \"px,0)\"\n } : 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) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n _vm.autoHide && _vm.$emit(\"hide\");\n } } }, [_c(\"div\", { staticClass: \"v-popper__backdrop\", on: { \"click\": function($event) {\n _vm.autoHide && _vm.$emit(\"hide\");\n } } }), _c(\"div\", { staticClass: \"v-popper__wrapper\", style: _vm.result ? {\n transformOrigin: _vm.result.transformOrigin\n } : 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) {\n return _vm.$emit(\"resize\", $event);\n } } }) : _vm._e()] : _vm._e()], 2), _c(\"div\", { ref: \"arrow\", staticClass: \"v-popper__arrow-container\", style: _vm.result ? {\n left: _vm.toPx(_vm.result.arrow.x),\n top: _vm.toPx(_vm.result.arrow.y)\n } : void 0 }, [_c(\"div\", { staticClass: \"v-popper__arrow-outer\" }), _c(\"div\", { staticClass: \"v-popper__arrow-inner\" })])])]);\n};\nvar staticRenderFns$2 = [];\nvar PopperContent_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options2 = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options2.render = render2;\n options2.staticRenderFns = staticRenderFns2;\n options2._compiled = true;\n }\n if (functionalTemplate) {\n options2.functional = true;\n }\n if (scopeId) {\n options2._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options2._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options2.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options2.functional) {\n options2._injectStyles = hook;\n var originalRender = options2.render;\n options2.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options2.beforeCreate;\n options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options: options2\n };\n}\nconst __cssModules$5 = {};\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$2, staticRenderFns$2, false, __vue2_injectStyles$5, null, null, null);\nfunction __vue2_injectStyles$5(context) {\n for (let o in __cssModules$5) {\n this[o] = __cssModules$5[o];\n }\n}\nvar PrivatePopperContent = /* @__PURE__ */ function() {\n return __component__$5.exports;\n}();\nvar PrivatePopperMethods = {\n methods: {\n show(...args) {\n return this.$refs.popper.show(...args);\n },\n hide(...args) {\n return this.$refs.popper.hide(...args);\n },\n dispose(...args) {\n return this.$refs.popper.dispose(...args);\n },\n onResize(...args) {\n return this.$refs.popper.onResize(...args);\n }\n }\n};\nvar __vue2_script$4 = {\n name: \"VPopperWrapper\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods,\n PrivateThemeClass\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default() {\n return this.$options.vPopperTheme;\n }\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$refs.reference.children).filter((node) => node !== this.$refs.popperContent.$el);\n }\n }\n};\nvar render$1 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"Popper\", _vm._g(_vm._b({ ref: \"popper\", attrs: { \"theme\": _vm.theme, \"target-nodes\": _vm.getTargetNodes, \"reference-node\": function() {\n return _vm.$refs.reference;\n }, \"popper-node\": function() {\n return _vm.$refs.popperContent.$el;\n } }, scopedSlots: _vm._u([{ key: \"default\", fn: function(ref) {\n var popperId = ref.popperId;\n var isShown = ref.isShown;\n var shouldMountContent = ref.shouldMountContent;\n var skipTransition = ref.skipTransition;\n var autoHide = ref.autoHide;\n var show = ref.show;\n var hide = ref.hide;\n var handleResize = ref.handleResize;\n var onResize = ref.onResize;\n var classes = ref.classes;\n var result = ref.result;\n return [_c(\"div\", { ref: \"reference\", staticClass: \"v-popper\", class: [\n _vm.themeClass,\n {\n \"v-popper--shown\": isShown\n }\n ] }, [_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)];\n } }], null, true) }, \"Popper\", _vm.$attrs, false), _vm.$listeners));\n};\nvar staticRenderFns$1 = [];\nconst __cssModules$4 = {};\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$1, staticRenderFns$1, false, __vue2_injectStyles$4, null, null, null);\nfunction __vue2_injectStyles$4(context) {\n for (let o in __cssModules$4) {\n this[o] = __cssModules$4[o];\n }\n}\nvar PrivatePopperWrapper = /* @__PURE__ */ function() {\n return __component__$4.exports;\n}();\nvar __vue2_script$3 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n});\nvar Dropdown_vue_vue_type_style_index_0_lang = \"\";\nlet __vue2_render$2, __vue2_staticRenderFns$2;\nconst __cssModules$3 = {};\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, __vue2_render$2, __vue2_staticRenderFns$2, false, __vue2_injectStyles$3, null, null, null);\nfunction __vue2_injectStyles$3(context) {\n for (let o in __cssModules$3) {\n this[o] = __cssModules$3[o];\n }\n}\nvar PrivateDropdown = /* @__PURE__ */ function() {\n return __component__$3.exports;\n}();\nvar __vue2_script$2 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n});\nlet __vue2_render$1, __vue2_staticRenderFns$1;\nconst __cssModules$2 = {};\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, __vue2_render$1, __vue2_staticRenderFns$1, false, __vue2_injectStyles$2, null, null, null);\nfunction __vue2_injectStyles$2(context) {\n for (let o in __cssModules$2) {\n this[o] = __cssModules$2[o];\n }\n}\nvar PrivateMenu = /* @__PURE__ */ function() {\n return __component__$2.exports;\n}();\nvar __vue2_script$1 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n});\nvar Tooltip_vue_vue_type_style_index_0_lang = \"\";\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar PrivateTooltip = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar __vue2_script = {\n name: \"VTooltipDirective\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default() {\n return getDefaultConfig(this.theme, \"html\");\n }\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default() {\n return getDefaultConfig(this.theme, \"loadingContent\");\n }\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content === \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n if (this.isContentAsync) {\n return this.loading ? this.loadingContent : this.asyncContent;\n }\n return this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(true);\n },\n immediate: true\n },\n async finalContent(value) {\n await this.$nextTick();\n this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(force) {\n if (typeof this.content === \"function\" && this.$_isShown && (force || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null;\n this.$_loading = true;\n const fetchId = ++this.$_fetchId;\n const result = this.content(this);\n if (result.then) {\n result.then((res) => this.onResult(fetchId, res));\n } else {\n this.onResult(fetchId, result);\n }\n }\n },\n onResult(fetchId, result) {\n if (fetchId !== this.$_fetchId)\n return;\n this.$_loading = false;\n this.asyncContent = result;\n },\n onShow() {\n this.$_isShown = true;\n this.fetchContent();\n },\n onHide() {\n this.$_isShown = false;\n }\n }\n};\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"Popper\", _vm._g(_vm._b({ ref: \"popper\", attrs: { \"theme\": _vm.theme, \"popper-node\": function() {\n return _vm.$refs.popperContent.$el;\n } }, on: { \"apply-show\": _vm.onShow, \"apply-hide\": _vm.onHide }, scopedSlots: _vm._u([{ key: \"default\", fn: function(ref) {\n var popperId = ref.popperId;\n var isShown = ref.isShown;\n var shouldMountContent = ref.shouldMountContent;\n var skipTransition = ref.skipTransition;\n var autoHide = ref.autoHide;\n var hide = ref.hide;\n var handleResize = ref.handleResize;\n var onResize = ref.onResize;\n var classes = ref.classes;\n var result = ref.result;\n return [_c(\"PopperContent\", { ref: \"popperContent\", class: {\n \"v-popper--tooltip-loading\": _vm.loading\n }, 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) } })])];\n } }]) }, \"Popper\", _vm.$attrs, false), _vm.$listeners));\n};\nvar staticRenderFns = [];\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar PrivateTooltipDirective = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nconst TARGET_CLASS = \"v-popper--has-tooltip\";\nfunction getPlacement(options2, modifiers) {\n let result = options2.placement;\n if (!result && modifiers) {\n for (const pos of placements) {\n if (modifiers[pos]) {\n result = pos;\n }\n }\n }\n if (!result) {\n result = getDefaultConfig(options2.theme || \"tooltip\", \"placement\");\n }\n return result;\n}\nfunction getOptions(el, value, modifiers) {\n let options2;\n const type = typeof value;\n if (type === \"string\") {\n options2 = { content: value };\n } else if (value && type === \"object\") {\n options2 = value;\n } else {\n options2 = { content: false };\n }\n options2.placement = getPlacement(options2, modifiers);\n options2.targetNodes = () => [el];\n options2.referenceNode = () => el;\n return options2;\n}\nfunction createTooltip(el, value, modifiers) {\n const options2 = getOptions(el, value, modifiers);\n const tooltipApp = el.$_popper = new Vue({\n mixins: [\n PrivatePopperMethods\n ],\n data() {\n return {\n options: options2\n };\n },\n render(h) {\n const _a = this.options, {\n theme,\n html,\n content,\n loadingContent\n } = _a, otherOptions = __objRest(_a, [\n \"theme\",\n \"html\",\n \"content\",\n \"loadingContent\"\n ]);\n return h(PrivateTooltipDirective, {\n props: {\n theme,\n html,\n content,\n loadingContent\n },\n attrs: otherOptions,\n ref: \"popper\"\n });\n },\n devtools: {\n hide: true\n }\n });\n const mountTarget = document.createElement(\"div\");\n document.body.appendChild(mountTarget);\n tooltipApp.$mount(mountTarget);\n if (el.classList) {\n el.classList.add(TARGET_CLASS);\n }\n return tooltipApp;\n}\nfunction destroyTooltip(el) {\n if (el.$_popper) {\n el.$_popper.$destroy();\n delete el.$_popper;\n delete el.$_popperOldShown;\n }\n if (el.classList) {\n el.classList.remove(TARGET_CLASS);\n }\n}\nfunction bind(el, { value, oldValue, modifiers }) {\n const options2 = getOptions(el, value, modifiers);\n if (!options2.content || getDefaultConfig(options2.theme || \"tooltip\", \"disabled\")) {\n destroyTooltip(el);\n } else {\n let tooltipApp;\n if (el.$_popper) {\n tooltipApp = el.$_popper;\n tooltipApp.options = options2;\n } else {\n tooltipApp = createTooltip(el, value, modifiers);\n }\n if (typeof value.shown !== \"undefined\" && value.shown !== el.$_popperOldShown) {\n el.$_popperOldShown = value.shown;\n value.shown ? tooltipApp.show() : tooltipApp.hide();\n }\n }\n}\nvar PrivateVTooltip = {\n bind,\n update: bind,\n unbind(el) {\n destroyTooltip(el);\n }\n};\nfunction addListeners(el) {\n el.addEventListener(\"click\", onClick);\n el.addEventListener(\"touchstart\", onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\nfunction removeListeners(el) {\n el.removeEventListener(\"click\", onClick);\n el.removeEventListener(\"touchstart\", onTouchStart);\n el.removeEventListener(\"touchend\", onTouchEnd);\n el.removeEventListener(\"touchcancel\", onTouchCancel);\n}\nfunction onClick(event) {\n const el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n const touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener(\"touchend\", onTouchEnd);\n el.addEventListener(\"touchcancel\", onTouchCancel);\n }\n}\nfunction onTouchEnd(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n if (event.changedTouches.length === 1) {\n const touch = event.changedTouches[0];\n const firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\nfunction onTouchCancel(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\nvar PrivateVClosePopper = {\n bind(el, { value, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n }\n },\n update(el, { value, oldValue, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (value !== oldValue) {\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind(el) {\n removeListeners(el);\n }\n};\nconst options = config;\nconst VTooltip = PrivateVTooltip;\nconst VClosePopper = PrivateVClosePopper;\nconst Dropdown = PrivateDropdown;\nconst Menu = PrivateMenu;\nconst Popper = PrivatePopper;\nconst PopperContent = PrivatePopperContent;\nconst PopperMethods = PrivatePopperMethods;\nconst PopperWrapper = PrivatePopperWrapper;\nconst ThemeClass = PrivateThemeClass;\nconst Tooltip = PrivateTooltip;\nconst TooltipDirective = PrivateTooltipDirective;\nfunction install(app, options2 = {}) {\n if (app.$_vTooltipInstalled)\n return;\n app.$_vTooltipInstalled = true;\n assign(config, options2);\n app.directive(\"tooltip\", PrivateVTooltip);\n app.directive(\"close-popper\", PrivateVClosePopper);\n app.component(\"v-tooltip\", PrivateTooltip);\n app.component(\"VTooltip\", PrivateTooltip);\n app.component(\"v-dropdown\", PrivateDropdown);\n app.component(\"VDropdown\", PrivateDropdown);\n app.component(\"v-menu\", PrivateMenu);\n app.component(\"VMenu\", PrivateMenu);\n}\nconst plugin = {\n version: \"1.0.0-beta.18\",\n install,\n options: config\n};\nlet GlobalVue = null;\nif (typeof window !== \"undefined\") {\n GlobalVue = window.Vue;\n} else if (typeof global !== \"undefined\") {\n GlobalVue = global.Vue;\n}\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\nexport { Dropdown, HIDE_EVENT_MAP, Menu, Popper, PopperContent, PopperMethods, PopperWrapper, SHOW_EVENT_MAP, ThemeClass, Tooltip, TooltipDirective, VClosePopper, VTooltip, createTooltip, plugin as default, destroyTooltip, hideAllPoppers, install, options, placements };\n","/*!\n* tabbable 6.0.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome,
,
\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first among the children of the disabled
\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent
is not nested in another disabled
,\n // return whether `node` is a descendant of its first \n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled
containing `node` has no \n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 7.0.0\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, isFocusable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n return idx;\n};\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\n\n\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\n\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\n var state = {\n // containers given to createFocusTrap()\n // @type {Array}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array, // empty if none\n // focusableNodes: Array, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n\n\n var findContainerIndex = function findContainerIndex(element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n optionValue = optionValue.apply(void 0, params);\n }\n\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n } // else, empty string (invalid), null (invalid), 0 (invalid)\n\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus'); // false explicitly indicates we want no initialFocus at all\n\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\n } // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n var checkTab = function checkTab(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n // REVERSE\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n } // else, let the browser take care of [shift+]tab and move the focus\n\n };\n\n var checkKey = function checkKey(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }; //\n // TRAP DEFINITION\n //\n\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n addListeners();\n\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2021 */\n\n/* jshint ignore:start */\nvar ICAL;\n(function() {\n /* istanbul ignore next */\n if (typeof module === 'object') {\n // CommonJS, where exports may be different each time.\n ICAL = module.exports;\n } else if (typeof HTMLScriptElement !== 'undefined' && 'noModule' in HTMLScriptElement.prototype) {\n // Until we use ES6 exports, using ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=89056902&\"\nimport script from \"./Alert.vue?vue&type=script&lang=js&\"\nexport * from \"./Alert.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=108cd4b2&\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js&\"\nexport * from \"./AlertCircleOutline.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-circle-outline-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertDecagram.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertDecagram.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AlertDecagram.vue?vue&type=template&id=137d8918&\"\nimport script from \"./AlertDecagram.vue?vue&type=script&lang=js&\"\nexport * from \"./AlertDecagram.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-decagram-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=187c55d7&\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js&\"\nexport * from \"./ArrowLeft.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-left-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowRight.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowRight.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ArrowRight.vue?vue&type=template&id=2ee57bcf&\"\nimport script from \"./ArrowRight.vue?vue&type=script&lang=js&\"\nexport * from \"./ArrowRight.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-right-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Check.vue?vue&type=template&id=2e48c8c6&\"\nimport script from \"./Check.vue?vue&type=script&lang=js&\"\nexport * from \"./Check.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxBlankOutline.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxBlankOutline.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckboxBlankOutline.vue?vue&type=template&id=fb5828cc&\"\nimport script from \"./CheckboxBlankOutline.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckboxBlankOutline.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon checkbox-blank-outline-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarked.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarked.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckboxMarked.vue?vue&type=template&id=66a59ab7&\"\nimport script from \"./CheckboxMarked.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckboxMarked.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon checkbox-marked-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarkedCircle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckboxMarkedCircle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckboxMarkedCircle.vue?vue&type=template&id=b94c09be&\"\nimport script from \"./CheckboxMarkedCircle.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckboxMarkedCircle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon checkbox-marked-circle-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronDown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronDown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChevronDown.vue?vue&type=template&id=5a2dce2f&\"\nimport script from \"./ChevronDown.vue?vue&type=script&lang=js&\"\nexport * from \"./ChevronDown.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-down-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronLeft.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronLeft.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChevronLeft.vue?vue&type=template&id=09d94b5a&\"\nimport script from \"./ChevronLeft.vue?vue&type=script&lang=js&\"\nexport * from \"./ChevronLeft.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-left-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronRight.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronRight.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChevronRight.vue?vue&type=template&id=750bcc07&\"\nimport script from \"./ChevronRight.vue?vue&type=script&lang=js&\"\nexport * from \"./ChevronRight.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-right-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Close.vue?vue&type=template&id=75d4151a&\"\nimport script from \"./Close.vue?vue&type=script&lang=js&\"\nexport * from \"./Close.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon close-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=bcf30078&\"\nimport script from \"./Cog.vue?vue&type=script&lang=js&\"\nexport * from \"./Cog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon cog-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DotsHorizontal.vue?vue&type=template&id=6950b9a6&\"\nimport script from \"./DotsHorizontal.vue?vue&type=script&lang=js&\"\nexport * from \"./DotsHorizontal.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon dots-horizontal-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=beccbcf6&\"\nimport script from \"./Eye.vue?vue&type=script&lang=js&\"\nexport * from \"./Eye.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOff.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOff.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EyeOff.vue?vue&type=template&id=0fb59bd2&\"\nimport script from \"./EyeOff.vue?vue&type=script&lang=js&\"\nexport * from \"./EyeOff.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-off-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Folder.vue?vue&type=template&id=5c04f969&\"\nimport script from \"./Folder.vue?vue&type=script&lang=js&\"\nexport * from \"./Folder.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon folder-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./HelpCircle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./HelpCircle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpCircle.vue?vue&type=template&id=4dac44fa&\"\nimport script from \"./HelpCircle.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpCircle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon help-circle-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Menu.vue?vue&type=template&id=b3763850&\"\nimport script from \"./Menu.vue?vue&type=script&lang=js&\"\nexport * from \"./Menu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon menu-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MinusBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MinusBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinusBox.vue?vue&type=template&id=d90829ce&\"\nimport script from \"./MinusBox.vue?vue&type=script&lang=js&\"\nexport * from \"./MinusBox.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon minus-box-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pause.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pause.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pause.vue?vue&type=template&id=713ddbb4&\"\nimport script from \"./Pause.vue?vue&type=script&lang=js&\"\nexport * from \"./Pause.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon pause-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,19H18V5H14M6,19H10V5H6V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pencil.vue?vue&type=template&id=b6f92b54&\"\nimport script from \"./Pencil.vue?vue&type=script&lang=js&\"\nexport * from \"./Pencil.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon pencil-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Play.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Play.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Play.vue?vue&type=template&id=40a96fba&\"\nimport script from \"./Play.vue?vue&type=script&lang=js&\"\nexport * from \"./Play.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon play-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8,5.14V19.14L19,12.14L8,5.14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxBlank.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxBlank.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RadioboxBlank.vue?vue&type=template&id=0bb006bd&\"\nimport script from \"./RadioboxBlank.vue?vue&type=script&lang=js&\"\nexport * from \"./RadioboxBlank.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon radiobox-blank-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxMarked.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./RadioboxMarked.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RadioboxMarked.vue?vue&type=template&id=3ebe8680&\"\nimport script from \"./RadioboxMarked.vue?vue&type=script&lang=js&\"\nexport * from \"./RadioboxMarked.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon radiobox-marked-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Star.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Star.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Star.vue?vue&type=template&id=22339b94&\"\nimport script from \"./Star.vue?vue&type=script&lang=js&\"\nexport * from \"./Star.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon star-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./StarOutline.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./StarOutline.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StarOutline.vue?vue&type=template&id=3a0ad9db&\"\nimport script from \"./StarOutline.vue?vue&type=script&lang=js&\"\nexport * from \"./StarOutline.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon star-outline-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitch.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleSwitch.vue?vue&type=template&id=286211c1&\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon toggle-switch-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitchOff.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ToggleSwitchOff.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToggleSwitchOff.vue?vue&type=template&id=134175c4&\"\nimport script from \"./ToggleSwitchOff.vue?vue&type=script&lang=js&\"\nexport * from \"./ToggleSwitchOff.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon toggle-switch-off-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Undo.vue?vue&type=template&id=bc8e3c2a&\"\nimport script from \"./Undo.vue?vue&type=script&lang=js&\"\nexport * from \"./Undo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon undo-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.config.linkedPage)?_c('div',[(_vm.config.type === 'Frame')?_c('FrameWidget',{attrs:{\"config\":_vm.config}}):_vm._e(),_vm._v(\" \"),(_vm.config.type === 'Text')?_c('TextWidget',{staticClass:\"entry-wrapper\",attrs:{\"config\":_vm.config}}):_vm._e(),_vm._v(\" \"),(_vm.config.type === 'Switch')?_c('SwitchWidget',{staticClass:\"entry-wrapper\",attrs:{\"config\":_vm.config}}):_vm._e(),_vm._v(\" \"),(_vm.config.type === 'Chart')?_c('ChartWidget',{staticClass:\"entry-wrapper\",attrs:{\"config\":_vm.config}}):_vm._e(),_vm._v(\" \"),(_vm.config.type === 'Colorpicker')?_c('ColorpickerWidget',{staticClass:\"entry-wrapper\",attrs:{\"config\":_vm.config}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.config.linkedPage)?_c('div',{staticClass:\"entry-wrapper group-wrapper\"},[_c('div',{staticClass:\"group-header\",on:{\"click\":function($event){_vm.expand = !_vm.expand}}},[(_vm.config.linkedPage.widgets.length)?_c('i',{staticClass:\"toggle-icon\",class:{ 'icon-triangle-e': _vm.expand === false, 'icon-triangle-s': _vm.expand === true }}):_vm._e(),_vm._v(\" \"),(_vm.config.type === 'Text')?_c('TextWidget',{attrs:{\"config\":_vm.config}}):(_vm.config.type === 'Switch')?_c('SwitchWidget',{attrs:{\"config\":_vm.config}}):_c('span',[_vm._v(_vm._s(_vm.config.label))])],1),_vm._v(\" \"),(_vm.expand && _vm.config.linkedPage.widgets.length)?_c('div',_vm._l((_vm.config.linkedPage.widgets),function(widget){return _c('Widget',{key:widget.widgetid,attrs:{\"config\":widget}})}),1):_vm._e()]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class {\n\n\tstatic getValue(item, defaultValue = '') {\n\t\tif (item) {\n\t\t\tconst index = item.indexOf('[')\n\n\t\t\tif (index !== -1) {\n\t\t\t\treturn item.substring(index + 1, item.length - 1)\n\t\t\t} else {\n\t\t\t\treturn defaultValue\n\t\t\t}\n\t\t} else {\n\t\t\treturn defaultValue\n\t\t}\n\t}\n\n\tstatic getLabel(item, defaultValue = '') {\n\t\tif (item) {\n\t\t\tconst index = item.indexOf('[')\n\n\t\t\tif (index !== -1) {\n\t\t\t\treturn item.substring(0, index)\n\t\t\t} else {\n\t\t\t\treturn item\n\t\t\t}\n\t\t} else {\n\t\t\treturn defaultValue\n\t\t}\n\t}\n\n}\n","\n\n\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartWidget.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartWidget.vue?vue&type=style&index=0&id=0e149dc8&prod&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartWidget.vue?vue&type=style&index=0&id=0e149dc8&prod&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ChartWidget.vue?vue&type=template&id=0e149dc8&\"\nimport script from \"./ChartWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartWidget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChartWidget.vue?vue&type=style&index=0&id=0e149dc8&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chart-widget\"},[_c('canvas',{attrs:{\"id\":_vm.config.item.name,\"width\":\"300\",\"height\":\"200\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorpickerWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorpickerWidget.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorpickerWidget.vue?vue&type=style&index=0&id=118ca296&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorpickerWidget.vue?vue&type=style&index=0&id=118ca296&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ColorpickerWidget.vue?vue&type=template&id=118ca296&scoped=true&\"\nimport script from \"./ColorpickerWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./ColorpickerWidget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ColorpickerWidget.vue?vue&type=style&index=0&id=118ca296&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"118ca296\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"entry\"},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label))]),_vm._v(\" \"),_c('span',{staticClass:\"value\"},[_c('input',{attrs:{\"id\":\"head\",\"type\":\"color\",\"disabled\":\"disabled\"},domProps:{\"value\":_vm.color}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.state)+\"\\n\\t\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrameWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrameWidget.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrameWidget.vue?vue&type=style&index=0&id=eece113e&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrameWidget.vue?vue&type=style&index=0&id=eece113e&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FrameWidget.vue?vue&type=template&id=eece113e&scoped=true&\"\nimport script from \"./FrameWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./FrameWidget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FrameWidget.vue?vue&type=style&index=0&id=eece113e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eece113e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"frame\"},[(_vm.config.label)?_c('h2',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.config.label)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.config.widgets),function(widget){return _c('Widget',{key:widget.widgetid,attrs:{\"config\":widget}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchWidget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SwitchWidget.vue?vue&type=template&id=f3f68a94&\"\nimport script from \"./SwitchWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./SwitchWidget.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.config.item)?_c('div',{staticClass:\"entry\",attrs:{\"title\":_vm.config.item.name}},[_c('span',[_vm._v(_vm._s(_vm.label))]),_vm._v(\" \"),_c('span',{staticClass:\"value\",style:({ color: _vm.config.valuecolor })},[_vm._v(_vm._s(_vm.value))])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextWidget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextWidget.vue?vue&type=template&id=75e6259d&\"\nimport script from \"./TextWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./TextWidget.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Widget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Widget.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"entry\"},[_c('span',[_vm._v(_vm._s(_vm.label))]),_vm._v(\" \"),_c('span',{staticClass:\"value\",style:({ color: _vm.config.valuecolor })},[_vm._v(_vm._s(_vm.value))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Widget.vue?vue&type=style&index=0&id=c546d280&prod&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Widget.vue?vue&type=style&index=0&id=c546d280&prod&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Widget.vue?vue&type=template&id=c546d280&\"\nimport script from \"./Widget.vue?vue&type=script&lang=js&\"\nexport * from \"./Widget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Widget.vue?vue&type=style&index=0&id=c546d280&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=60)}([function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e,n){var i=n(49)(\"wks\"),r=n(30),o=n(0).Symbol,s=\"function\"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)(\"Symbol.\"+t))}).store=i},function(t,e,n){var i=n(5);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var i=n(0),r=n(10),o=n(8),s=n(6),u=n(11),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,g=t&a.P,y=t&a.B,m=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,b=d?r:r[e]||(r[e]={}),_=b.prototype||(b.prototype={});d&&(n=e);for(l in n)c=!h&&m&&void 0!==m[l],f=(c?m:n)[l],p=y&&c?u(f,i):g&&\"function\"==typeof f?u(Function.call,f):f,m&&s(m,l,f,t&a.U),b[l]!=f&&o(b,l,p),g&&_[l]!=f&&(_[l]=f)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){t.exports=!n(7)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(0),r=n(8),o=n(12),s=n(30)(\"src\"),u=Function.toString,a=(\"\"+u).split(\"toString\");n(10).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var l=\"function\"==typeof n;l&&(o(n,\"name\")||r(n,\"name\",e)),t[e]!==n&&(l&&(o(n,s)||r(n,s,t[e]?\"\"+t[e]:a.join(String(e)))),t===i?t[e]=n:u?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&this[s]||u.call(this)})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(13),r=n(25);t.exports=n(4)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:\"2.5.7\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var i=n(14);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(2),r=n(41),o=n(29),s=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e,n){\"use strict\";var i=n(7);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var i=n(23),r=n(16);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(53),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(11),r=n(23),o=n(28),s=n(19),u=n(64);t.exports=function(t,e){var n=1==t,a=2==t,l=3==t,c=4==t,f=6==t,p=5==t||f,h=e||u;return function(e,u,d){for(var v,g,y=o(e),m=r(y),b=i(u,d,3),_=s(m.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in m)&&(v=m[x],g=b(v,x,y),t))if(n)w[x]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(c)return!1;return f?-1:l||c?c:w}}},function(t,e,n){var i=n(5),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var i=n(9);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(13).f,r=n(12),o=n(1)(\"toStringTag\");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(49)(\"keys\"),r=n(30);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(5);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+i).toString(36))}},function(t,e,n){\"use strict\";var i=n(0),r=n(12),o=n(9),s=n(67),u=n(29),a=n(7),l=n(77).f,c=n(45).f,f=n(13).f,p=n(51).trim,h=i.Number,d=h,v=h.prototype,g=\"Number\"==o(n(44)(v)),y=\"trim\"in String.prototype,m=function(t){var e=u(t,!1);if(\"string\"==typeof e&&e.length>2){e=y?e.trim():p(e,3);var n,i,r,o=e.charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+e}for(var s,a=e.slice(2),l=0,c=a.length;lr)return NaN;return parseInt(a,i)}}return+e};if(!h(\" 0o1\")||!h(\"0b1\")||h(\"+0x1\")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(g?a(function(){v.valueOf.call(n)}):\"Number\"!=o(n))?s(new d(m(e)),n,h):m(e)};for(var b,_=n(4)?l(d):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),x=0;_.length>x;x++)r(d,b=_[x])&&!r(h,b)&&f(h,b,c(d,b));h.prototype=v,v.constructor=h,n(6)(i,\"Number\",h)}},function(t,e,n){\"use strict\";function i(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function r(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t=\"undefined\"),null===t&&(t=\"null\"),!1===t&&(t=\"false\"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,i){return t.filter(function(t){return o(i(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,i){return i[t]&&i[t].length?(n.push({$groupLabel:i[e],$isLabel:!0}),n.concat(i[t])):n},[])}}function l(t,e,i,r,o){return function(u){return u.map(function(u){var a;if(!u[i])return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"),[];var l=s(u[i],t,e,o);return l.length?(a={},n.i(d.a)(a,r,u[r]),n.i(d.a)(a,i,l),a):[]})}}var c=n(59),f=n(54),p=(n.n(f),n(95)),h=(n.n(p),n(31)),d=(n.n(h),n(58)),v=n(91),g=(n.n(v),n(98)),y=(n.n(g),n(92)),m=(n.n(y),n(88)),b=(n.n(m),n(97)),_=(n.n(b),n(89)),x=(n.n(_),n(96)),w=(n.n(x),n(93)),S=(n.n(w),n(90)),O=(n.n(S),function(){for(var t=arguments.length,e=new Array(t),n=0;n-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(i(t))return\"\";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return i(e)?\"\":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&(\"Tab\"!==e||this.pointerDirty)){if(t.isTag)this.$emit(\"tag\",t.label,this.id),this.search=\"\",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void(\"Tab\"!==e&&this.removeElement(t));this.$emit(\"select\",t,this.id),this.multiple?this.$emit(\"input\",this.internalValue.concat([t]),this.id):this.$emit(\"input\",t,this.id),this.clearOnSelect&&(this.search=\"\")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit(\"remove\",n[this.groupValues],this.id);var i=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit(\"input\",i,this.id)}else{var r=n[this.groupValues].filter(function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))});this.$emit(\"select\",r,this.id),this.$emit(\"input\",this.internalValue.concat(r),this.id)}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every(function(t){return e.isSelected(t)||e.isOptionDisabled(t)})},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var i=\"object\"===n.i(c.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit(\"remove\",t,this.id),this.multiple){var r=this.internalValue.slice(0,i).concat(this.internalValue.slice(i+1));this.$emit(\"input\",r,this.id)}else this.$emit(\"input\",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf(\"Delete\")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=\"\"),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit(\"open\",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=\"\"),this.$emit(\"close\",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if(\"undefined\"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||\"below\"===this.openDirection||\"bottom\"===this.openDirection?(this.preferredOpenDirection=\"below\",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection=\"above\",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){\"use strict\";var i=n(54),r=(n.n(i),n(31));n.n(r);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer,\"multiselect__option--selected\":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return[\"multiselect__option--group\",\"multiselect__option--disabled\"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return i&&!this.wholeGroupDisabled(i)?[\"multiselect__option--group\",{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer},{\"multiselect__option--group-selected\":this.wholeGroupSelected(i)}]:\"multiselect__option--disabled\"},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"Enter\",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){\"use strict\";var i=n(36),r=n(74),o=n(15),s=n(18);t.exports=n(72)(Array,\"Array\",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):\"keys\"==e?r(0,n):\"values\"==e?r(0,t[n]):r(0,[n,t[n]])},\"values\"),o.Arguments=o.Array,i(\"keys\"),i(\"values\"),i(\"entries\")},function(t,e,n){\"use strict\";var i=n(31),r=(n.n(i),n(32)),o=n(33);e.a={name:\"vue-multiselect\",mixins:[r.a,o.a],props:{name:{type:String,default:\"\"},selectLabel:{type:String,default:\"Press enter to select\"},selectGroupLabel:{type:String,default:\"Press enter to select group\"},selectedLabel:{type:String,default:\"Selected\"},deselectLabel:{type:String,default:\"Press enter to remove\"},deselectGroupLabel:{type:String,default:\"Press enter to deselect group\"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return\"and \".concat(t,\" more\")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:\"\"},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:\"\"},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:\"\"},selectLabelText:function(){return this.showLabels?this.selectLabel:\"\"},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:\"\"},selectedLabelText:function(){return this.showLabels?this.selectedLabel:\"\"},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:\"100%\"}:{width:\"0\",position:\"absolute\",padding:\"0\"}},contentStyle:function(){return this.options.length?{display:\"inline-block\"}:{display:\"block\"}},isAbove:function(){return\"above\"===this.openDirection||\"top\"===this.openDirection||\"below\"!==this.openDirection&&\"bottom\"!==this.openDirection&&\"above\"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var i=n(1)(\"unscopables\"),r=Array.prototype;void 0==r[i]&&n(8)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(18),r=n(19),o=n(85);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(9),r=n(1)(\"toStringTag\"),o=\"Arguments\"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,u;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=s(e=Object(t),r))?n:o?i(e):\"Object\"==(u=i(e))&&\"function\"==typeof e.callee?\"Arguments\":u}},function(t,e,n){\"use strict\";var i=n(2);t.exports=function(){var t=i(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},function(t,e,n){var i=n(0).document;t.exports=i&&i.documentElement},function(t,e,n){t.exports=!n(4)&&!n(7)(function(){return 7!=Object.defineProperty(n(21)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(9);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){\"use strict\";function i(t){var e,n;this.promise=new t(function(t,i){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=i}),this.resolve=r(e),this.reject=r(n)}var r=n(14);t.exports.f=function(t){return new i(t)}},function(t,e,n){var i=n(2),r=n(76),o=n(22),s=n(27)(\"IE_PROTO\"),u=function(){},a=function(){var t,e=n(21)(\"iframe\"),i=o.length;for(e.style.display=\"none\",n(40).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(\"\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=df34d242&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/*! For license information please see index.module.js.LICENSE.txt */\nvar t={2463:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".emoji-mart,\\n.emoji-mart * {\\n box-sizing: border-box;\\n line-height: 1.15;\\n}\\n\\n.emoji-mart {\\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\\n font-size: 16px;\\n /* display: inline-block; */\\n display: flex;\\n flex-direction: column;\\n height: 420px;\\n color: #222427;\\n border: 1px solid #d9d9d9;\\n border-radius: 5px;\\n background: #fff;\\n}\\n\\n.emoji-mart-emoji {\\n padding: 6px;\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n\\n.emoji-mart-emoji span {\\n display: inline-block;\\n}\\n\\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\\n width: 38px;\\n height: 38px;\\n font-size: 32px;\\n}\\n\\n.emoji-type-native {\\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\\n 'Android Emoji';\\n word-break: keep-all;\\n}\\n\\n.emoji-type-image {\\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\\n * screen sizes */\\n background-size: 6100%;\\n}\\n.emoji-type-image.emoji-set-apple {\\n background-image: url('https://unpkg.com/emoji-datasource-apple@14.0.0/img/apple/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-facebook {\\n background-image: url('https://unpkg.com/emoji-datasource-facebook@14.0.0/img/facebook/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-google {\\n background-image: url('https://unpkg.com/emoji-datasource-google@14.0.0/img/google/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-twitter {\\n background-image: url('https://unpkg.com/emoji-datasource-twitter@14.0.0/img/twitter/sheets-256/64.png');\\n}\\n\\n.emoji-mart-bar {\\n border: 0 solid #d9d9d9;\\n}\\n.emoji-mart-bar:first-child {\\n border-bottom-width: 1px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n.emoji-mart-bar:last-child {\\n border-top-width: 1px;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n}\\n\\n.emoji-mart-scroll {\\n position: relative;\\n overflow-y: scroll;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-anchors {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n padding: 0 6px;\\n color: #858585;\\n line-height: 0;\\n}\\n\\n.emoji-mart-anchor {\\n position: relative;\\n display: block;\\n flex: 1 1 auto;\\n text-align: center;\\n padding: 12px 4px;\\n overflow: hidden;\\n transition: color 0.1s ease-out;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n.emoji-mart-anchor:hover,\\n.emoji-mart-anchor-selected {\\n color: #464646;\\n}\\n\\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\\n bottom: 0;\\n}\\n\\n.emoji-mart-anchor-bar {\\n position: absolute;\\n bottom: -3px;\\n left: 0;\\n width: 100%;\\n height: 3px;\\n background-color: #464646;\\n}\\n\\n.emoji-mart-anchors i {\\n display: inline-block;\\n width: 100%;\\n max-width: 22px;\\n}\\n\\n.emoji-mart-anchors svg {\\n fill: currentColor;\\n max-height: 18px;\\n}\\n\\n.emoji-mart .scroller {\\n height: 250px;\\n position: relative;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-search {\\n margin-top: 6px;\\n padding: 0 6px;\\n}\\n.emoji-mart-search input {\\n font-size: 16px;\\n display: block;\\n width: 100%;\\n padding: 0.2em 0.6em;\\n border-radius: 25px;\\n border: 1px solid #d9d9d9;\\n outline: 0;\\n}\\n.emoji-mart-search-results {\\n height: 250px;\\n overflow-y: scroll;\\n}\\n\\n.emoji-mart-category {\\n position: relative;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji span {\\n z-index: 1;\\n position: relative;\\n text-align: center;\\n cursor: default;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n z-index: 0;\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #f4f4f4;\\n border-radius: 100%;\\n opacity: 0;\\n}\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n opacity: 1;\\n}\\n\\n.emoji-mart-category-label {\\n position: sticky;\\n top: 0;\\n}\\n.emoji-mart-static .emoji-mart-category-label {\\n z-index: 2;\\n position: relative;\\n /* position: sticky; */\\n /* position: -webkit-sticky; */\\n}\\n\\n.emoji-mart-category-label h3 {\\n display: block;\\n font-size: 16px;\\n width: 100%;\\n font-weight: 500;\\n padding: 5px 6px;\\n background-color: #fff;\\n background-color: rgba(255, 255, 255, 0.95);\\n}\\n\\n.emoji-mart-emoji {\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n}\\n\\n.emoji-mart-no-results {\\n font-size: 14px;\\n text-align: center;\\n padding-top: 70px;\\n color: #858585;\\n}\\n.emoji-mart-no-results .emoji-mart-category-label {\\n display: none;\\n}\\n.emoji-mart-no-results .emoji-mart-no-results-label {\\n margin-top: 0.2em;\\n}\\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\\n content: none;\\n}\\n\\n.emoji-mart-preview {\\n position: relative;\\n height: 70px;\\n}\\n\\n.emoji-mart-preview-emoji,\\n.emoji-mart-preview-data,\\n.emoji-mart-preview-skins {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n.emoji-mart-preview-emoji {\\n left: 12px;\\n}\\n\\n.emoji-mart-preview-data {\\n left: 68px;\\n right: 12px;\\n word-break: break-all;\\n}\\n\\n.emoji-mart-preview-skins {\\n right: 30px;\\n text-align: right;\\n}\\n\\n.emoji-mart-preview-name {\\n font-size: 14px;\\n}\\n\\n.emoji-mart-preview-shortname {\\n font-size: 12px;\\n color: #888;\\n}\\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\\n margin-left: 0.5em;\\n}\\n\\n.emoji-mart-preview-emoticon {\\n font-size: 11px;\\n color: #bbb;\\n}\\n\\n.emoji-mart-title span {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.emoji-mart-title .emoji-mart-emoji {\\n padding: 0;\\n}\\n\\n.emoji-mart-title-label {\\n color: #999a9c;\\n font-size: 21px;\\n font-weight: 300;\\n}\\n\\n.emoji-mart-skin-swatches {\\n font-size: 0;\\n padding: 2px 0;\\n border: 1px solid #d9d9d9;\\n border-radius: 12px;\\n background-color: #fff;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\\n width: 16px;\\n padding: 0 2px;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\\n opacity: 0.75;\\n}\\n\\n.emoji-mart-skin-swatch {\\n display: inline-block;\\n width: 0;\\n vertical-align: middle;\\n transition-property: width, padding;\\n transition-duration: 0.125s;\\n transition-timing-function: ease-out;\\n}\\n\\n.emoji-mart-skin-swatch:nth-child(1) {\\n transition-delay: 0s;\\n}\\n.emoji-mart-skin-swatch:nth-child(2) {\\n transition-delay: 0.03s;\\n}\\n.emoji-mart-skin-swatch:nth-child(3) {\\n transition-delay: 0.06s;\\n}\\n.emoji-mart-skin-swatch:nth-child(4) {\\n transition-delay: 0.09s;\\n}\\n.emoji-mart-skin-swatch:nth-child(5) {\\n transition-delay: 0.12s;\\n}\\n.emoji-mart-skin-swatch:nth-child(6) {\\n transition-delay: 0.15s;\\n}\\n\\n.emoji-mart-skin-swatch-selected {\\n position: relative;\\n width: 16px;\\n padding: 0 2px;\\n}\\n.emoji-mart-skin-swatch-selected:after {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 4px;\\n height: 4px;\\n margin: -2px 0 0 -2px;\\n background-color: #fff;\\n border-radius: 100%;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.2s ease-out;\\n}\\n\\n.emoji-mart-skin {\\n display: inline-block;\\n width: 100%;\\n padding-top: 100%;\\n max-width: 12px;\\n border-radius: 100%;\\n}\\n\\n.emoji-mart-skin-tone-1 {\\n background-color: #ffc93a;\\n}\\n.emoji-mart-skin-tone-2 {\\n background-color: #fadcbc;\\n}\\n.emoji-mart-skin-tone-3 {\\n background-color: #e0bb95;\\n}\\n.emoji-mart-skin-tone-4 {\\n background-color: #bf8f68;\\n}\\n.emoji-mart-skin-tone-5 {\\n background-color: #9b643d;\\n}\\n.emoji-mart-skin-tone-6 {\\n background-color: #594539;\\n}\\n\\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\\n.emoji-mart .vue-recycle-scroller {\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\\n overflow-y: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\\n overflow-x: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\\n display: flex;\\n}\\n.emoji-mart .vue-recycle-scroller__slot {\\n flex: auto 0 0;\\n}\\n.emoji-mart .vue-recycle-scroller__item-wrapper {\\n flex: 1;\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n will-change: transform;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-vertical\\n .vue-recycle-scroller__item-wrapper {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-horizontal\\n .vue-recycle-scroller__item-wrapper {\\n height: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-vertical\\n .vue-recycle-scroller__item-view {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-horizontal\\n .vue-recycle-scroller__item-view {\\n height: 100%;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: -1;\\n width: 100%;\\n height: 100%;\\n border: none;\\n background-color: transparent;\\n pointer-events: none;\\n display: block;\\n overflow: hidden;\\n opacity: 0;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n pointer-events: none;\\n z-index: -1;\\n}\\n.emoji-mart-search .hidden {\\n display: none;\\n visibility: hidden;\\n}\\n\",\"\",{version:3,sources:[\"webpack://./node_modules/emoji-mart-vue-fast/css/emoji-mart.css\"],names:[],mappings:\"AAAA;;EAEE,sBAAsB;EACtB,iBAAiB;AACnB;;AAEA;EACE,4EAA4E;EAC5E,eAAe;EACf,2BAA2B;EAC3B,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,cAAc;EACd,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE;;mBAEiB;EACjB,oBAAoB;AACtB;;AAEA;EACE,qFAAqF;EACrF;mBACiB;EACjB,sBAAsB;AACxB;AACA;EACE,oGAAoG;AACtG;AACA;EACE,0GAA0G;AAC5G;AACA;EACE,sGAAsG;AACxG;AACA;EACE,wGAAwG;AAC1G;;AAEA;EACE,uBAAuB;AACzB;AACA;EACE,wBAAwB;EACxB,2BAA2B;EAC3B,4BAA4B;AAC9B;AACA;EACE,qBAAqB;EACrB,8BAA8B;EAC9B,+BAA+B;AACjC;;AAEA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,OAAO;EACP,sBAAsB;EACtB,UAAU,EAAE,kEAAkE;EAC9E,sBAAsB,EAAE,iDAAiD;EACzE,iCAAiC;AACnC;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,cAAc;EACd,cAAc;EACd,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,cAAc;EACd,cAAc;EACd,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,+BAA+B;EAC/B,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;AAClB;AACA;;EAEE,cAAc;AAChB;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,kBAAkB;EAClB,YAAY;EACZ,OAAO;EACP,WAAW;EACX,WAAW;EACX,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,kBAAkB;EAClB,OAAO;EACP,sBAAsB;EACtB,UAAU,EAAE,kEAAkE;EAC9E,sBAAsB,EAAE,iDAAiD;EACzE,iCAAiC;AACnC;;AAEA;EACE,eAAe;EACf,cAAc;AAChB;AACA;EACE,eAAe;EACf,cAAc;EACd,WAAW;EACX,oBAAoB;EACpB,mBAAmB;EACnB,yBAAyB;EACzB,UAAU;AACZ;AACA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,UAAU;EACV,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;AACjB;;AAEA;;EAEE,UAAU;EACV,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;AACZ;AACA;;EAEE,UAAU;AACZ;;AAEA;EACE,gBAAgB;EAChB,MAAM;AACR;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,sBAAsB;EACtB,8BAA8B;AAChC;;AAEA;EACE,cAAc;EACd,eAAe;EACf,WAAW;EACX,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,2CAA2C;AAC7C;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;AACd;;AAEA;EACE,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;;;EAGE,kBAAkB;EAClB,QAAQ;EACR,2BAA2B;AAC7B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,WAAW;EACX,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,iBAAiB;AACnB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;EACf,WAAW;AACb;AACA;;;EAGE,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,WAAW;AACb;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,cAAc;EACd,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;AACxB;;AAEA;EACE,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,qBAAqB;EACrB,QAAQ;EACR,sBAAsB;EACtB,mCAAmC;EACnC,2BAA2B;EAC3B,oCAAoC;AACtC;;AAEA;EACE,oBAAoB;AACtB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,cAAc;AAChB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX,qBAAqB;EACrB,sBAAsB;EACtB,mBAAmB;EACnB,oBAAoB;EACpB,UAAU;EACV,iCAAiC;AACnC;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,iBAAiB;EACjB,eAAe;EACf,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;;AAEA,uDAAuD;AACvD;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,OAAO;EACP,sBAAsB;EACtB,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,sBAAsB;AACxB;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,aAAa;EACb,kBAAkB;AACpB\",sourcesContent:[\".emoji-mart,\\n.emoji-mart * {\\n box-sizing: border-box;\\n line-height: 1.15;\\n}\\n\\n.emoji-mart {\\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\\n font-size: 16px;\\n /* display: inline-block; */\\n display: flex;\\n flex-direction: column;\\n height: 420px;\\n color: #222427;\\n border: 1px solid #d9d9d9;\\n border-radius: 5px;\\n background: #fff;\\n}\\n\\n.emoji-mart-emoji {\\n padding: 6px;\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n\\n.emoji-mart-emoji span {\\n display: inline-block;\\n}\\n\\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\\n width: 38px;\\n height: 38px;\\n font-size: 32px;\\n}\\n\\n.emoji-type-native {\\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\\n 'Android Emoji';\\n word-break: keep-all;\\n}\\n\\n.emoji-type-image {\\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\\n * screen sizes */\\n background-size: 6100%;\\n}\\n.emoji-type-image.emoji-set-apple {\\n background-image: url('https://unpkg.com/emoji-datasource-apple@14.0.0/img/apple/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-facebook {\\n background-image: url('https://unpkg.com/emoji-datasource-facebook@14.0.0/img/facebook/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-google {\\n background-image: url('https://unpkg.com/emoji-datasource-google@14.0.0/img/google/sheets-256/64.png');\\n}\\n.emoji-type-image.emoji-set-twitter {\\n background-image: url('https://unpkg.com/emoji-datasource-twitter@14.0.0/img/twitter/sheets-256/64.png');\\n}\\n\\n.emoji-mart-bar {\\n border: 0 solid #d9d9d9;\\n}\\n.emoji-mart-bar:first-child {\\n border-bottom-width: 1px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n.emoji-mart-bar:last-child {\\n border-top-width: 1px;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n}\\n\\n.emoji-mart-scroll {\\n position: relative;\\n overflow-y: scroll;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-anchors {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n padding: 0 6px;\\n color: #858585;\\n line-height: 0;\\n}\\n\\n.emoji-mart-anchor {\\n position: relative;\\n display: block;\\n flex: 1 1 auto;\\n text-align: center;\\n padding: 12px 4px;\\n overflow: hidden;\\n transition: color 0.1s ease-out;\\n border: none;\\n background: none;\\n box-shadow: none;\\n}\\n.emoji-mart-anchor:hover,\\n.emoji-mart-anchor-selected {\\n color: #464646;\\n}\\n\\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\\n bottom: 0;\\n}\\n\\n.emoji-mart-anchor-bar {\\n position: absolute;\\n bottom: -3px;\\n left: 0;\\n width: 100%;\\n height: 3px;\\n background-color: #464646;\\n}\\n\\n.emoji-mart-anchors i {\\n display: inline-block;\\n width: 100%;\\n max-width: 22px;\\n}\\n\\n.emoji-mart-anchors svg {\\n fill: currentColor;\\n max-height: 18px;\\n}\\n\\n.emoji-mart .scroller {\\n height: 250px;\\n position: relative;\\n flex: 1;\\n padding: 0 6px 6px 6px;\\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\\n will-change: transform; /* avoids \\\"repaints on scroll\\\" in mobile Chrome */\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.emoji-mart-search {\\n margin-top: 6px;\\n padding: 0 6px;\\n}\\n.emoji-mart-search input {\\n font-size: 16px;\\n display: block;\\n width: 100%;\\n padding: 0.2em 0.6em;\\n border-radius: 25px;\\n border: 1px solid #d9d9d9;\\n outline: 0;\\n}\\n.emoji-mart-search-results {\\n height: 250px;\\n overflow-y: scroll;\\n}\\n\\n.emoji-mart-category {\\n position: relative;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji span {\\n z-index: 1;\\n position: relative;\\n text-align: center;\\n cursor: default;\\n}\\n\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n z-index: 0;\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #f4f4f4;\\n border-radius: 100%;\\n opacity: 0;\\n}\\n.emoji-mart-category .emoji-mart-emoji:hover:before,\\n.emoji-mart-emoji-selected:before {\\n opacity: 1;\\n}\\n\\n.emoji-mart-category-label {\\n position: sticky;\\n top: 0;\\n}\\n.emoji-mart-static .emoji-mart-category-label {\\n z-index: 2;\\n position: relative;\\n /* position: sticky; */\\n /* position: -webkit-sticky; */\\n}\\n\\n.emoji-mart-category-label h3 {\\n display: block;\\n font-size: 16px;\\n width: 100%;\\n font-weight: 500;\\n padding: 5px 6px;\\n background-color: #fff;\\n background-color: rgba(255, 255, 255, 0.95);\\n}\\n\\n.emoji-mart-emoji {\\n position: relative;\\n display: inline-block;\\n font-size: 0;\\n}\\n\\n.emoji-mart-no-results {\\n font-size: 14px;\\n text-align: center;\\n padding-top: 70px;\\n color: #858585;\\n}\\n.emoji-mart-no-results .emoji-mart-category-label {\\n display: none;\\n}\\n.emoji-mart-no-results .emoji-mart-no-results-label {\\n margin-top: 0.2em;\\n}\\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\\n content: none;\\n}\\n\\n.emoji-mart-preview {\\n position: relative;\\n height: 70px;\\n}\\n\\n.emoji-mart-preview-emoji,\\n.emoji-mart-preview-data,\\n.emoji-mart-preview-skins {\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n.emoji-mart-preview-emoji {\\n left: 12px;\\n}\\n\\n.emoji-mart-preview-data {\\n left: 68px;\\n right: 12px;\\n word-break: break-all;\\n}\\n\\n.emoji-mart-preview-skins {\\n right: 30px;\\n text-align: right;\\n}\\n\\n.emoji-mart-preview-name {\\n font-size: 14px;\\n}\\n\\n.emoji-mart-preview-shortname {\\n font-size: 12px;\\n color: #888;\\n}\\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\\n margin-left: 0.5em;\\n}\\n\\n.emoji-mart-preview-emoticon {\\n font-size: 11px;\\n color: #bbb;\\n}\\n\\n.emoji-mart-title span {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.emoji-mart-title .emoji-mart-emoji {\\n padding: 0;\\n}\\n\\n.emoji-mart-title-label {\\n color: #999a9c;\\n font-size: 21px;\\n font-weight: 300;\\n}\\n\\n.emoji-mart-skin-swatches {\\n font-size: 0;\\n padding: 2px 0;\\n border: 1px solid #d9d9d9;\\n border-radius: 12px;\\n background-color: #fff;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\\n width: 16px;\\n padding: 0 2px;\\n}\\n\\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\\n opacity: 0.75;\\n}\\n\\n.emoji-mart-skin-swatch {\\n display: inline-block;\\n width: 0;\\n vertical-align: middle;\\n transition-property: width, padding;\\n transition-duration: 0.125s;\\n transition-timing-function: ease-out;\\n}\\n\\n.emoji-mart-skin-swatch:nth-child(1) {\\n transition-delay: 0s;\\n}\\n.emoji-mart-skin-swatch:nth-child(2) {\\n transition-delay: 0.03s;\\n}\\n.emoji-mart-skin-swatch:nth-child(3) {\\n transition-delay: 0.06s;\\n}\\n.emoji-mart-skin-swatch:nth-child(4) {\\n transition-delay: 0.09s;\\n}\\n.emoji-mart-skin-swatch:nth-child(5) {\\n transition-delay: 0.12s;\\n}\\n.emoji-mart-skin-swatch:nth-child(6) {\\n transition-delay: 0.15s;\\n}\\n\\n.emoji-mart-skin-swatch-selected {\\n position: relative;\\n width: 16px;\\n padding: 0 2px;\\n}\\n.emoji-mart-skin-swatch-selected:after {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 4px;\\n height: 4px;\\n margin: -2px 0 0 -2px;\\n background-color: #fff;\\n border-radius: 100%;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.2s ease-out;\\n}\\n\\n.emoji-mart-skin {\\n display: inline-block;\\n width: 100%;\\n padding-top: 100%;\\n max-width: 12px;\\n border-radius: 100%;\\n}\\n\\n.emoji-mart-skin-tone-1 {\\n background-color: #ffc93a;\\n}\\n.emoji-mart-skin-tone-2 {\\n background-color: #fadcbc;\\n}\\n.emoji-mart-skin-tone-3 {\\n background-color: #e0bb95;\\n}\\n.emoji-mart-skin-tone-4 {\\n background-color: #bf8f68;\\n}\\n.emoji-mart-skin-tone-5 {\\n background-color: #9b643d;\\n}\\n.emoji-mart-skin-tone-6 {\\n background-color: #594539;\\n}\\n\\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\\n.emoji-mart .vue-recycle-scroller {\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\\n overflow-y: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\\n overflow-x: auto;\\n}\\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\\n display: flex;\\n}\\n.emoji-mart .vue-recycle-scroller__slot {\\n flex: auto 0 0;\\n}\\n.emoji-mart .vue-recycle-scroller__item-wrapper {\\n flex: 1;\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n}\\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n will-change: transform;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-vertical\\n .vue-recycle-scroller__item-wrapper {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.direction-horizontal\\n .vue-recycle-scroller__item-wrapper {\\n height: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-vertical\\n .vue-recycle-scroller__item-view {\\n width: 100%;\\n}\\n.emoji-mart\\n .vue-recycle-scroller.ready.direction-horizontal\\n .vue-recycle-scroller__item-view {\\n height: 100%;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: -1;\\n width: 100%;\\n height: 100%;\\n border: none;\\n background-color: transparent;\\n pointer-events: none;\\n display: block;\\n overflow: hidden;\\n opacity: 0;\\n}\\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n pointer-events: none;\\n z-index: -1;\\n}\\n.emoji-mart-search .hidden {\\n display: none;\\n visibility: hidden;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},9934:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(6417),n.b),c=new URL(n(7425),n.b),d=new URL(n(817),n.b),u=new URL(n(9039),n.b),p=new URL(n(3787),n.b),m=new URL(n(4259),n.b),h=new URL(n(5415),n.b),g=new URL(n(5322),n.b),T=o()(i()),C=l()(A),b=l()(c),f=l()(d),v=l()(u),E=l()(p),y=l()(m),x=l()(h),D=l()(g);T.push([t.id,'.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mx-icon-left:before,.mx-icon-right:before,.mx-icon-double-left:before,.mx-icon-double-right:before,.mx-icon-double-left:after,.mx-icon-double-right:after{content:\"\";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;box-sizing:border-box;transform-origin:center;transform:rotate(-45deg) scale(0.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-right:before,.mx-icon-double-right:before,.mx-icon-double-right:after{transform:rotate(135deg) scale(0.7)}.mx-btn{box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:rgba(0,0,0,0);outline:none;border:1px solid rgba(0,0,0,.1);border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn:disabled,.mx-btn.disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(0.23, 1, 0.32, 1),opacity .3s cubic-bezier(0.23, 1, 0.32, 1);transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-0.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input-wrapper .mx-icon-clear{display:none}.mx-input-wrapper:hover .mx-icon-clear{display:block}.mx-input-wrapper:hover .mx-icon-clear+.mx-icon-calendar{display:none}.mx-input{display:inline-block;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:hover,.mx-input:focus{border-color:#409aff}.mx-input:disabled,.mx-input.disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);font-size:16px;line-height:1;color:rgba(0,0,0,.5);vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:rgba(0,0,0,.8)}.mx-datepicker-main{font:14px/1.5 \"Helvetica Neue\",Helvetica,Arial,\"Microsoft Yahei\",sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:flex}@media(max-width: 750px){.mx-range-wrapper{flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-left,.mx-btn-icon-double-left{float:left}.mx-btn-icon-right,.mx-btn-icon-double-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:\"~\"}.mx-calendar-content{position:relative;height:224px;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.in-range,.mx-calendar-content .cell.hover-in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:rgba(0,0,0,0)}.mx-calendar-week-mode .mx-date-row .cell.active{color:inherit;background-color:rgba(0,0,0,0)}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;height:100%;box-sizing:border-box;text-align:center}.mx-table th{padding:0;font-weight:500;vertical-align:middle}.mx-table td{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list::after{content:\"\";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:rgba(0,0,0,0);font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:rgba(0,0,0,0);font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-datepicker[data-v-a0481fe]{user-select:none;color:var(--color-main-text)}.mx-datepicker[data-v-a0481fe] svg{fill:var(--color-main-text)}.mx-datepicker[data-v-a0481fe] .mx-input-wrapper .mx-input{width:100%;border:1px solid var(--color-border);background-color:var(--color-main-background);background-clip:content-box}.mx-datepicker[data-v-a0481fe] .mx-input-wrapper:disabled,.mx-datepicker[data-v-a0481fe] .mx-input-wrapper.disabled{cursor:not-allowed;opacity:.7}.mx-datepicker[data-v-a0481fe] .mx-input-wrapper .mx-icon-calendar,.mx-datepicker[data-v-a0481fe] .mx-input-wrapper .mx-icon-clear{color:var(--color-text-lighter)}.mx-datepicker-main{color:var(--color-main-text);border:1px solid var(--color-border);background-color:var(--color-main-background);font-family:var(--font-face) !important;line-height:1.5}.mx-datepicker-main svg{fill:var(--color-main-text)}.mx-datepicker-main.mx-datepicker-popup{z-index:2000;box-shadow:none}.mx-datepicker-main.mx-datepicker-popup .mx-datepicker-sidebar+.mx-datepicker-content{border-left:1px solid var(--color-border)}.mx-datepicker-main.show-week-number .mx-calendar{width:296px}.mx-datepicker-main .mx-datepicker-header{border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-footer{border-top:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-btn-confirm{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-text) !important;opacity:1 !important}.mx-datepicker-main .mx-datepicker-btn-confirm:hover{background-color:var(--color-primary-element-light) !important;border-color:var(--color-primary-element-light) !important}.mx-datepicker-main .mx-calendar{width:264px;padding:5px}.mx-datepicker-main .mx-calendar.mx-calendar-week-mode{width:296px}.mx-datepicker-main .mx-time+.mx-time,.mx-datepicker-main .mx-calendar+.mx-calendar{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-range-wrapper{display:flex;overflow:hidden}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.active{border-radius:var(--border-radius) 0 0 var(--border-radius)}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.in-range+.cell.active{border-radius:0 var(--border-radius) var(--border-radius) 0}.mx-datepicker-main .mx-table{text-align:center}.mx-datepicker-main .mx-table thead>tr>th{text-align:center;opacity:.5;color:var(--color-text-lighter)}.mx-datepicker-main .mx-table tr:focus,.mx-datepicker-main .mx-table tr:hover,.mx-datepicker-main .mx-table tr:active{background-color:rgba(0,0,0,0)}.mx-datepicker-main .mx-table .cell{transition:all 100ms ease-in-out;text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table .cell>*{cursor:pointer}.mx-datepicker-main .mx-table .cell.today{opacity:1;color:var(--color-primary-element);font-weight:bold}.mx-datepicker-main .mx-table .cell.today:hover,.mx-datepicker-main .mx-table .cell.today:focus{color:var(--color-primary-text)}.mx-datepicker-main .mx-table .cell.in-range,.mx-datepicker-main .mx-table .cell.disabled{border-radius:0;font-weight:normal}.mx-datepicker-main .mx-table .cell.in-range{opacity:.7}.mx-datepicker-main .mx-table .cell.not-current-month{opacity:.5;color:var(--color-text-lighter)}.mx-datepicker-main .mx-table .cell.not-current-month:hover,.mx-datepicker-main .mx-table .cell.not-current-month:focus{opacity:1}.mx-datepicker-main .mx-table .cell:hover,.mx-datepicker-main .mx-table .cell:focus,.mx-datepicker-main .mx-table .cell.actived,.mx-datepicker-main .mx-table .cell.active,.mx-datepicker-main .mx-table .cell.in-range{opacity:1;color:var(--color-primary-text);background-color:var(--color-primary-element);font-weight:bold}.mx-datepicker-main .mx-table .cell.disabled{opacity:.5;color:var(--color-text-lighter);border-radius:0;background-color:var(--color-background-darker)}.mx-datepicker-main .mx-table .mx-week-number{text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table span.mx-week-number,.mx-datepicker-main .mx-table li.mx-week-number,.mx-datepicker-main .mx-table span.cell,.mx-datepicker-main .mx-table li.cell{min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead,.mx-datepicker-main .mx-table.mx-table-date tbody,.mx-datepicker-main .mx-table.mx-table-year,.mx-datepicker-main .mx-table.mx-table-month{display:flex;flex-direction:column;justify-content:space-around}.mx-datepicker-main .mx-table.mx-table-date thead tr,.mx-datepicker-main .mx-table.mx-table-date tbody tr,.mx-datepicker-main .mx-table.mx-table-year tr,.mx-datepicker-main .mx-table.mx-table-month tr{display:inline-flex;align-items:center;flex:1 1 32px;justify-content:space-around;min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead th,.mx-datepicker-main .mx-table.mx-table-date thead td,.mx-datepicker-main .mx-table.mx-table-date tbody th,.mx-datepicker-main .mx-table.mx-table-date tbody td,.mx-datepicker-main .mx-table.mx-table-year th,.mx-datepicker-main .mx-table.mx-table-year td,.mx-datepicker-main .mx-table.mx-table-month th,.mx-datepicker-main .mx-table.mx-table-month td{display:flex;align-items:center;flex:0 1 32%;justify-content:center;min-width:32px;height:95%;min-height:32px;transition:background 100ms ease-in-out}.mx-datepicker-main .mx-table.mx-table-year tr th,.mx-datepicker-main .mx-table.mx-table-year tr td{flex-basis:48%}.mx-datepicker-main .mx-table.mx-table-date tr th,.mx-datepicker-main .mx-table.mx-table-date tr td{flex-basis:32px}.mx-datepicker-main .mx-btn{min-width:32px;height:32px;margin:0 2px !important;padding:7px 10px;cursor:pointer;text-decoration:none;opacity:.5;color:var(--color-text-lighter);border-radius:32px;line-height:20px}.mx-datepicker-main .mx-btn:hover,.mx-datepicker-main .mx-btn:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header,.mx-datepicker-main .mx-time-header{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:44px;margin-bottom:4px}.mx-datepicker-main .mx-calendar-header button,.mx-datepicker-main .mx-time-header button{min-width:32px;min-height:32px;margin:0;cursor:pointer;text-align:center;text-decoration:none;opacity:.7;color:var(--color-main-text);border-radius:32px;line-height:20px}.mx-datepicker-main .mx-calendar-header button:hover,.mx-datepicker-main .mx-time-header button:hover,.mx-datepicker-main .mx-calendar-header button:focus,.mx-datepicker-main .mx-time-header button:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right{align-items:center;justify-content:center;width:32px;padding:0;background-repeat:no-repeat;background-size:16px;background-position:center}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right>i{display:none}.mx-datepicker-main .mx-calendar-header button.mx-btn-text,.mx-datepicker-main .mx-time-header button.mx-btn-text{line-height:initial}.mx-datepicker-main .mx-calendar-header .mx-calendar-header-label,.mx-datepicker-main .mx-time-header .mx-calendar-header-label{display:flex}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left,.mx-datepicker-main .mx-time-header .mx-btn-icon-double-left{background-image:url('+C+\")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-double-left{background-image:url(\"+b+\")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-left,.mx-datepicker-main .mx-time-header .mx-btn-icon-left{background-image:url(\"+f+\")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-left,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-left{background-image:url(\"+v+\")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-right,.mx-datepicker-main .mx-time-header .mx-btn-icon-right{background-image:url(\"+E+\")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-right,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-right{background-image:url(\"+y+\")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header .mx-btn-icon-double-right{background-image:url(\"+x+\")}body.theme--dark .mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right,body.theme--dark .mx-datepicker-main .mx-time-header .mx-btn-icon-double-right{background-image:url(\"+D+\")}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-right{order:2}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right,.mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right{order:3}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row .mx-week-number{font-weight:bold}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{opacity:1;border-radius:50px;background-color:var(--color-background-dark)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{background-color:rgba(0,0,0,0)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:focus,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:focus{color:inherit}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{opacity:.7;font-weight:normal}.mx-datepicker-main .mx-time{background-color:var(--color-main-background)}.mx-datepicker-main .mx-time .mx-time-header{justify-content:center;border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-column{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-option.active,.mx-datepicker-main .mx-time .mx-time-option:hover,.mx-datepicker-main .mx-time .mx-time-item.active,.mx-datepicker-main .mx-time .mx-time-item:hover{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-time .mx-time-option.disabled,.mx-datepicker-main .mx-time .mx-time-item.disabled{cursor:not-allowed;opacity:.5;color:var(--color-main-text);background-color:var(--color-main-background)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./node_modules/vue2-datepicker/scss/icon.scss\",\"webpack://./node_modules/vue2-datepicker/scss/btn.scss\",\"webpack://./node_modules/vue2-datepicker/scss/var.scss\",\"webpack://./node_modules/vue2-datepicker/scss/scrollbar.scss\",\"webpack://./node_modules/vue2-datepicker/scss/animation.scss\",\"webpack://./node_modules/vue2-datepicker/scss/index.scss\",\"webpack://./src/components/NcDatetimePicker/index.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2JAME,UAAA,CACA,iBAAA,CACA,QAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,kBAAA,CACA,yBAAA,CACA,wBAAA,CACA,iBAAA,CACA,qBAAA,CACA,uBAAA,CACA,mCAAA,CAGF,2BACE,SAAA,CAGF,6BACE,QAAA,CAGF,+EAGE,mCAAA,CCjCF,QACE,qBAAA,CACA,aAAA,CACA,cAAA,CACA,eAAA,CACA,gBAAA,CACA,QAAA,CACA,cAAA,CACA,8BAAA,CACA,YAAA,CACA,+BAAA,CACA,iBAAA,CACA,aCZc,CDad,kBAAA,CACA,cACE,oBCdY,CDeZ,aCfY,CDiBd,kCAEE,UCTa,CDUb,kBAAA,CAIJ,aACE,QAAA,CACA,aAAA,CACA,eAAA,CACA,mBAAA,CE7BF,cACE,WAAA,CAEE,wCACE,SAAA,CAKN,mBACE,WAAA,CACA,iBAAA,CACA,eAAA,CAGF,oBACE,iBAAA,CACA,OAAA,CACA,SAAA,CACA,UAAA,CACA,SAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA,CACA,gCAAA,CACA,wCACE,iBAAA,CACA,UAAA,CACA,QAAA,CACA,cAAA,CACA,qBAAA,CACA,qCAAA,CACA,+BAAA,CChCJ,4DAEE,SAAA,CACA,mBAAA,CACA,kGAAA,CAEA,2BAAA,CAGF,6EAGE,SAAA,CACA,mBAAA,CCTF,eACE,iBAAA,CACA,oBAAA,CACA,WAAA,CACA,mBACE,SAAA,CACA,UAAA,CACA,sBAAA,CACA,iBAAA,CACA,eAAA,CAIJ,qBACE,WAAA,CAGF,sBACE,UAAA,CAGF,kBACE,iBAAA,CACA,iCACE,YAAA,CAGA,uCACE,aAAA,CAEF,yDACE,YAAA,CAKN,UACE,oBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,cAAA,CACA,eAAA,CACA,UHzCY,CG0CZ,qBAAA,CACA,qBAAA,CACA,iBHrBoB,CGsBpB,2CAAA,CAEA,gCAEE,oBHhDuB,CGkDzB,sCAEE,UHlDa,CGmDb,wBHlDwB,CGmDxB,iBHxDiB,CGyDjB,kBAAA,CAEF,gBACE,YAAA,CAEF,qBACE,YAAA,CAIJ,iCAEE,iBAAA,CACA,OAAA,CACA,SAAA,CACA,0BAAA,CACA,cAAA,CACA,aAAA,CACA,oBAAA,CACA,qBAAA,CAGF,eACE,cAAA,CACA,qBACE,oBAAA,CAIJ,oBACE,2EAAA,CACA,aH/Fc,CGgGd,qBAAA,CACA,wBAAA,CAGF,qBACE,iBAAA,CACA,cAAA,CACA,iBAAA,CACA,sCAAA,CACA,YHpGc,CGuGhB,uBACE,UAAA,CACA,qBAAA,CACA,WH/EoB,CGgFpB,WAAA,CACA,aAAA,CAGF,8CACE,iBHrFoB,CGsFpB,6BAAA,CAGF,oBACE,iBAAA,CACA,gBAAA,CAGF,iBACE,aAAA,CACA,aAAA,CACA,gBAAA,CAGF,kBACE,YAAA,CACA,yBAFF,kBAGI,qBAAA,CAAA,CAIJ,sBACE,eAAA,CACA,+BAAA,CAGF,sBACE,eAAA,CACA,gBAAA,CACA,4BAAA,CAGF,aACE,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,0BACE,6BAAA,CAIJ,oCACE,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CAGF,2CAEE,UAAA,CAEF,6CAEE,WAAA,CAGF,0BACE,cAAA,CAGF,8BACE,YAAA,CACA,oCACE,WAAA,CAIJ,qBACE,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,2BACE,cAAA,CACA,iCACE,aHlMU,CGmMV,wBH/K4B,CGiL9B,kCACE,UHtLkB,CGuLlB,wBHtMU,CGwMZ,8EAEE,aH3MU,CG4MV,wBHrL+B,CGuLjC,oCACE,kBAAA,CACA,UHrMW,CGsMX,wBHrMsB,CG2M1B,oCACE,cAAA,CACA,0CACE,wBHtM4B,CGwM9B,mDACE,wBHtM+B,CGyM/B,gDACE,aAAA,CACA,8BAAA,CAEF,iDACE,aAAA,CACA,8BAAA,CAMR,gBACE,UAAA,CAGF,UACE,kBAAA,CACA,wBAAA,CACA,gBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CAEA,aACE,SAAA,CACA,eAAA,CACA,qBAAA,CAEF,aACE,SAAA,CACA,qBAAA,CAKF,oCAEE,WAAA,CACA,cAAA,CAGF,sBACE,aHzQU,CG2QZ,uCACE,UAAA,CACA,eAAA,CAIJ,SACE,MAAA,CACA,WAAA,CACA,eAAA,CACA,kBACE,6BAAA,CAGJ,kBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CAEF,gBAEE,+BAAA,CAGF,iBACE,YAAA,CACA,qBAAA,CACA,eAAA,CAGF,iBACE,YAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CAGF,gBACE,MAAA,CACA,iBAAA,CACA,6BAAA,CACA,iBAAA,CAEA,4BACE,aAAA,CAEF,8BACE,QAAA,CACA,SAAA,CACA,eAAA,CACA,qCACE,UAAA,CACA,aAAA,CACA,YAAA,CAGJ,8BACE,cAAA,CACA,cAAA,CACA,WAAA,CACA,gBAAA,CACA,oCACE,aH9UU,CG+UV,wBHlTwB,CGoT1B,qCACE,aHjVU,CGkVV,8BHzTyB,CG0TzB,eAAA,CAEF,uCACE,kBAAA,CACA,UH7UW,CG8UX,wBH7UsB,CGkV5B,gBACE,cAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,sBACE,aHpWY,CGqWZ,wBHxU0B,CG0U5B,uBACE,aHvWY,CGwWZ,8BH/U2B,CGgV3B,eAAA,CAEF,yBACE,kBAAA,CACA,UHnWa,CGoWb,wBHnWwB,CIT5B,+BACC,gBAAA,CACA,4BAAA,CAEA,mCACC,2BAAA,CAMA,2DACC,UAAA,CACA,oCAAA,CACA,6CAAA,CACA,2BAAA,CAGD,oHAEC,kBAAA,CACA,UCiBc,CDdf,mIAEC,+BAAA,CAMH,oBACC,4BAAA,CACA,oCAAA,CACA,6CAAA,CACA,uCAAA,CACA,eAAA,CAEA,wBACC,2BAAA,CAGD,wCACC,YAAA,CACA,eAAA,CAEA,sFACC,yCAAA,CAIF,kDACC,WAAA,CAGD,0CACC,2CAAA,CAGD,0CACC,wCAAA,CAGD,+CACC,6CAAA,CACA,yCAAA,CACA,0CAAA,CACA,oBAAA,CAGD,qDACC,8DAAA,CACA,0DAAA,CAID,iCACC,WAAA,CACA,WAAA,CACA,uDACC,WAAA,CAIF,oFAEC,yCAAA,CAGD,sCACC,YAAA,CACA,eAAA,CAIC,uFACC,2DAAA,CAGD,sGACC,2DAAA,CAMH,8BACC,iBAAA,CAEA,0CACC,iBAAA,CACA,UC3EgB,CD4EhB,+BAAA,CAID,sHAGC,8BAAA,CAID,oCACC,gCAAA,CACA,iBAAA,CACA,UCzFc,CD0Fd,kBAAA,CAGA,sCACC,cAAA,CAID,0CACC,SClGW,CDmGX,kCAAA,CACA,gBAAA,CACA,gGAEC,+BAAA,CAGF,0FAEC,eAAA,CACA,kBAAA,CAED,6CACC,UCjHa,CDmHd,sDACC,UCrHe,CDsHf,+BAAA,CACA,wHAEC,SCvHU,CD4HZ,wNAKC,SCjIW,CDkIX,+BAAA,CACA,6CAAA,CACA,gBAAA,CAED,6CACC,UCzIe,CD0If,+BAAA,CACA,eAAA,CACA,+CAAA,CAIF,8CACC,iBAAA,CACA,UCjJc,CDkJd,kBAAA,CAID,gLAIC,eApMW,CAwMZ,6LAIC,YAAA,CACA,qBAAA,CACA,4BAAA,CACA,yMACC,mBAAA,CACA,kBAAA,CACA,aAAA,CACA,4BAAA,CACA,eApNU,CAuNX,kZAEC,YAAA,CACA,kBAAA,CAEA,YAAA,CACA,sBAAA,CACA,cA9NU,CAgOV,UAAA,CACA,eAjOU,CAkOV,uCAAA,CAID,oGAGC,cAAA,CAID,oGAGC,eAhPU,CAsPb,4BACC,cAvPY,CAwPZ,WAxPY,CAyPZ,uBAAA,CACA,gBAAA,CACA,cAAA,CACA,oBAAA,CACA,UCpNiB,CDqNjB,+BAAA,CACA,kBA/PY,CAgQZ,gBAAA,CAEA,oEAEC,SCzNY,CD0NZ,4BAAA,CACA,+CAAA,CAKF,4EACC,mBAAA,CACA,kBAAA,CACA,6BAAA,CACA,UAAA,CACA,WCxPe,CDyPf,iBAAA,CAEA,0FACC,cApRW,CAqRX,eArRW,CAsRX,QAAA,CACA,cAAA,CACA,iBAAA,CACA,oBAAA,CACA,UChPc,CDiPd,4BAAA,CACA,kBA5RW,CA6RX,gBAAA,CAGA,4MAEC,SCvPW,CDwPX,4BAAA,CACA,+CAAA,CAID,ghBAIC,kBAAA,CACA,sBAAA,CACA,UA9SU,CA+SV,SAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CAGA,giBACC,YAAA,CAGF,kHACC,mBAAA,CAIF,gIACC,YAAA,CAGD,8HACC,wDAAA,CACA,gKACC,wDAAA,CAIF,gHACC,wDAAA,CACA,kJACC,wDAAA,CAIF,kHACC,wDAAA,CACA,oJACC,wDAAA,CAIF,gIACC,wDAAA,CACA,kKACC,wDAAA,CAIF,8HACC,OAAA,CAGD,4IACC,OAAA,CAOA,wEACC,gBAAA,CAED,qIAEC,SCpUW,CDqUX,kBAAA,CACA,6CAAA,CACA,2IACC,8BAAA,CACA,ybACC,aAAA,CAIH,uEACC,+BAAA,CACA,6CAAA,CAEA,0EACC,UCpVY,CDqVZ,kBAAA,CAOJ,6BACC,6CAAA,CAEA,6CAEC,sBAAA,CACA,2CAAA,CAGD,6CACC,yCAAA,CAKA,0MAEC,+BAAA,CACA,6CAAA,CAGD,0GACC,kBAAA,CACA,UCpXe,CDqXf,4BAAA,CACA,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-icon-left:before,\\n.#{$namespace}-icon-right:before,\\n.#{$namespace}-icon-double-left:before,\\n.#{$namespace}-icon-double-right:before,\\n.#{$namespace}-icon-double-left:after,\\n.#{$namespace}-icon-double-right:after {\\n content: '';\\n position: relative;\\n top: -1px;\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n vertical-align: middle;\\n border-style: solid;\\n border-color: currentColor;\\n border-width: 2px 0 0 2px;\\n border-radius: 1px;\\n box-sizing: border-box;\\n transform-origin: center;\\n transform: rotate(-45deg) scale(0.7);\\n}\\n\\n.#{$namespace}-icon-double-left:after {\\n left: -4px;\\n}\\n\\n.#{$namespace}-icon-double-right:before {\\n left: 4px;\\n}\\n\\n.#{$namespace}-icon-right:before,\\n.#{$namespace}-icon-double-right:before,\\n.#{$namespace}-icon-double-right:after {\\n transform: rotate(135deg) scale(0.7);\\n}\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-btn {\\n box-sizing: border-box;\\n line-height: 1;\\n font-size: 14px;\\n font-weight: 500;\\n padding: 7px 15px;\\n margin: 0;\\n cursor: pointer;\\n background-color: transparent;\\n outline: none;\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n border-radius: 4px;\\n color: $default-color;\\n white-space: nowrap;\\n &:hover {\\n border-color: $primary-color;\\n color: $primary-color;\\n }\\n &:disabled,\\n &.disabled {\\n color: $disabled-color;\\n cursor: not-allowed;\\n }\\n}\\n\\n.#{$namespace}-btn-text {\\n border: 0;\\n padding: 0 4px;\\n text-align: left;\\n line-height: inherit;\\n}\\n\",\"$namespace: 'mx' !default;\\n\\n$default-color: #73879c !default;\\n$primary-color: #1284e7 !default;\\n\\n$today-color: mix(#fff, $primary-color, 10%) !default;\\n\\n$popup-z-index: 2001 !default;\\n\\n$input-border-color: #ccc !default;\\n$input-color: #555 !default;\\n$input-hover-border-color: #409aff !default;\\n\\n$disabled-color: #ccc !default;\\n$disabled-background-color: #f3f3f3 !default;\\n\\n$border-color: #e8e8e8 !default;\\n\\n$calendar-active-color: #fff !default;\\n$calendar-active-background-color: $primary-color !default;\\n\\n$calendar-hover-color: $default-color !default;\\n$calendar-hover-background-color: mix(#fff, $calendar-active-background-color, 95%) !default;\\n\\n$calendar-in-range-color: $default-color !default;\\n$calendar-in-range-background-color: mix(#fff, $calendar-active-background-color, 85%) !default;\\n\\n$time-active-color: $primary-color !default;\\n$time-active-background-color: transparent !default;\\n\\n$time-hover-color: $default-color !default;\\n$time-hover-background-color: mix(#fff, $calendar-active-background-color, 95%) !default;\\n\\n$input-border-radius: 4px !default;\\n$sidebar-margin-left: 100px !default;\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-scrollbar {\\n height: 100%;\\n &:hover {\\n .#{$namespace}-scrollbar-track {\\n opacity: 1;\\n }\\n }\\n}\\n\\n.#{$namespace}-scrollbar-wrap {\\n height: 100%;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.#{$namespace}-scrollbar-track {\\n position: absolute;\\n top: 2px;\\n right: 2px;\\n bottom: 2px;\\n width: 6px;\\n z-index: 1;\\n border-radius: 4px;\\n opacity: 0;\\n transition: opacity 0.24s ease-out;\\n .#{$namespace}-scrollbar-thumb {\\n position: absolute;\\n width: 100%;\\n height: 0;\\n cursor: pointer;\\n border-radius: inherit;\\n background-color: rgba(144, 147, 153, 0.3);\\n transition: background-color 0.3s;\\n }\\n}\\n\",\"@import './var.scss';\\n\\n.#{$namespace}-zoom-in-down-enter-active,\\n.#{$namespace}-zoom-in-down-leave-active {\\n opacity: 1;\\n transform: scaleY(1);\\n transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),\\n opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1);\\n transform-origin: center top;\\n}\\n\\n.#{$namespace}-zoom-in-down-enter,\\n.#{$namespace}-zoom-in-down-enter-from,\\n.#{$namespace}-zoom-in-down-leave-to {\\n opacity: 0;\\n transform: scaleY(0);\\n}\\n\",\"@import './var.scss';\\n@import './icon.scss';\\n@import './btn.scss';\\n@import './scrollbar.scss';\\n@import './animation.scss';\\n\\n.#{$namespace}-datepicker {\\n position: relative;\\n display: inline-block;\\n width: 210px;\\n svg {\\n width: 1em;\\n height: 1em;\\n vertical-align: -0.15em;\\n fill: currentColor;\\n overflow: hidden;\\n }\\n}\\n\\n.#{$namespace}-datepicker-range {\\n width: 320px;\\n}\\n\\n.#{$namespace}-datepicker-inline {\\n width: auto;\\n}\\n\\n.#{$namespace}-input-wrapper {\\n position: relative;\\n .#{$namespace}-icon-clear {\\n display: none;\\n }\\n &:hover {\\n .#{$namespace}-icon-clear {\\n display: block;\\n }\\n .#{$namespace}-icon-clear + .#{$namespace}-icon-calendar {\\n display: none;\\n }\\n }\\n}\\n\\n.#{$namespace}-input {\\n display: inline-block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 34px;\\n padding: 6px 30px;\\n padding-left: 10px;\\n font-size: 14px;\\n line-height: 1.4;\\n color: $input-color;\\n background-color: #fff;\\n border: 1px solid $input-border-color;\\n border-radius: $input-border-radius;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n\\n &:hover,\\n &:focus {\\n border-color: $input-hover-border-color;\\n }\\n &:disabled,\\n &.disabled {\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n border-color: $input-border-color;\\n cursor: not-allowed;\\n }\\n &:focus {\\n outline: none;\\n }\\n &::-ms-clear {\\n display: none;\\n }\\n}\\n\\n.#{$namespace}-icon-calendar,\\n.#{$namespace}-icon-clear {\\n position: absolute;\\n top: 50%;\\n right: 8px;\\n transform: translateY(-50%);\\n font-size: 16px;\\n line-height: 1;\\n color: rgba(0, 0, 0, 0.5);\\n vertical-align: middle;\\n}\\n\\n.#{$namespace}-icon-clear {\\n cursor: pointer;\\n &:hover {\\n color: rgba(0, 0, 0, 0.8);\\n }\\n}\\n\\n.#{$namespace}-datepicker-main {\\n font: 14px/1.5 'Helvetica Neue', Helvetica, Arial, 'Microsoft Yahei', sans-serif;\\n color: $default-color;\\n background-color: #fff;\\n border: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-datepicker-popup {\\n position: absolute;\\n margin-top: 1px;\\n margin-bottom: 1px;\\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\\n z-index: $popup-z-index;\\n}\\n\\n.#{$namespace}-datepicker-sidebar {\\n float: left;\\n box-sizing: border-box;\\n width: $sidebar-margin-left;\\n padding: 6px;\\n overflow: auto;\\n}\\n\\n.#{$namespace}-datepicker-sidebar + .#{$namespace}-datepicker-content {\\n margin-left: $sidebar-margin-left;\\n border-left: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-datepicker-body {\\n position: relative;\\n user-select: none;\\n}\\n\\n.#{$namespace}-btn-shortcut {\\n display: block;\\n padding: 0 6px;\\n line-height: 24px;\\n}\\n\\n.#{$namespace}-range-wrapper {\\n display: flex;\\n @media (max-width: 750px) {\\n flex-direction: column;\\n }\\n}\\n\\n.#{$namespace}-datepicker-header {\\n padding: 6px 8px;\\n border-bottom: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-datepicker-footer {\\n padding: 6px 8px;\\n text-align: right;\\n border-top: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-calendar {\\n box-sizing: border-box;\\n width: 248px;\\n padding: 6px 12px;\\n & + & {\\n border-left: 1px solid $border-color;\\n }\\n}\\n\\n.#{$namespace}-calendar-header {\\n box-sizing: border-box;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n overflow: hidden;\\n}\\n\\n.#{$namespace}-btn-icon-left,\\n.#{$namespace}-btn-icon-double-left {\\n float: left;\\n}\\n.#{$namespace}-btn-icon-right,\\n.#{$namespace}-btn-icon-double-right {\\n float: right;\\n}\\n\\n.#{$namespace}-calendar-header-label {\\n font-size: 14px;\\n}\\n\\n.#{$namespace}-calendar-decade-separator {\\n margin: 0 2px;\\n &:after {\\n content: '~';\\n }\\n}\\n\\n.#{$namespace}-calendar-content {\\n position: relative;\\n height: 224px;\\n box-sizing: border-box;\\n .cell {\\n cursor: pointer;\\n &:hover {\\n color: $calendar-hover-color;\\n background-color: $calendar-hover-background-color;\\n }\\n &.active {\\n color: $calendar-active-color;\\n background-color: $calendar-active-background-color;\\n }\\n &.in-range,\\n &.hover-in-range {\\n color: $calendar-in-range-color;\\n background-color: $calendar-in-range-background-color;\\n }\\n &.disabled {\\n cursor: not-allowed;\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n }\\n }\\n}\\n\\n.#{$namespace}-calendar-week-mode {\\n .#{$namespace}-date-row {\\n cursor: pointer;\\n &:hover {\\n background-color: $calendar-hover-background-color;\\n }\\n &.#{$namespace}-active-week {\\n background-color: $calendar-in-range-background-color;\\n }\\n .cell {\\n &:hover {\\n color: inherit;\\n background-color: transparent;\\n }\\n &.active {\\n color: inherit;\\n background-color: transparent;\\n }\\n }\\n }\\n}\\n\\n.#{$namespace}-week-number {\\n opacity: 0.5;\\n}\\n\\n.#{$namespace}-table {\\n table-layout: fixed;\\n border-collapse: separate;\\n border-spacing: 0;\\n width: 100%;\\n height: 100%;\\n box-sizing: border-box;\\n text-align: center;\\n\\n th {\\n padding: 0;\\n font-weight: 500;\\n vertical-align: middle;\\n }\\n td {\\n padding: 0;\\n vertical-align: middle;\\n }\\n}\\n\\n.#{$namespace}-table-date {\\n td,\\n th {\\n height: 32px;\\n font-size: 12px;\\n }\\n\\n .today {\\n color: $today-color;\\n }\\n .cell.not-current-month {\\n color: #ccc;\\n background: none; // cover the in-range style\\n }\\n}\\n\\n.#{$namespace}-time {\\n flex: 1;\\n width: 224px;\\n background: #fff;\\n & + & {\\n border-left: 1px solid $border-color;\\n }\\n}\\n.#{$namespace}-calendar-time {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.#{$namespace}-time-header {\\n @extend .#{$namespace}-calendar-header;\\n border-bottom: 1px solid $border-color;\\n}\\n\\n.#{$namespace}-time-content {\\n height: 224px;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\\n.#{$namespace}-time-columns {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.#{$namespace}-time-column {\\n flex: 1;\\n position: relative;\\n border-left: 1px solid $border-color;\\n text-align: center;\\n\\n &:first-child {\\n border-left: 0;\\n }\\n .#{$namespace}-time-list {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n &::after {\\n content: '';\\n display: block;\\n height: 32 * 6px;\\n }\\n }\\n .#{$namespace}-time-item {\\n cursor: pointer;\\n font-size: 12px;\\n height: 32px;\\n line-height: 32px;\\n &:hover {\\n color: $time-hover-color;\\n background-color: $time-hover-background-color;\\n }\\n &.active {\\n color: $time-active-color;\\n background-color: $time-active-background-color;\\n font-weight: 700;\\n }\\n &.disabled {\\n cursor: not-allowed;\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n }\\n }\\n}\\n\\n.#{$namespace}-time-option {\\n cursor: pointer;\\n padding: 8px 10px;\\n font-size: 14px;\\n line-height: 20px;\\n &:hover {\\n color: $time-hover-color;\\n background-color: $time-hover-background-color;\\n }\\n &.active {\\n color: $time-active-color;\\n background-color: $time-active-background-color;\\n font-weight: 700;\\n }\\n &.disabled {\\n cursor: not-allowed;\\n color: $disabled-color;\\n background-color: $disabled-background-color;\\n }\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n$cell_height: 32px;\\n\\n@import '~vue2-datepicker/scss/index';\\n\\n.mx-datepicker[data-v-#{$scope_version}] {\\n\\tuser-select: none;\\n\\tcolor: var(--color-main-text);\\n\\n\\tsvg {\\n\\t\\tfill: var(--color-main-text);\\n\\t}\\n\\n\\t/* INPUT CONTAINER */\\n\\t.mx-input-wrapper {\\n\\t\\t// input\\n\\t\\t.mx-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder: 1px solid var(--color-border);\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbackground-clip: content-box;\\n\\t\\t}\\n\\n\\t\\t&:disabled,\\n\\t\\t&.disabled {\\n\\t\\t\\tcursor: not-allowed;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t}\\n\\n\\t\\t.mx-icon-calendar,\\n\\t\\t.mx-icon-clear {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\t}\\n}\\n\\n// Datepicker popup wrapper\\n.mx-datepicker-main {\\n\\tcolor: var(--color-main-text);\\n\\tborder: 1px solid var(--color-border);\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-family: var(--font-face) !important;\\n\\tline-height: 1.5;\\n\\n\\tsvg {\\n\\t\\tfill: var(--color-main-text);\\n\\t}\\n\\n\\t&.mx-datepicker-popup {\\n\\t\\tz-index: 2000;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t.mx-datepicker-sidebar + .mx-datepicker-content {\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.show-week-number .mx-calendar {\\n\\t\\twidth: $cell_height * 8 + 2 * 5px + 30px; // week number + 7 days + padding + 30px padding to fit the buttons\\n\\t}\\n\\n\\t.mx-datepicker-header {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t.mx-datepicker-footer {\\n\\t\\tborder-top: 1px solid var(--color-border);\\n\\t}\\n\\n\\t.mx-datepicker-btn-confirm {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-text) !important;\\n\\t\\topacity: 1 !important;\\n\\t}\\n\\n\\t.mx-datepicker-btn-confirm:hover {\\n\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t\\tborder-color: var(--color-primary-element-light) !important;\\n\\t}\\n\\n\\t// default popup styles\\n\\t.mx-calendar {\\n\\t\\twidth: $cell_height * 7 + 2 * 5px + 30px; // 7 days + padding + 30px padding to fit the buttons\\n\\t\\tpadding: 5px;\\n\\t\\t&.mx-calendar-week-mode {\\n\\t\\t\\twidth: $cell_height * 8 + 2 * 5px + 30px; // week number + 7 days + padding + 30px padding to fit the buttons\\n\\t\\t}\\n\\t}\\n\\n\\t.mx-time + .mx-time,\\n\\t.mx-calendar + .mx-calendar {\\n\\t\\tborder-left: 1px solid var(--color-border);\\n\\t}\\n\\n\\t.mx-range-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\n\\t\\t// first active cell, range style on day picker panel only\\n\\t\\t.mx-calendar-content .mx-table-date .cell {\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\tborder-radius: var(--border-radius) 0 0 var(--border-radius);\\n\\t\\t\\t}\\n\\t\\t\\t// second selected cell\\n\\t\\t\\t&.in-range + .cell.active {\\n\\t\\t\\t\\tborder-radius: 0 var(--border-radius) var(--border-radius) 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// Various panels\\n\\t.mx-table {\\n\\t\\ttext-align: center;\\n\\n\\t\\tthead > tr > th {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\n\\t\\t// Override table rule from server\\n\\t\\ttr:focus,\\n\\t\\ttr:hover,\\n\\t\\ttr:active {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\n\\t\\t// regular cell style\\n\\t\\t.cell {\\n\\t\\t\\ttransition: all 100ms ease-in-out;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: 50px;\\n\\n\\t\\t\\t// force pointer on all content\\n\\t\\t\\t> * {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Selected and mouse event\\n\\t\\t\\t&.today {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.in-range,\\n\\t\\t\\t&.disabled {\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t}\\n\\t\\t\\t&.in-range {\\n\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t}\\n\\t\\t\\t&.not-current-month {\\n\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// hover-/focus after the other rules\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&.actived,\\n\\t\\t\\t&.active,\\n\\t\\t\\t&.in-range {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t&.disabled {\\n\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-week-number {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: 50px;\\n\\t\\t}\\n\\n\\t\\t// cell that are not in a table\\n\\t\\tspan.mx-week-number,\\n\\t\\tli.mx-week-number,\\n\\t\\tspan.cell,\\n\\t\\tli.cell {\\n\\t\\t\\tmin-height: $cell_height;\\n\\t\\t}\\n\\n\\t\\t// Standard grid/flex layout for day/month/year panels\\n\\t\\t&.mx-table-date thead,\\n\\t\\t&.mx-table-date tbody,\\n\\t\\t&.mx-table-year,\\n\\t\\t&.mx-table-month {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\tjustify-content: space-around;\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tflex: 1 1 $cell_height;\\n\\t\\t\\t\\tjustify-content: space-around;\\n\\t\\t\\t\\tmin-height: $cell_height;\\n\\t\\t\\t}\\n\\t\\t\\t// Default cell style\\n\\t\\t\\tth,\\n\\t\\t\\ttd {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t// 3 rows with a little spacing\\n\\t\\t\\t\\tflex: 0 1 32%;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tmin-width: $cell_height;\\n\\t\\t\\t\\t// spacing between rows\\n\\t\\t\\t\\theight: 95%;\\n\\t\\t\\t\\tmin-height: $cell_height;\\n\\t\\t\\t\\ttransition: background 100ms ease-in-out;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.mx-table-year {\\n\\t\\t\\ttr th,\\n\\t\\t\\ttr td {\\n\\t\\t\\t\\t// only two rows in year panel\\n\\t\\t\\t\\tflex-basis: 48%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.mx-table-date {\\n\\t\\t\\ttr th,\\n\\t\\t\\ttr td {\\n\\t\\t\\t\\t// only two rows in year panel\\n\\t\\t\\t\\tflex-basis: $cell_height;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// default buttons: header...\\n\\t.mx-btn {\\n\\t\\tmin-width: $cell_height;\\n\\t\\theight: $cell_height;\\n\\t\\tmargin: 0 2px !important; // center also single element. Definitively use margin so that buttons are not touching\\n\\t\\tpadding: 7px 10px;\\n\\t\\tcursor: pointer;\\n\\t\\ttext-decoration: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\tborder-radius: $cell_height;\\n\\t\\tline-height: $cell_height - 12px; // padding minus 2px for better visual\\n\\t\\t// Mouse feedback\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\t}\\n\\t}\\n\\n\\t// Header, arrows, years, months\\n\\t.mx-calendar-header {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-between;\\n\\t\\twidth: 100%;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin-bottom: 4px;\\n\\n\\t\\tbutton {\\n\\t\\t\\tmin-width: $cell_height;\\n\\t\\t\\tmin-height: $cell_height;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\ttext-decoration: none;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-radius: $cell_height;\\n\\t\\t\\tline-height: $cell_height - 12px; // padding minus 2px for better visual\\n\\n\\t\\t\\t// Mouse feedback\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Header arrows\\n\\t\\t\\t&.mx-btn-icon-double-left,\\n\\t\\t\\t&.mx-btn-icon-left,\\n\\t\\t\\t&.mx-btn-icon-right,\\n\\t\\t\\t&.mx-btn-icon-double-right {\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\twidth: $cell_height;\\n\\t\\t\\t\\tpadding: 0; // leave the centering to flex\\n\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\tbackground-size: 16px;\\n\\t\\t\\t\\tbackground-position: center;\\n\\n\\t\\t\\t\\t// Hide original icons\\n\\t\\t\\t\\t> i {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.mx-btn-text {\\n\\t\\t\\t\\tline-height: initial;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-calendar-header-label {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-double-left {\\n\\t\\t\\tbackground-image: url('./chevron-double-left.svg');\\n\\t\\t\\tbody.theme--dark & {\\n\\t\\t\\t\\tbackground-image: url('./chevron-double-left-light.svg');\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-left {\\n\\t\\t\\tbackground-image: url('./chevron-left.svg');\\n\\t\\t\\tbody.theme--dark & {\\n\\t\\t\\t\\tbackground-image: url('./chevron-left-light.svg');\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-right {\\n\\t\\t\\tbackground-image: url('./chevron-right.svg');\\n\\t\\t\\tbody.theme--dark & {\\n\\t\\t\\t\\tbackground-image: url('./chevron-right-light.svg');\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.mx-btn-icon-double-right {\\n\\t\\t\\tbackground-image: url('./chevron-double-right.svg');\\n\\t\\t\\tbody.theme--dark & {\\n\\t\\t\\t\\tbackground-image: url('./chevron-double-right-light.svg');\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tbutton.mx-btn-icon-right {\\n\\t\\t\\torder: 2;\\n\\t\\t}\\n\\n\\t\\tbutton.mx-btn-icon-double-right {\\n\\t\\t\\torder: 3;\\n\\t\\t}\\n\\t}\\n\\t// Week panel\\n\\t.mx-calendar-week-mode {\\n\\t\\t// move focus on row and not on cell\\n\\t\\t.mx-date-row {\\n\\t\\t\\t.mx-week-number {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&.mx-active-week {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tborder-radius: 50px;\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\ttd {\\n\\t\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\t\\t&, &:hover, &:focus {\\n\\t\\t\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.mx-active-week {\\n\\t\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\t// Remove cell feedback on selected rows\\n\\t\\t\\t\\ttd {\\n\\t\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// Time panel\\n\\t.mx-time {\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\t.mx-time-header {\\n\\t\\t\\t// only one button, center it\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\t.mx-time-column {\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\t.mx-time-option,\\n\\t\\t.mx-time-item {\\n\\t\\t\\t&.active,\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.disabled {\\n\\t\\t\\t\\tcursor: not-allowed;\\n\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=T},636:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,'.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.multiselect[data-v-a0481fe]{margin:0;padding:0 !important;display:inline-block;min-width:260px;position:relative}.multiselect[data-v-a0481fe]:not(.multiselect--active) .multiselect__single{width:100%;z-index:2 !important}.multiselect[data-v-a0481fe].multiselect--active.multiselect--above input.multiselect__input{border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-a0481fe].multiselect--disabled,.multiselect[data-v-a0481fe].multiselect--disabled .multiselect__single{background-color:var(--color-background-dark) !important}.multiselect[data-v-a0481fe] .loading-icon{position:absolute;right:1px;top:1px;width:48px;height:35px;background:var(--color-main-background);z-index:3}.multiselect[data-v-a0481fe] .multiselect__tags{display:flex;flex-wrap:nowrap;overflow:hidden;border:2px solid var(--color-border-dark);cursor:pointer;position:relative;border-radius:var(--border-radius-large);min-height:44px;height:44px;padding:8px 12px !important;background-color:var(--color-main-background);box-sizing:border-box}.multiselect[data-v-a0481fe] .multiselect__tags:focus,.multiselect[data-v-a0481fe] .multiselect__tags:hover{border-color:var(--color-primary)}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap{align-items:center;display:inline-flex;overflow:hidden;max-width:100%;position:relative;gap:5px;flex:1 1;flex-wrap:nowrap}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap:empty~input.multiselect__input{opacity:1 !important;display:block !important}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap:empty~input.multiselect__input+span:not(.multiselect__single){display:none}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap .multiselect__tag{line-height:20px;padding:2px 5px;background-image:none;color:var(--color-main-text);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center;border-radius:var(--border-radius);min-width:0;max-width:fit-content;max-width:-moz-fit-content;margin:0}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:only-child{flex:0 1 auto}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__tags-wrap .multiselect__tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__single,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__placeholder{z-index:1;background-color:var(--color-main-background);line-height:18px;color:var(--color-text-lighter);display:flex;align-items:center;font-size:var(--default-font-size)}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__single,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__single *,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__placeholder,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__placeholder *{cursor:pointer}.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__strong,.multiselect[data-v-a0481fe] .multiselect__tags .multiselect__limit{line-height:20px;color:var(--color-text-lighter);display:inline-flex;align-items:center;opacity:.7;margin-right:5px;z-index:5}.multiselect[data-v-a0481fe] .multiselect__tags input.multiselect__input{width:100% !important;height:auto !important;margin:0;opacity:0;border:none;cursor:pointer;display:none;height:40px;min-height:26px;padding:0 !important;font-size:var(--default-font-size)}.multiselect[data-v-a0481fe].multiselect--active input.multiselect__input{opacity:1 !important;cursor:text !important;border-radius:var(--border-radius) var(--border-radius) 0 0;display:block !important}.multiselect[data-v-a0481fe].multiselect--active .multiselect__limit{display:none}.multiselect[data-v-a0481fe] .multiselect__content-wrapper{position:absolute;width:100%;margin-top:-1px;border:1px solid var(--color-border-dark);background:var(--color-main-background);z-index:50;max-height:250px;overflow-y:auto;border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-a0481fe] .multiselect__content-wrapper .multiselect__content{width:100%;padding:0}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li{position:relative;display:flex;align-items:center;background-color:rgba(0,0,0,0)}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li,.multiselect[data-v-a0481fe] .multiselect__content-wrapper li span{cursor:pointer}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span{padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;height:auto;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0);color:var(--color-text-lighter);width:100%}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span::before{content:\" \";background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span.multiselect__option--disabled{background-color:var(--color-background-dark);opacity:.5}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span.multiselect__option--highlight{color:var(--color-main-text);background-color:var(--color-background-dark)}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{opacity:.3}.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span.multiselect__option--selected::before,.multiselect[data-v-a0481fe] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{visibility:visible}.multiselect[data-v-a0481fe].multiselect--above .multiselect__content-wrapper{bottom:100%;margin-bottom:-1px}.multiselect[data-v-a0481fe].multiselect--multiple .multiselect__tags{flex-wrap:wrap}.multiselect[data-v-a0481fe].multiselect--multiple .multiselect__content-wrapper li>span::before{background-image:var(--icon-checkmark-000)}.multiselect[data-v-a0481fe].multiselect--multiple .multiselect__content-wrapper li>span[data-select=create]::before{background-image:var(--icon-add-000);visibility:visible}.multiselect[data-v-a0481fe].multiselect--single .multiselect__content-wrapper li>span::before{display:none}.multiselect[data-v-a0481fe]:hover .multiselect__placeholder,.multiselect[data-v-a0481fe] input.multiselect__input .multiselect__placeholder{color:var(--color-main-text)}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcMultiselect/index.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,6BACC,QAAA,CACA,oBAAA,CACA,oBAAA,CAEA,eAAA,CACA,iBAAA,CAGA,4EACC,UAAA,CACA,oBAAA,CAKA,6FACC,2DAAA,CAKF,2HAEC,wDAAA,CAID,2CACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CACA,uCAAA,CACA,SAAA,CAID,gDAGC,YAAA,CACA,gBAAA,CACA,eAAA,CACA,yCAAA,CACA,cAAA,CACA,iBAAA,CACA,wCAAA,CACA,eAAA,CACA,WAAA,CACA,2BAAA,CACA,6CAAA,CACA,qBAAA,CAEA,4GACC,iCAAA,CAID,wEACC,kBAAA,CACA,mBAAA,CACA,eAAA,CACA,cAAA,CACA,iBAAA,CACA,OAzBe,CA0Bf,QAAA,CACA,gBAAA,CAGA,uGACC,oBAAA,CACA,wBAAA,CAIA,sIACC,YAAA,CAIF,0FACC,gBAAA,CACA,eAAA,CACA,qBAAA,CACA,4BAAA,CACA,yCAAA,CACA,mBAAA,CACA,kBAAA,CACA,kCAAA,CAGA,WAAA,CACA,qBAAA,CACA,0BAAA,CACA,QAAA,CAGA,qGACC,aAAA,CAID,+FACC,kBAAA,CACA,sBAAA,CACA,eAAA,CAOH,+IAEC,SAAA,CACA,6CAAA,CACA,gBAAA,CACA,+BAAA,CAEA,YAAA,CACA,kBAAA,CACA,kCAAA,CAGA,kSACC,cAAA,CAIF,yIAEC,gBAAA,CACA,+BAAA,CACA,mBAAA,CACA,kBAAA,CACA,UClGc,CDmGd,gBAjGe,CAmGf,SAAA,CAGD,yEACC,qBAAA,CACA,sBAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CAGA,cAAA,CAEA,YAAA,CACA,WAAA,CACA,eAAA,CACA,oBAAA,CACA,kCAAA,CAQD,0EACC,oBAAA,CACA,sBAAA,CAEA,2DAAA,CACA,wBAAA,CAID,qEACC,YAAA,CAKF,2DACC,iBAAA,CACA,UAAA,CACA,eAAA,CACA,yCAAA,CACA,uCAAA,CACA,UAAA,CACA,gBAAA,CACA,eAAA,CACA,2DAAA,CACA,iFACC,UAAA,CACA,SAAA,CAED,8DACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,8BAAA,CACA,iIAEC,cAAA,CAED,mEACC,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CACA,cAAA,CACA,0BAAA,CACA,wBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CACA,kBAAA,CACA,8BAAA,CACA,+BAAA,CACA,UAAA,CAEA,2EACC,WAAA,CACA,2BAAA,CACA,0BAAA,CACA,cAAA,CACA,eAAA,CACA,aAAA,CACA,UC/Lc,CDgMd,gBAAA,CACA,iBAAA,CAED,iGACC,6CAAA,CACA,UCrMc,CDuMf,kGACC,4BAAA,CACA,6CAAA,CAED,qHACC,UAAA,CAIA,8NACC,kBAAA,CAOL,8EACC,WAAA,CACA,kBAAA,CAMA,sEACC,cAAA,CAIA,iGACC,0CAAA,CAMA,qHACC,oCAAA,CACA,kBAAA,CAOJ,+FACC,YAAA,CAMA,6IACC,4BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n// scoping is not working inside the Multiselect.vue component\\n// as the nested properties are not inside it\\n// Therefore we need to use an external scoping\\n.multiselect[data-v-#{$scope_version}] {\\n\\tmargin: 0;\\n\\tpadding: 0 !important;\\n\\tdisplay: inline-block;\\n\\t/* override this rule with your width styling if you need */\\n\\tmin-width: 260px;\\n\\tposition: relative;\\n\\n\\t/* Force single multiselect value to be shown when not active */\\n\\t&:not(.multiselect--active) .multiselect__single {\\n\\t\\twidth: 100%;\\n\\t\\tz-index: 2 !important;\\n\\t}\\n\\n\\t// Remove radius on top opening\\n\\t&.multiselect--active.multiselect--above {\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\t}\\n\\t}\\n\\n\\t// disabled state background\\n\\t&.multiselect--disabled,\\n\\t&.multiselect--disabled .multiselect__single {\\n\\t\\tbackground-color: var(--color-background-dark) !important;\\n\\t}\\n\\n\\t// loading state\\n\\t.loading-icon {\\n\\t\\tposition: absolute;\\n\\t\\tright: 1px;\\n\\t\\ttop: 1px;\\n\\t\\twidth: 48px;\\n\\t\\theight: 35px;\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tz-index: 3;\\n\\t}\\n\\n\\t// multiple selected options display\\n\\t.multiselect__tags {\\n\\t\\t/* space between tags and limit tag */\\n\\t\\t$space-between: 5px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\tborder: 2px solid var(--color-border-dark);\\n\\t\\tcursor: pointer;\\n\\t\\tposition: relative;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tmin-height: 44px;\\n\\t\\theight: 44px;\\n\\t\\tpadding: 8px 12px !important;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbox-sizing: border-box;\\n\\n\\t\\t&:focus, &:hover {\\n\\t\\t\\tborder-color: var(--color-primary);\\n\\t\\t}\\n\\n\\t\\t/* tag wrapper */\\n\\t\\t.multiselect__tags-wrap {\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tgap: $space-between;\\n\\t\\t\\tflex: 1 1;\\n\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\t/* no tags or simple select? Show input directly\\n\\t\\t\\tinput is used to display single value */\\n\\t\\t\\t&:empty ~ input.multiselect__input {\\n\\t\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t\\t/* hide default empty text like .multiselect__placeholder,\\n\\t\\t\\t\\tand show input instead. It looks better without a transition between\\n\\t\\t\\t\\ta span and the input that have different styling */\\n\\t\\t\\t\\t+ span:not(.multiselect__single) {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t/* selected tag */\\n\\t\\t\\t.multiselect__tag {\\n\\t\\t\\t\\tline-height: 20px;\\n\\t\\t\\t\\tpadding: 2px 5px;\\n\\t\\t\\t\\tbackground-image: none;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t\\t/* require to override the default width\\n\\t\\t\\t\\tand force the tag to shring properly */\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmax-width: fit-content;\\n\\t\\t\\t\\tmax-width: -moz-fit-content;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t/* css hack, detect if more than two tags\\n\\t\\t\\t\\tif so, flex-basis is set to half */\\n\\t\\t\\t\\t&:only-child {\\n\\t\\t\\t\\t\\tflex: 0 1 auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t/* ellipsis the groups to be sure\\n\\t\\t\\t\\twe display at least two of them */\\n\\t\\t\\t\\t> span {\\n\\t\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Single select default value\\n\\t\\tor default placeholder if search disabled*/\\n\\t\\t.multiselect__single,\\n\\t\\t.multiselect__placeholder {\\n\\t\\t\\tz-index: 1; /* above input */\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tline-height: 18px; // 32px - 2*6px (padding) - 2*1px (border)\\n\\t\\t\\tcolor: var(--color-text-lighter); // like the input\\n\\t\\t\\t// Align content and make the flow smoother\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tfont-size: var(--default-font-size);\\n\\n\\t\\t\\t// Anything inside will trigger the select opening\\n\\t\\t\\t&, * {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* displayed text if tag limit reached */\\n\\t\\t.multiselect__strong,\\n\\t\\t.multiselect__limit {\\n\\t\\t\\tline-height: 20px;\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tmargin-right: $space-between;\\n\\t\\t\\t/* above the input */\\n\\t\\t\\tz-index: 5;\\n\\t\\t}\\n\\t\\t/* default multiselect input for search and placeholder */\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\twidth: 100% !important;\\n\\t\\t\\theight: auto !important;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\tborder: none;\\n\\t\\t\\t/* override hide to force show the placeholder */\\n\\t\\t\\t/* only when not active */\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t/* override inline styling of the lib */\\n\\t\\t\\tdisplay: none;\\n\\t\\t\\theight: 40px;\\n\\t\\t\\tmin-height: 26px;\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t}\\n\\t}\\n\\n\\t// active state, force the input to be shown, we don't want\\n\\t// the placeholder or the currently selected options\\n\\t&.multiselect--active {\\n\\t\\t/* Opened: force display the input */\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t\\tcursor: text !important;\\n\\t\\t\\t// remove border radius on bottom opening\\n\\t\\t\\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\\n\\t\\t\\tdisplay: block !important;\\n\\t\\t}\\n\\n\\t\\t/* multiselect__limit hidden if active */\\n\\t\\t.multiselect__limit {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/* results wrapper */\\n\\t.multiselect__content-wrapper {\\n\\t\\tposition: absolute;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-top: -1px;\\n\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tz-index: 50;\\n\\t\\tmax-height: 250px;\\n\\t\\toverflow-y: auto;\\n\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\t.multiselect__content {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t\\tli {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&,\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t\\t> span {\\n\\t\\t\\t\\tpadding: 8px;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\theight: auto;\\n\\t\\t\\t\\tmin-height: 1em;\\n\\t\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\t\\tuser-select: none;\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t/* selected checkmark icon */\\n\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\tcontent: ' ';\\n\\t\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\t\\tmin-width: 16px;\\n\\t\\t\\t\\t\\tmin-height: 16px;\\n\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\t\\t\\tvisibility: hidden;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--disabled {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--highlight {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:not(.multiselect__option--disabled):hover::before {\\n\\t\\t\\t\\t\\topacity: .3;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--selected,\\n\\t\\t\\t\\t&:not(.multiselect__option--disabled):hover {\\n\\t\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\t\\tvisibility: visible;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t/* ABOVE display */\\n\\t&.multiselect--above .multiselect__content-wrapper {\\n\\t\\tbottom: 100%;\\n\\t\\tmargin-bottom: -1px;\\n\\t}\\n\\n\\t/* Icon before option select */\\n\\t&.multiselect--multiple {\\n\\t\\t// push the input after the tag list\\n\\t\\t.multiselect__tags {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t.multiselect__content-wrapper li > span {\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tbackground-image: var(--icon-checkmark-000);\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* add the prop tag-placeholder=\\\"create\\\" to add the +\\n\\t\\t\\ticon on top of an unknown-and-ready-to-be-created entry */\\n\\t\\t\\t&[data-select='create'] {\\n\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\tbackground-image: var(--icon-add-000);\\n\\t\\t\\t\\t\\tvisibility: visible;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* No need for an icon here */\\n\\t&.multiselect--single .multiselect__content-wrapper li > span::before {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t/* Mouse feedback */\\n\\t&:hover,\\n\\tinput.multiselect__input {\\n\\t\\t.multiselect__placeholder {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},8384:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.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 .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .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:rgba(0,0,0,0);border-width:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/directives/Tooltip/index.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCQA,0CACC,iBAAA,CACA,cAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eAAA,CAEA,eAAA,CACA,sDAAA,CAGA,iGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAID,oGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAID,mGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAID,kGACC,SAAA,CACA,oBAAA,CACA,8CAAA,CAID,4DACC,iBAAA,CACA,uCAAA,CACA,SAAA,CAED,6DACC,kBAAA,CACA,uBAAA,CACA,SAAA,CAKF,0CACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,4BAAA,CACA,kCAAA,CACA,6CAAA,CAID,oDACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBAhFY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ \\n* @copyright Copyright (c) 2016, Robin Appelman \\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt \\n* @copyright Copyright (c) 2016, Erik Pellikka \\n* @copyright Copyright (c) 2015, Vincent Petry \\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-tooltip {\\n\\t&.v-popper__popper {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tright: auto;\\n\\t\\tleft: auto;\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\ttext-align: left;\\n\\t\\ttext-align: start;\\n\\t\\topacity: 0;\\n\\t\\tline-height: 1.6;\\n\\n\\t\\tline-break: auto;\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t// TOP\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// BOTTOM\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// RIGHT\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// LEFT\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// HIDDEN / SHOWN\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity .15s;\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t// CONTENT\\n\\t.v-popper__inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.v-popper__arrow-container {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: transparent;\\n\\t\\tborder-width: $arrow-width;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},5698:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-45a871d0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-45a871d0]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-45a871d0]{pointer-events:none;opacity:.5}.action--disabled[data-v-45a871d0]:hover,.action--disabled[data-v-45a871d0]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-45a871d0]{opacity:1 !important}.action-button[data-v-45a871d0]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-45a871d0]:hover,.action-button[data-v-45a871d0]:focus{opacity:1}.action-button>span[data-v-45a871d0]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-45a871d0]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-45a871d0] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-45a871d0] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-45a871d0]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-45a871d0]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-45a871d0]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CAOF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},7264:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-fd7dc03c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-fd7dc03c]{color:var(--color-text-maxcontrast);line-height:44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none;margin-left:12px;padding-right:14px;height:44px;display:flex;align-items:center}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActionCaption/NcActionCaption.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yCACC,mCAAA,CACA,gBCqBgB,CDpBhB,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,gBAAA,CACA,mBAAA,CACA,gBAAA,CACA,kBAAA,CACA,WCagB,CDZhB,YAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-caption {\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tline-height: $clickable-area;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tbox-shadow: none !important;\\n\\tuser-select: none;\\n\\tpointer-events: none;\\n\\tmargin-left: 12px;\\n\\tpadding-right: 14px;\\n\\theight: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},7126:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-2669efff]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-2669efff]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-2669efff]{pointer-events:none;opacity:.5}.action--disabled[data-v-2669efff]:hover,.action--disabled[data-v-2669efff]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-2669efff]{opacity:1 !important}.action-checkbox[data-v-2669efff]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-checkbox__checkbox[data-v-2669efff]{position:absolute;top:auto;left:-10000px;overflow:hidden;width:1px;height:1px}.action-checkbox__checkbox:focus+.action-checkbox__label[data-v-2669efff]{opacity:1}.action-checkbox__label[data-v-2669efff]{display:flex;align-items:center;width:100%;padding:0 !important;padding-right:14px !important;opacity:.7}.action-checkbox__label[data-v-2669efff]::before{margin:0 14px 0 !important}.action-checkbox--disabled[data-v-2669efff],.action-checkbox--disabled .action-checkbox__label[data-v-2669efff]{cursor:pointer}.action-checkbox:not(.action-checkbox--disabled):hover .action-checkbox__label[data-v-2669efff],.action-checkbox:not(.action-checkbox--disabled):focus .action-checkbox__label[data-v-2669efff]{opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/components/NcActionCheckbox/NcActionCheckbox.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CEpCH,kCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBAAA,CAGA,4CACC,iBAAA,CACA,QAAA,CACA,aAAA,CAEA,eAAA,CAEA,SAAA,CACA,UAAA,CACA,0EACC,SDMY,CCFd,yCACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,oBAAA,CACA,6BAAA,CAEA,UDPe,CCUf,iDACC,0BAAA,CAKD,gHAEC,cAAA,CAMD,gMACC,SDxBY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n.action-checkbox {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\tline-height: $clickable-area;\\n\\n\\t/* checkbox/radio fixes */\\n\\t&__checkbox {\\n\\t\\tposition: absolute;\\n\\t\\ttop: auto;\\n\\t\\tleft: -10000px;\\n\\n\\t\\toverflow: hidden;\\n\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t\\t&:focus + .action-checkbox__label {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center; // align checkbox to text\\n\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 !important;\\n\\t\\tpadding-right: $icon-margin !important;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\t// checkbox-width is 12px, border is 2\\n\\t\\t// (44 - 14 - 2) / 2 = 14\\n\\t\\t&::before {\\n\\t\\t\\tmargin: 0 14px 0 !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\t&,\\n\\t\\t.action-checkbox__label {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t&:not(.action-checkbox--disabled):hover,\\n\\t&:not(.action-checkbox--disabled):focus {\\n\\t\\t.action-checkbox__label {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},8768:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-07819ce0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-07819ce0]:not(.button-vue),input[data-v-07819ce0]:not([type=range]),textarea[data-v-07819ce0]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-07819ce0]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-07819ce0]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-07819ce0],input[data-v-07819ce0]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-07819ce0]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-07819ce0],textarea[data-v-07819ce0]:not(:disabled):not(.primary):hover,textarea[data-v-07819ce0]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-07819ce0]{border-color:var(--color-primary-element);outline:none}button[data-v-07819ce0]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-07819ce0]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-07819ce0]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-07819ce0]:not(.button-vue):disabled,input[data-v-07819ce0]:not([type=range]):disabled,textarea[data-v-07819ce0]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-07819ce0]:not(.button-vue):required,input[data-v-07819ce0]:not([type=range]):required,textarea[data-v-07819ce0]:required{box-shadow:none}button[data-v-07819ce0]:not(.button-vue):invalid,input[data-v-07819ce0]:not([type=range]):invalid,textarea[data-v-07819ce0]:invalid{border-color:var(--color-error);box-shadow:none !important}button:not(.button-vue).primary[data-v-07819ce0],input:not([type=range]).primary[data-v-07819ce0],textarea.primary[data-v-07819ce0]{cursor:pointer;color:var(--color-primary-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):hover,button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):focus,button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):active,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):hover,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):focus,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):active,textarea.primary[data-v-07819ce0]:not(:disabled):hover,textarea.primary[data-v-07819ce0]:not(:disabled):focus,textarea.primary[data-v-07819ce0]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-07819ce0]:not(:disabled):active,input:not([type=range]).primary[data-v-07819ce0]:not(:disabled):active,textarea.primary[data-v-07819ce0]:not(:disabled):active{color:var(--color-primary-text-dark)}button:not(.button-vue).primary[data-v-07819ce0]:disabled,input:not([type=range]).primary[data-v-07819ce0]:disabled,textarea.primary[data-v-07819ce0]:disabled{cursor:default;color:var(--color-primary-text-dark);background-color:var(--color-primary-element)}li.active[data-v-07819ce0]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-07819ce0]{pointer-events:none;opacity:.5}.action--disabled[data-v-07819ce0]:hover,.action--disabled[data-v-07819ce0]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-07819ce0]{opacity:1 !important}.action-input[data-v-07819ce0]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal}.action-input[data-v-07819ce0] .material-design-icon{width:44px;height:44px;opacity:1}.action-input[data-v-07819ce0] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-input[data-v-07819ce0]:not(.action-input--picker){opacity:.7}.action-input[data-v-07819ce0]:not(.action-input--picker):hover,.action-input[data-v-07819ce0]:not(.action-input--picker):focus{opacity:1}.action-input--picker .action-input__icon[data-v-07819ce0]{opacity:.7}.action-input--picker:hover .action-input__icon[data-v-07819ce0],.action-input--picker:focus .action-input__icon[data-v-07819ce0]{opacity:1}.action-input>span[data-v-07819ce0]{cursor:pointer;white-space:nowrap}.action-input__icon[data-v-07819ce0]{min-width:0;min-height:0;padding:22px 0 22px 44px;background-position:14px center;background-size:16px}.action-input__form[data-v-07819ce0]{display:flex;align-items:center;flex:1 1 auto;margin:4px 0;padding-right:14px}.action-input__submit[data-v-07819ce0]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.action-input__label[data-v-07819ce0]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;box-sizing:border-box;margin:0 0 0 -8px;padding:7px 6px;opacity:1;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-left-color:rgba(0,0,0,0);border-radius:0 var(--border-radius) var(--border-radius) 0;background-color:var(--color-main-background);background-clip:padding-box}.action-input__label[data-v-07819ce0],.action-input__label *[data-v-07819ce0]{cursor:pointer}.action-input__input[data-v-07819ce0]{flex:1 1 auto;min-width:132px;min-height:36px;max-height:36px;margin:0}.action-input__input[data-v-07819ce0]:disabled{cursor:default}.action-input__input:not(:active):not(:hover):not(:focus):invalid+.action-input__label[data-v-07819ce0]{border-color:var(--color-error);border-left-color:rgba(0,0,0,0)}.action-input__input:not(:active):not(:hover):not(:focus):not(:disabled)+.action-input__label[data-v-07819ce0]:active,.action-input__input:not(:active):not(:hover):not(:focus):not(:disabled)+.action-input__label[data-v-07819ce0]:hover,.action-input__input:not(:active):not(:hover):not(:focus):not(:disabled)+.action-input__label[data-v-07819ce0]:focus{border-color:var(--color-primary-element);border-radius:var(--border-radius)}.action-input__input:active:not(:disabled)+.action-input__label[data-v-07819ce0],.action-input__input:hover:not(:disabled)+.action-input__label[data-v-07819ce0],.action-input__input:focus:not(:disabled)+.action-input__label[data-v-07819ce0]{z-index:2;border-color:var(--color-primary-element);border-left-color:rgba(0,0,0,0)}.action-input__picker[data-v-07819ce0] .mx-input{margin:0}.action-input__multi[data-v-07819ce0]{width:100%}li:last-child>.action-input[data-v-07819ce0]{padding-bottom:10px}li:first-child>.action-input[data-v-07819ce0]{padding-top:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/inputs.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/assets/action.scss\",\"webpack://./src/components/NcActionInput/NcActionInput.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCqBD,4GAGC,QAAA,CACA,eAAA,CAEA,WAAA,CAEA,+BAAA,CACA,yCAAA,CACA,kCAAA,CACA,YAAA,CACA,6CAAA,CAEA,cAAA,CAGC,koBAIC,yCAAA,CACA,YAAA,CAGD,wNACC,6BAAA,CACA,YAAA,CACA,6CAAA,CAIF,uIACC,cAAA,CACA,UCrBiB,CDsBjB,mCAAA,CACA,6CAAA,CAGD,uIACC,eAAA,CAGD,oIACC,+BAAA,CACA,0BAAA,CAID,oIACC,cAAA,CACA,+BAAA,CACA,yCAAA,CACA,6CAAA,CAGC,4kBAGC,+CAAA,CACA,mDAAA,CAED,sMACC,oCAAA,CAIF,+JACC,cAAA,CACA,oCAAA,CAEA,6CAAA,CE3ED,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UDMiB,CCLjB,kFACC,cAAA,CACA,UDGgB,CCDjB,qCACC,oBAAA,CCjCH,+BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CAEA,qDACC,UFLe,CEMf,WFNe,CEOf,SFYa,CEVb,gFACC,qBAAA,CAKF,0DACC,UFEe,CEDf,gIAEC,SAAA,CAMD,2DACC,UFRc,CEUf,kIAEC,SFXY,CEed,oCACC,cAAA,CACA,kBAAA,CAGD,qCACC,WAAA,CACA,YAAA,CAGA,wBAAA,CAEA,+BAAA,CACA,oBF3CU,CE+CX,qCACC,YAAA,CACA,kBAAA,CACA,aAAA,CAEA,YAAA,CACA,kBFjDY,CEoDb,uCACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CACA,eAAA,CAEA,SF7Da,CE8Db,+BAAA,CACA,yCAAA,CACA,+BAAA,CACA,2DAAA,CAEA,6CAAA,CACA,2BAAA,CAEA,8EACC,cAAA,CAKF,sCACC,aAAA,CAEA,eAAA,CACA,eAAA,CACA,eAAA,CACA,QAAA,CAGA,+CACC,cAAA,CAMC,wGACC,+BAAA,CACA,+BAAA,CAID,gWAGC,yCAAA,CACA,kCAAA,CAOF,iPAEC,SAAA,CAEA,yCAAA,CACA,+BAAA,CAKH,iDACC,QAAA,CAGD,sCACC,UAAA,CAOF,6CACC,mBAAA,CAID,8CACC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n/**\\n * color-text-lighter\\t\\tnormal state\\n * color-text-lighter\\t\\tactive state\\n * color-text-maxcontrast \\tdisabled state\\n */\\n\\n/* Default global values */\\nbutton:not(.button-vue),\\ninput:not([type='range']),\\ntextarea {\\n\\tmargin: 0;\\n\\tpadding: 7px 6px;\\n\\n\\tcursor: text;\\n\\n\\tcolor: var(--color-text-lighter);\\n\\tborder: 1px solid var(--color-border-dark);\\n\\tborder-radius: var(--border-radius);\\n\\toutline: none;\\n\\tbackground-color: var(--color-main-background);\\n\\n\\tfont-size: 13px;\\n\\n\\t&:not(:disabled):not(.primary) {\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&.active {\\n\\t\\t\\t/* active class used for multiselect */\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\toutline: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\toutline: none;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&:required {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&:invalid {\\n\\t\\tborder-color: var(--color-error);\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t/* Primary action button, use sparingly */\\n\\t&.primary {\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\n\\t\\t&:not(:disabled) {\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element-light);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t\\t}\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-text-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tcolor: var(--color-primary-text-dark);\\n\\t\\t\\t// opacity is already defined to .5 if disabled\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/inputs';\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n$input-margin: 4px;\\n\\n.action-input {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\n\\t&:deep(.material-design-icon) {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\topacity: $opacity_full;\\n\\n\\t\\t.material-design-icon__svg {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\t}\\n\\n\\t// do not change the opacity of the datepicker\\n\\t&:not(.action-input--picker) {\\n\\t\\topacity: $opacity_normal;\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n\\n\\t// only change for the icon then\\n\\t&--picker {\\n\\t\\t.action-input__icon {\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t}\\n\\t\\t&:hover .action-input__icon,\\n\\t\\t&:focus .action-input__icon {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n\\n\\t& > span {\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\tmin-height: 0;\\n\\t\\t/* Keep padding to define the width to\\n\\t\\t\\tassure correct position of a possible text */\\n\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\n\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\tbackground-size: $icon-size;\\n\\t}\\n\\n\\t// Forms & text inputs\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1 auto;\\n\\n\\t\\tmargin: $input-margin 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute;\\n\\t\\tleft: -10000px;\\n\\t\\ttop: auto;\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\twidth: #{$clickable-area - $input-margin * 2};\\n\\t\\theight: #{$clickable-area - $input-margin * 2};\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0 0 0 -8px;\\n\\t\\tpadding: 7px 6px;\\n\\n\\t\\topacity: $opacity_full;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\tborder-left-color: transparent;\\n\\t\\tborder-radius: 0 var(--border-radius) var(--border-radius) 0;\\n\\t\\t/* Avoid background under border */\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbackground-clip: padding-box;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Inputs inside popover supports text, submit & reset */\\n\\t&__input {\\n\\t\\tflex: 1 1 auto;\\n\\n\\t\\tmin-width: $clickable-area * 3;\\n\\t\\tmin-height: #{$clickable-area - $input-margin * 2}; /* twice the element margin-y */\\n\\t\\tmax-height: #{$clickable-area - $input-margin * 2}; /* twice the element margin-y */\\n\\t\\tmargin: 0;\\n\\n\\t\\t// if disabled, change cursor\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\n\\t\\t/* only show confirm borders if input is not focused */\\n\\t\\t&:not(:active):not(:hover):not(:focus) {\\n\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t& + .action-input__label {\\n\\t\\t\\t\\t\\tborder-color: var(--color-error);\\n\\t\\t\\t\\t\\tborder-left-color: transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&:not(:disabled) + .action-input__label {\\n\\t\\t\\t\\t&:active,\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\t&:not(:disabled) + .action-input__label {\\n\\t\\t\\t\\t/* above previous input */\\n\\t\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t\\tborder-left-color: transparent;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__picker :deep(.mx-input) {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__multi {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n// if a form is the last of the list\\n// add the same bottomMargin as the right padding\\n// for visual balance\\nli:last-child > .action-input {\\n\\tpadding-bottom: $icon-margin - $input-margin;\\n}\\n\\n// same for first item\\nli:first-child > .action-input {\\n\\tpadding-top: $icon-margin - $input-margin;\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},2911:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-452e1d1a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-452e1d1a]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-link[data-v-452e1d1a]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-link[data-v-452e1d1a]:hover,.action-link[data-v-452e1d1a]:focus{opacity:1}.action-link>span[data-v-452e1d1a]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-452e1d1a]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-452e1d1a] .material-design-icon{width:44px;height:44px;opacity:1}.action-link[data-v-452e1d1a] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link p[data-v-452e1d1a]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-452e1d1a]{cursor:pointer;white-space:pre-wrap}.action-link__title[data-v-452e1d1a]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,wEAEC,SChCY,CDmCb,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,oDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},1915:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-2ea9dc76]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-2ea9dc76]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-2ea9dc76]{pointer-events:none;opacity:.5}.action--disabled[data-v-2ea9dc76]:hover,.action--disabled[data-v-2ea9dc76]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-2ea9dc76]{opacity:1 !important}.action-radio[data-v-2ea9dc76]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-radio__radio[data-v-2ea9dc76]{position:absolute;top:auto;left:-10000px;overflow:hidden;width:1px;height:1px}.action-radio__radio:focus+.action-radio__label[data-v-2ea9dc76]{opacity:1}.action-radio__label[data-v-2ea9dc76]{display:flex;align-items:center;width:100%;padding:0 !important;padding-right:14px !important;opacity:.7}.action-radio__label[data-v-2ea9dc76]::before{margin:0 14px 0 !important}.action-radio--disabled[data-v-2ea9dc76],.action-radio--disabled .action-radio__label[data-v-2ea9dc76]{cursor:pointer}.action-radio:not(.action-radio--disabled):hover .action-radio__label[data-v-2ea9dc76],.action-radio:not(.action-radio--disabled):focus .action-radio__label[data-v-2ea9dc76]{opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/components/NcActionRadio/NcActionRadio.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CEpCH,+BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBAAA,CAGA,sCACC,iBAAA,CACA,QAAA,CACA,aAAA,CAEA,eAAA,CAEA,SAAA,CACA,UAAA,CACA,iEACC,SDMY,CCFd,sCACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,oBAAA,CACA,6BAAA,CAEA,UDPe,CCUf,8CACC,0BAAA,CAKD,uGAEC,cAAA,CAMD,8KACC,SDxBY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n.action-radio {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\tline-height: $clickable-area;\\n\\n\\t/* checkbox/radio fixes */\\n\\t&__radio {\\n\\t\\tposition: absolute;\\n\\t\\ttop: auto;\\n\\t\\tleft: -10000px;\\n\\n\\t\\toverflow: hidden;\\n\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t\\t&:focus + .action-radio__label {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center; // align radio to text\\n\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 !important;\\n\\t\\tpadding-right: $icon-margin !important;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\t// radio-width is 12px, border is 2\\n\\t\\t// (44 - 14 - 2) / 2 = 14\\n\\t\\t&::before {\\n\\t\\t\\tmargin: 0 14px 0 !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\t&,\\n\\t\\t.action-radio__label {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t&:not(.action-radio--disabled):hover,\\n\\t&:not(.action-radio--disabled):focus {\\n\\t\\t.action-radio__label {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},146:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-088cc8ee]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-088cc8ee]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-router[data-v-088cc8ee]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-router[data-v-088cc8ee]:hover,.action-router[data-v-088cc8ee]:focus{opacity:1}.action-router>span[data-v-088cc8ee]{cursor:pointer;white-space:nowrap}.action-router__icon[data-v-088cc8ee]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-router[data-v-088cc8ee] .material-design-icon{width:44px;height:44px;opacity:1}.action-router[data-v-088cc8ee] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-router p[data-v-088cc8ee]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-router__longtext[data-v-088cc8ee]{cursor:pointer;white-space:pre-wrap}.action-router__title[data-v-088cc8ee]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action--disabled[data-v-088cc8ee]{pointer-events:none;opacity:.5}.action--disabled[data-v-088cc8ee]:hover,.action--disabled[data-v-088cc8ee]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-088cc8ee]{opacity:1 !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA,CAjGF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},1474:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-a1812d84]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-separator[data-v-a1812d84]{height:0;margin:5px 10px 5px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActionSeparator/NcActionSeparator.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,QAAA,CACA,wBAAA,CACA,gDAAA,CACA,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.action-separator {\\n\\theight: 0;\\n\\tmargin: 5px 10px 5px 15px;\\n\\tborder-bottom: 1px solid var(--color-border-dark);\\n\\tcursor: default;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},2490:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-baabfed8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-baabfed8]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-text[data-v-baabfed8]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-text[data-v-baabfed8]:hover,.action-text[data-v-baabfed8]:focus{opacity:1}.action-text>span[data-v-baabfed8]{cursor:pointer;white-space:nowrap}.action-text__icon[data-v-baabfed8]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-text[data-v-baabfed8] .material-design-icon{width:44px;height:44px;opacity:1}.action-text[data-v-baabfed8] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text p[data-v-baabfed8]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-text__longtext[data-v-baabfed8]{cursor:pointer;white-space:pre-wrap}.action-text__title[data-v-baabfed8]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action--disabled[data-v-baabfed8]{pointer-events:none;opacity:.5}.action--disabled[data-v-baabfed8]:hover,.action--disabled[data-v-baabfed8]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-baabfed8]{opacity:1 !important}.action-text[data-v-baabfed8],.action-text span[data-v-baabfed8]{cursor:default}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/components/NcActionText/NcActionText.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,wEAEC,SChCY,CDmCb,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,oDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA,CAjGF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CElCF,iEAEC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/action';\\n@include action-active;\\n@include action-item('text');\\n@include action--disabled;\\n\\n.action-text {\\n\\t&,\\n\\tspan {\\n\\t\\tcursor: default;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},6517:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-109a14bf]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-109a14bf]:not(.button-vue),input[data-v-109a14bf]:not([type=range]),textarea[data-v-109a14bf]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-109a14bf]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-109a14bf]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-109a14bf],input[data-v-109a14bf]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-109a14bf]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-109a14bf],textarea[data-v-109a14bf]:not(:disabled):not(.primary):hover,textarea[data-v-109a14bf]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-109a14bf]{border-color:var(--color-primary-element);outline:none}button[data-v-109a14bf]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-109a14bf]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-109a14bf]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-109a14bf]:not(.button-vue):disabled,input[data-v-109a14bf]:not([type=range]):disabled,textarea[data-v-109a14bf]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-109a14bf]:not(.button-vue):required,input[data-v-109a14bf]:not([type=range]):required,textarea[data-v-109a14bf]:required{box-shadow:none}button[data-v-109a14bf]:not(.button-vue):invalid,input[data-v-109a14bf]:not([type=range]):invalid,textarea[data-v-109a14bf]:invalid{border-color:var(--color-error);box-shadow:none !important}button:not(.button-vue).primary[data-v-109a14bf],input:not([type=range]).primary[data-v-109a14bf],textarea.primary[data-v-109a14bf]{cursor:pointer;color:var(--color-primary-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):hover,button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):focus,button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):active,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):hover,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):focus,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):active,textarea.primary[data-v-109a14bf]:not(:disabled):hover,textarea.primary[data-v-109a14bf]:not(:disabled):focus,textarea.primary[data-v-109a14bf]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-109a14bf]:not(:disabled):active,input:not([type=range]).primary[data-v-109a14bf]:not(:disabled):active,textarea.primary[data-v-109a14bf]:not(:disabled):active{color:var(--color-primary-text-dark)}button:not(.button-vue).primary[data-v-109a14bf]:disabled,input:not([type=range]).primary[data-v-109a14bf]:disabled,textarea.primary[data-v-109a14bf]:disabled{cursor:default;color:var(--color-primary-text-dark);background-color:var(--color-primary-element)}li.active[data-v-109a14bf]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-109a14bf]{pointer-events:none;opacity:.5}.action--disabled[data-v-109a14bf]:hover,.action--disabled[data-v-109a14bf]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-109a14bf]{opacity:1 !important}.action-text-editable[data-v-109a14bf]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;line-height:44px}.action-text-editable[data-v-109a14bf]:hover,.action-text-editable[data-v-109a14bf]:focus{opacity:1}.action-text-editable>span[data-v-109a14bf]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-109a14bf]{min-width:0;min-height:0;padding:22px 0 22px 44px;background-position:14px center;background-size:16px}.action-text-editable[data-v-109a14bf] .material-design-icon{width:44px;height:44px;opacity:1}.action-text-editable[data-v-109a14bf] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-109a14bf]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-right:14px}.action-text-editable__submit[data-v-109a14bf]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.action-text-editable__label[data-v-109a14bf]{display:flex;align-items:center;justify-content:center;position:absolute;right:15px;bottom:1px;width:36px;height:36px;box-sizing:border-box;margin:0;padding:7px 6px;opacity:1;color:var(--color-text-lighter);border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-109a14bf],.action-text-editable__label *[data-v-109a14bf]{cursor:pointer}.action-text-editable__textarea[data-v-109a14bf]{flex:1 1 auto;min-height:80px;max-height:124px;min-width:176px;width:100% !important;margin:0}.action-text-editable__textarea[data-v-109a14bf]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-109a14bf]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-109a14bf]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-109a14bf]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-109a14bf]:focus{background-color:var(--color-primary-element);color:var(--color-primary-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-109a14bf],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-109a14bf],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-109a14bf]{z-index:2;border-color:var(--color-primary-element);border-left-color:rgba(0,0,0,0)}li:last-child>.action-text-editable[data-v-109a14bf]{margin-bottom:10px}li:first-child>.action-text-editable[data-v-109a14bf]{margin-top:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/inputs.scss\",\"webpack://./src/assets/variables.scss\",\"webpack://./src/assets/action.scss\",\"webpack://./src/components/NcActionTextEditable/NcActionTextEditable.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCqBD,4GAGC,QAAA,CACA,eAAA,CAEA,WAAA,CAEA,+BAAA,CACA,yCAAA,CACA,kCAAA,CACA,YAAA,CACA,6CAAA,CAEA,cAAA,CAGC,koBAIC,yCAAA,CACA,YAAA,CAGD,wNACC,6BAAA,CACA,YAAA,CACA,6CAAA,CAIF,uIACC,cAAA,CACA,UCrBiB,CDsBjB,mCAAA,CACA,6CAAA,CAGD,uIACC,eAAA,CAGD,oIACC,+BAAA,CACA,0BAAA,CAID,oIACC,cAAA,CACA,+BAAA,CACA,yCAAA,CACA,6CAAA,CAGC,4kBAGC,+CAAA,CACA,mDAAA,CAED,sMACC,oCAAA,CAIF,+JACC,cAAA,CACA,oCAAA,CAEA,6CAAA,CE3ED,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UDMiB,CCLjB,kFACC,cAAA,CACA,UDGgB,CCDjB,qCACC,oBAAA,CCjCH,uCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UFsBgB,CErBhB,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,gBFJgB,CEMhB,0FAEC,SFWa,CERd,4CACC,cAAA,CACA,kBAAA,CAGD,6CACC,WAAA,CACA,YAAA,CAGA,wBAAA,CAEA,+BAAA,CACA,oBFpBU,CEuBX,6DACC,UF5Be,CE6Bf,WF7Be,CE8Bf,SFXa,CEab,wFACC,qBAAA,CAKF,6CACC,YAAA,CACA,aAAA,CACA,qBAAA,CAEA,iBAAA,CACA,YAAA,CACA,kBFrCY,CEwCb,+CACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAGD,8CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,iBAAA,CACA,UAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,QAAA,CACA,eAAA,CAEA,SFrDa,CEsDb,+BAAA,CACA,QAAA,CACA,iBAAA,CAEA,6CAAA,CACA,2BAAA,CAEA,8FACC,cAAA,CAKF,iDACC,aAAA,CAEA,eAAA,CACA,gBAAA,CAEA,eAAA,CACA,qBAAA,CACA,QAAA,CAGA,0DACC,cAAA,CAMC,2HACC,mCAAA,CAID,yZAGC,6CAAA,CACA,+BAAA,CAOF,0SAEC,SAAA,CAEA,yCAAA,CACA,+BAAA,CASJ,qDACC,kBAAA,CAID,sDACC,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n/**\\n * color-text-lighter\\t\\tnormal state\\n * color-text-lighter\\t\\tactive state\\n * color-text-maxcontrast \\tdisabled state\\n */\\n\\n/* Default global values */\\nbutton:not(.button-vue),\\ninput:not([type='range']),\\ntextarea {\\n\\tmargin: 0;\\n\\tpadding: 7px 6px;\\n\\n\\tcursor: text;\\n\\n\\tcolor: var(--color-text-lighter);\\n\\tborder: 1px solid var(--color-border-dark);\\n\\tborder-radius: var(--border-radius);\\n\\toutline: none;\\n\\tbackground-color: var(--color-main-background);\\n\\n\\tfont-size: 13px;\\n\\n\\t&:not(:disabled):not(.primary) {\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&.active {\\n\\t\\t\\t/* active class used for multiselect */\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\toutline: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\toutline: none;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&:required {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&:invalid {\\n\\t\\tborder-color: var(--color-error);\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t/* Primary action button, use sparingly */\\n\\t&.primary {\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\n\\t\\t&:not(:disabled) {\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tborder-color: var(--color-primary-element-light);\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t\\t}\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-text-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tcolor: var(--color-primary-text-dark);\\n\\t\\t\\t// opacity is already defined to .5 if disabled\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n * @author Marco Ambrosini \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&:deep(.material-design-icon) {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '../../assets/inputs';\\n@import '../../assets/action';\\n@include action-active;\\n@include action--disabled;\\n\\n$input-margin: 4px;\\n\\n.action-text-editable {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\twidth: 100%;\\n\\theight: auto;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\n\\tcursor: pointer;\\n\\twhite-space: nowrap;\\n\\n\\topacity: $opacity_normal;\\n\\tcolor: var(--color-main-text);\\n\\tborder: 0;\\n\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\tbackground-color: transparent;\\n\\tbox-shadow: none;\\n\\n\\tfont-weight: normal;\\n\\tline-height: $clickable-area;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: $opacity_full;\\n\\t}\\n\\n\\t& > span {\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\tmin-height: 0;\\n\\t\\t/* Keep padding to define the width to\\n\\t\\t\\tassure correct position of a possible text */\\n\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\n\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\tbackground-size: $icon-size;\\n\\t}\\n\\n\\t&:deep(.material-design-icon) {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\topacity: $opacity_full;\\n\\n\\t\\t.material-design-icon__svg {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\t}\\n\\n\\t// Forms & text inputs\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1 auto;\\n\\t\\tflex-direction: column;\\n\\n\\t\\tposition: relative;\\n\\t\\tmargin: $input-margin 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute;\\n\\t\\tleft: -10000px;\\n\\t\\ttop: auto;\\n\\t\\twidth: 1px;\\n\\t\\theight: 1px;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\t// bottom-right corner\\n\\t\\tposition: absolute;\\n\\t\\tright: $icon-margin + 1;\\n\\t\\tbottom: 1px;\\n\\t\\twidth: #{$clickable-area - $input-margin * 2};\\n\\t\\theight: #{$clickable-area - $input-margin * 2};\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 7px 6px;\\n\\n\\t\\topacity: $opacity_full;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 50%;\\n\\t\\t/* Avoid background under border */\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbackground-clip: padding-box;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Inputs inside popover supports text, submit & reset */\\n\\t&__textarea {\\n\\t\\tflex: 1 1 auto;\\n\\n\\t\\tmin-height: #{$clickable-area * 2 - $input-margin * 2}; /* twice the element margin-y */\\n\\t\\tmax-height: #{$clickable-area * 3 - $input-margin * 2}; /* twice the element margin-y */\\n\\t\\t// block width widening\\n\\t\\tmin-width: $clickable-area * 4;\\n\\t\\twidth: 100% !important;\\n\\t\\tmargin: 0;\\n\\n\\t\\t// if disabled, change cursor\\n\\t\\t&:disabled {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\n\\t\\t/* only show confirm borders if input is not focused */\\n\\t\\t&:not(:active):not(:hover):not(:focus) {\\n\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t& + .action-text-editable__label {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&:not(:disabled) + .action-text-editable__label {\\n\\t\\t\\t\\t&:active,\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\t&:not(:disabled) + .action-text-editable__label {\\n\\t\\t\\t\\t/* above previous input */\\n\\t\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t\\t\\tborder-left-color: transparent;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n// if a form is the last of the list\\n// add the same bottomMargin as the right padding\\n// for visual balance\\nli:last-child > .action-text-editable {\\n\\tmargin-bottom: $icon-margin - $input-margin;\\n}\\n\\n// same for first item\\nli:first-child > .action-text-editable {\\n\\tmargin-top: $icon-margin - $input-margin;\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},2810:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-7a49ed06]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-7a49ed06]{display:flex;align-items:center}.action-item[data-v-7a49ed06]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-7a49ed06]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-7a49ed06]{--open-background-color: var(--color-primary-light-hover)}.action-item.action-item--error[data-v-7a49ed06]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-7a49ed06]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-7a49ed06]{--open-background-color: var(--color-success-hover)}.action-item.action-item--open .action-item__menutoggle[data-v-7a49ed06]{opacity:1;background-color:var(--open-background-color)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActions/NcActions.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,kBAAA,CAGD,8BACC,gFAAA,CACA,iBAAA,CACA,oBAAA,CAEA,mDACC,2DAAA,CAGD,qDACC,yDAAA,CAGD,iDACC,iDAAA,CAGD,mDACC,mDAAA,CAGD,mDACC,mDAAA,CAGD,yEACC,SCWa,CDVb,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.action-items {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.action-item {\\n\\t--open-background-color: var(--color-background-hover, $action-background-hover);\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t&.action-item--primary {\\n\\t\\t--open-background-color: var(--color-primary-element-hover);\\n\\t}\\n\\n\\t&.action-item--secondary {\\n\\t\\t--open-background-color: var(--color-primary-light-hover);\\n\\t}\\n\\n\\t&.action-item--error {\\n\\t\\t--open-background-color: var(--color-error-hover);\\n\\t}\\n\\n\\t&.action-item--warning {\\n\\t\\t--open-background-color: var(--color-warning-hover);\\n\\t}\\n\\n\\t&.action-item--success {\\n\\t\\t--open-background-color: var(--color-success-hover);\\n\\t}\\n\\n\\t&.action-item--open .action-item__menutoggle {\\n\\t\\topacity: $opacity_full;\\n\\t\\tbackground-color: var(--open-background-color);\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},8582:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(100vh - 16px);overflow:auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActions/NcActions.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,gFACC,wCAAA,CACA,WAAA,CACA,6BAAA,CACA,aAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n// We overwrote the popover base class, so we can style\\n// the popover__inner for actions only.\\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner {\\n\\tborder-radius: var(--border-radius-large);\\n\\tpadding: 4px;\\n\\tmax-height: calc(100vh - 16px);\\n\\toverflow: auto;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},1073:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-1aa2c168]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-1aa2c168]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0 !important;background-color:var(--color-main-background);min-width:0;--topbar-margin: 4px}.app-content[data-v-1aa2c168]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-1aa2c168]{position:relative;width:100%;height:100%}.app-content-wrapper--mobile.app-content-wrapper--show-list[data-v-1aa2c168] .app-content-list{display:block}.app-content-wrapper--mobile.app-content-wrapper--show-list[data-v-1aa2c168] .app-content-details{display:none}.app-content-wrapper--mobile.app-content-wrapper--show-details[data-v-1aa2c168] .app-content-list{display:none}.app-content-wrapper--mobile.app-content-wrapper--show-details[data-v-1aa2c168] .app-content-details{display:block}[data-v-1aa2c168] .splitpanes.default-theme .app-content-list{max-width:none}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane{background-color:rgba(0,0,0,0);transition:none}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky;top:var(--header-height)}@media only screen and (max-width: 1024px){[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (max-width: 1024px){[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__splitter{width:9px;margin-left:-5px;background-color:rgba(0,0,0,0);border-left:none}[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-1aa2c168] .splitpanes.default-theme .splitpanes__splitter:after{display:none}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppContent/NcAppContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8BACC,gBAAA,CACA,YAAA,CACA,gBAAA,CACA,WAAA,CAEA,mBAAA,CACA,6CAAA,CACA,WAAA,CAQA,oBAAA,CANA,0DACC,aAAA,CAQF,sCACC,iBAAA,CACA,UAAA,CACA,WAAA,CAMC,gGACC,aAAA,CAED,mGACC,YAAA,CAID,mGACC,YAAA,CAED,sGACC,aAAA,CAMF,8DACC,cAAA,CAGD,8DACC,8BAAA,CACA,eAAA,CAEA,mEACC,eAAA,CACA,eAAA,CACA,wBAAA,CAEA,2CALD,mEAME,YAAA,CAAA,CAIF,sEACC,eAAA,CAEA,2CAHD,sEAIE,cAAA,CAAA,CAKH,kEACC,SAAA,CACA,gBAAA,CACA,8BAAA,CACA,gBAAA,CAEA,iJAEC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.app-content {\\n\\tposition: initial;\\n\\tz-index: 1000;\\n\\tflex-basis: 100vw;\\n\\theight: 100%;\\n\\t// Overriding server styles TODO: cleanup!\\n\\tmargin: 0 !important;\\n\\tbackground-color: var(--color-main-background);\\n\\tmin-width: 0;\\n\\n\\t&:not(.app-content--has-list) {\\n\\t\\toverflow: auto;\\n\\t}\\n\\n\\t// Variables\\n\\t// the whitespace between the topbar content and its edges\\n\\t--topbar-margin: #{$topbar-margin};\\n}\\n\\n.app-content-wrapper {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n// Mobile list/details handling\\n.app-content-wrapper--mobile {\\n\\t&.app-content-wrapper--show-list :deep() {\\n\\t\\t.app-content-list {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t\\t.app-content-details {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\t&.app-content-wrapper--show-details :deep() {\\n\\t\\t.app-content-list {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t\\t.app-content-details {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\\n:deep(.splitpanes.default-theme) {\\n\\t.app-content-list {\\n\\t\\tmax-width: none;\\n\\t}\\n\\n\\t.splitpanes__pane {\\n\\t\\tbackground-color: transparent;\\n\\t\\ttransition: none;\\n\\n\\t\\t&-list {\\n\\t\\t\\tmin-width: 300px;\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--header-height);\\n\\n\\t\\t\\t@media only screen and (max-width: $breakpoint-mobile) {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-details {\\n\\t\\t\\toverflow-y: auto;\\n\\n\\t\\t\\t@media only screen and (max-width: $breakpoint-mobile) {\\n\\t\\t\\t\\tmin-width: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.splitpanes__splitter {\\n\\t\\twidth: 9px;\\n\\t\\tmargin-left: -5px;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder-left: none;\\n\\n\\t\\t&:before,\\n\\t\\t&:after {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},5194:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-45131f51]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-45131f51]{position:fixed;width:44px;height:44px;padding:14px;cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000}.app-details-toggle[data-v-45131f51]:active,.app-details-toggle[data-v-45131f51]:hover,.app-details-toggle[data-v-45131f51]:focus{opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppContent/NcAppDetailsToggle.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,qCACC,cAAA,CACA,UCqBgB,CDpBhB,WCoBgB,CDnBhB,YC2Ba,CD1Bb,cAAA,CACA,UAAA,CACA,wBAAA,CACA,6CAAA,CACA,YAAA,CAEA,kIAGC,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-details-toggle {\\n\\tposition: fixed;\\n\\twidth: $clickable-area;\\n\\theight: $clickable-area;\\n\\tpadding: $icon-margin;\\n\\tcursor: pointer;\\n\\topacity: .6;\\n\\ttransform: rotate(180deg);\\n\\tbackground-color: var(--color-main-background);\\n\\tz-index: 2000;\\n\\n\\t&:active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},9598:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-3ab7cf52]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-3ab7cf52]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;position:relative;top:0;left:0;padding:0px;z-index:1800;height:100%;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--close[data-v-3ab7cf52]{transform:translateX(-100%);position:absolute}.app-navigation>ul[data-v-3ab7cf52],.app-navigation__list[data-v-3ab7cf52]{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:calc(var(--default-grid-baseline, 4px)*2)}@media only screen and (max-width: 1024px){.app-navigation[data-v-3ab7cf52]:not(.app-navigation--close){position:absolute}}@media only screen and (max-width: 512px){.app-navigation[data-v-3ab7cf52]{z-index:1400}}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigation/NcAppNavigation.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,iCAGC,8GAAA,CAEA,yEAAA,CACA,WC6CkB,CD5ClB,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CAEA,YAAA,CACA,WAAA,CACA,qBAAA,CACA,wBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,YAAA,CACA,qBAAA,CACA,WAAA,CACA,aAAA,CACA,gFAAA,CACA,2DAAA,CACA,mDAAA,CAEA,wCACC,2BAAA,CACA,iBAAA,CAID,2EAEC,iBAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,YAAA,CACA,qBAAA,CACA,qCAAA,CACA,iDAAA,CAKF,2CACC,6DACC,iBAAA,CAAA,CAKF,0CACC,iCACC,YAAA,CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation {\\n\\t// Set scoped variable override\\n\\t// Using --color-text-maxcontrast as a fallback evaluates to an invalid value as it references itself in this scope instead of the variable defined higher up\\n\\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\\n\\n\\ttransition: transform var(--animation-quick), margin var(--animation-quick);\\n\\twidth: $navigation-width;\\n\\tposition: relative;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tpadding: 0px;\\n\\t// Above appcontent\\n\\tz-index: 1800;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbackground-color: var(--color-main-background-blur, var(--color-main-background));\\n\\t-webkit-backdrop-filter: var(--filter-background-blur, none);\\n\\tbackdrop-filter: var(--filter-background-blur, none);\\n\\n\\t&--close {\\n\\t\\ttransform: translateX(-100%);\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t//list of navigation items\\n\\t& > ul,\\n\\t&__list {\\n\\t\\tposition: relative;\\n\\t\\theight: 100%;\\n\\t\\twidth: 100%;\\n\\t\\toverflow-x: hidden;\\n\\t\\toverflow-y: auto;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: var(--default-grid-baseline, 4px);\\n\\t\\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t}\\n}\\n\\n// When on mobile, we make the navigation slide over the appcontent\\n@media only screen and (max-width: $breakpoint-mobile) {\\n\\t.app-navigation:not(.app-navigation--close) {\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\\n// Put the toggle behind appsidebar on small screens\\n@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\\n\\t.app-navigation {\\n\\t\\tz-index: 1400;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},9814:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-b3657dbc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-b3657dbc]{display:flex;justify-content:space-between;padding:0 calc(var(--default-grid-baseline, 4px)*2) 0 calc(var(--default-grid-baseline, 4px)*3)}.app-navigation-caption__title[data-v-b3657dbc]{font-weight:bold;color:var(--color-primary-element);font-size:var(--default-font-size);line-height:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7;box-shadow:none !important;flex-shrink:0}.app-navigation-caption__actions[data-v-b3657dbc]{flex:0 0 44px}.app-navigation-caption[data-v-b3657dbc]:not(:first-child){margin-top:22px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationCaption/NcAppNavigationCaption.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,yCACC,YAAA,CACA,6BAAA,CACA,+FAAA,CAEA,gDACC,gBAAA,CACA,kCAAA,CACA,kCAAA,CACA,gBCae,CDZf,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,UC2Be,CD1Bf,0BAAA,CACA,aAAA,CAGD,kDACC,aAAA,CAKF,2DACC,eAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.app-navigation-caption {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tpadding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 3);\\n\\n\\t&__title {\\n\\t\\tfont-weight: bold;\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tbox-shadow: none !important;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t}\\n}\\n\\n// extra top space if it's not the first item on the list\\n.app-navigation-caption:not(:first-child) {\\n\\tmargin-top: math.div($clickable-area, 2);\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},9710:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-025c90dc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__counter[data-v-025c90dc]{font-size:calc(var(--default-font-size)*.8);overflow:hidden;width:fit-content;max-width:44px;text-align:center;text-overflow:ellipsis;line-height:1em;padding:4px 8px;border-radius:var(--border-radius-pill);background-color:var(--color-background-darker)}.app-navigation-entry__counter--highlighted[data-v-025c90dc]{padding:4px 6px;color:var(--color-primary-text);background-color:var(--color-primary)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationCounter/NcAppNavigationCounter.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gDACC,2CAAA,CACA,eAAA,CACA,iBAAA,CACA,cCmBgB,CDlBhB,iBAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CACA,uCAAA,CACA,+CAAA,CAEA,6DACC,eAAA,CACA,+BAAA,CACA,qCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-entry__counter {\\n\\tfont-size: calc(var(--default-font-size) * .8);\\n\\toverflow: hidden;\\n\\twidth: fit-content;\\n\\tmax-width: $clickable-area;\\n\\ttext-align: center;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 1em;\\n\\tpadding: 4px 8px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tbackground-color: var(--color-background-darker);\\n\\n\\t&--highlighted {\\n\\t\\tpadding: 4px 6px;\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},2546:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-2f791f07]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-2f791f07]{display:block;padding:15px}.app-navigation-entry__icon-bullet div[data-v-2f791f07]{width:14px;height:14px;cursor:pointer;transition:background 100ms ease-in-out;border:none;border-radius:50%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationIconBullet/NcAppNavigationIconBullet.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oDACC,aAAA,CAEA,YAAA,CACA,wDACC,UAAA,CACA,WAAA,CACA,cAAA,CACA,uCAAA,CACA,WAAA,CACA,iBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-entry__icon-bullet {\\n\\tdisplay: block;\\n\\t// there is 2 margins\\n\\tpadding: $icon-margin + 1px;\\n\\tdiv {\\n\\t\\twidth: $icon-size - 2px;\\n\\t\\theight: $icon-size - 2px;\\n\\t\\tcursor: pointer;\\n\\t\\ttransition: background 100ms ease-in-out;\\n\\t\\tborder: none;\\n\\t\\tborder-radius: 50%;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},7185:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-929d604e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-929d604e]{position:absolute;z-index:105;color:var(--color-main-text)}.icon-collapse[data-v-929d604e]:hover{color:var(--color-primary)}.icon-collapse--open[data-v-929d604e]{color:var(--color-main-text)}.icon-collapse--open[data-v-929d604e]:hover{color:var(--color-primary)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,iBAAA,CACA,WAAA,CACA,4BAAA,CAEA,sCACC,0BAAA,CAED,sCACC,4BAAA,CACA,4CACC,0BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.icon-collapse {\\n\\tposition: absolute;\\n\\tz-index: 105; // above a, under button\\n\\tcolor: var(--color-main-text);\\n\\n\\t&:hover{\\n\\t\\tcolor: var(--color-primary);\\n\\t}\\n\\t&--open {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\t&:hover{\\n\\t\\t\\tcolor: var(--color-primary);\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},7879:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:44px;transition:background-color var(--animation-quick) ease-in-out;transition:background-color 200ms ease-in-out;border-radius:var(--border-radius-pill)}.app-navigation-entry-wrapper{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul{display:none}.app-navigation-entry.active{background-color:var(--color-primary-light) !important}.app-navigation-entry:focus-within,.app-navigation-entry:hover{background-color:var(--color-background-hover)}.app-navigation-entry.active .app-navigation-entry__children,.app-navigation-entry:focus-within .app-navigation-entry__children,.app-navigation-entry:hover .app-navigation-entry__children{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions,.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions{display:inline-block}.app-navigation-entry.app-navigation-entry--deleted>ul{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link,.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-div{padding-right:14px}.app-navigation-entry .app-navigation-entry-link,.app-navigation-entry .app-navigation-entry-div{z-index:100;display:flex;overflow:hidden;flex:1 1 0;box-sizing:border-box;min-height:44px;padding:0;white-space:nowrap;color:var(--color-main-text);background-repeat:no-repeat;background-position:14px center;background-size:16px 16px;line-height:44px}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon,.app-navigation-entry .app-navigation-entry-div .app-navigation-entry-icon{display:flex;align-items:center;flex:0 0 44px;justify-content:center;width:44px;height:44px;background-size:16px 16px}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__title,.app-navigation-entry .app-navigation-entry-div .app-navigation-entry__title{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}.app-navigation-entry .app-navigation-entry-link .editingContainer,.app-navigation-entry .app-navigation-entry-div .editingContainer{width:calc(100% - 44px);margin:auto}.app-navigation-entry__children{position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%}.app-navigation-entry__children .app-navigation-entry{display:inline-flex;flex-wrap:wrap;padding-left:16px}.app-navigation-entry__deleted{display:inline-flex;flex:1 1 0;padding-left:30px !important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:44px}.app-navigation-entry--collapsible .icon-collapse{visibility:hidden}.app-navigation-entry--collapsible.app-navigation-entry--no-icon a .app-navigation-entry-icon,.app-navigation-entry--collapsible:hover a .app-navigation-entry-icon,.app-navigation-entry--collapsible:focus a .app-navigation-entry-icon{visibility:hidden}.app-navigation-entry--collapsible.app-navigation-entry--no-icon .icon-collapse,.app-navigation-entry--collapsible:hover .icon-collapse,.app-navigation-entry--collapsible:focus .icon-collapse{visibility:visible}.app-navigation-entry--collapsible.app-navigation-entry--no-icon .app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child,.app-navigation-entry--collapsible:hover .app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child,.app-navigation-entry--collapsible:focus .app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child{visibility:visible}.app-navigation-entry__utils{display:flex;min-width:44px;align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper{margin-right:calc(var(--default-grid-baseline)*2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions{display:none}.app-navigation-entry--editing .app-navigation-entry-edit{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted{z-index:250;transform:translateX(0)}.app-navigation-entry--pinned{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned{margin-top:0}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationItem/NcAppNavigationItem.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,sBACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,UAAA,CACA,eCgBgB,CDfhB,8DAAA,CACA,6CAAA,CACA,uCAAA,CAEA,8BACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,UAAA,CAEA,sGAEC,YAAA,CAMF,6BACC,sDAAA,CAED,+DAEC,8CAAA,CAKA,4LACC,6CAAA,CAWD,wdACC,oBAAA,CAKF,uDAEC,YAAA,CAIA,yKACC,kBChCW,CDqCb,iGACC,WAAA,CACA,YAAA,CACA,eAAA,CACA,UAAA,CACA,qBAAA,CACA,eCnDe,CDoDf,SAAA,CACA,kBAAA,CACA,4BAAA,CACA,2BAAA,CACA,+BAAA,CACA,yBAAA,CACA,gBC1De,CD4Df,uJACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,sBAAA,CACA,UCjEc,CDkEd,WClEc,CDmEd,yBAAA,CAGD,2JACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CAGD,qIACC,uBAAA,CACA,WAAA,CAKH,gCACC,iBAAA,CACA,YAAA,CACA,aAAA,CACA,qBAAA,CACA,UAAA,CAEA,sDACC,mBAAA,CACA,cAAA,CACA,iBC1FU,CD+FZ,+BACC,mBAAA,CACA,UAAA,CACA,4BAAA,CACA,0EACC,iBAAA,CACA,eAAA,CACA,UAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBC7Ge,CDqHhB,kDACC,iBAAA,CAIA,0OAEC,iBAAA,CAED,gMAEC,kBAAA,CAID,iaACC,kBAAA,CAMH,6BACC,YAAA,CACA,cC7IgB,CD8IhB,kBAAA,CACA,aAAA,CACA,wBAAA,CACA,qHACC,oBAAA,CAGD,oEAEC,iDAAA,CACA,YAAA,CACA,kBAAA,CACA,aAAA,CAGD,wEACC,YAAA,CAOD,0DACC,WAAA,CACA,SAAA,CAMD,6DACC,WAAA,CACA,uBAAA,CAKF,8BACC,OAAA,CACA,eAAA,CAEA,4DACC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-entry {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tflex-wrap: wrap;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\tmin-height: $clickable-area;\\n\\ttransition: background-color var(--animation-quick) ease-in-out;\\n\\ttransition: background-color 200ms ease-in-out;\\n\\tborder-radius: var(--border-radius-pill);\\n\\n\\t&-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-shrink: 0;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 100%;\\n\\n\\t\\t&.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul {\\n\\t\\t\\t// NO ANIMATE because if not really hidden, we can still tab through it\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// When .active class is applied, change color background of link and utils. The\\n\\t// !important prevents the focus state to override the active state.\\n\\t&.active {\\n\\t\\tbackground-color: var(--color-primary-light) !important;\\n\\t}\\n\\t&:focus-within,\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\t&.active,\\n\\t&:focus-within,\\n\\t&:hover {\\n\\t\\t.app-navigation-entry__children {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Show the actions on active\\n\\t&.active,\\n\\t// Always show the undo button\\n\\t&.app-navigation-entry--deleted,\\n\\t&:focus,\\n\\t&:focus-within,\\n\\t&:hover {\\n\\t\\t.app-navigation-entry__utils .app-navigation-entry__actions {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* hide deletion/collapse of subitems */\\n\\t&.app-navigation-entry--deleted > ul {\\n\\t\\t// NO ANIMATE because if not really hidden, we can still tab through it\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&:not(.app-navigation-entry--editing) {\\n\\t\\t.app-navigation-entry-link, .app-navigation-entry-div {\\n\\t\\t\\tpadding-right: $icon-margin;\\n\\t\\t}\\n\\t}\\n\\n\\t// Main entry link\\n\\t.app-navigation-entry-link, .app-navigation-entry-div {\\n\\t\\tz-index: 100; /* above the bullet to allow click*/\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 1 1 0;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tpadding: 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: $icon-margin center;\\n\\t\\tbackground-size: $icon-size $icon-size;\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t.app-navigation-entry-icon {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 $clickable-area;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\tbackground-size: $icon-size $icon-size;\\n\\t\\t}\\n\\n\\t\\t.app-navigation-entry__title {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t.editingContainer {\\n\\t\\t\\twidth: calc(100% - #{$clickable-area});\\n\\t\\t\\tmargin: auto;\\n\\t\\t}\\n\\t}\\n}\\n/* Second level nesting for lists */\\n.app-navigation-entry__children {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tflex: 0 1 auto;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\n\\t.app-navigation-entry {\\n\\t\\tdisplay: inline-flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tpadding-left: $icon-size;\\n\\t}\\n}\\n\\n/* Deleted entries */\\n.app-navigation-entry__deleted {\\n\\tdisplay: inline-flex;\\n\\tflex: 1 1 0;\\n\\tpadding-left: $clickable-area - $icon-margin !important;\\n\\t.app-navigation-entry__deleted-description {\\n\\t\\tposition: relative;\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 1 1 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tline-height: $clickable-area;\\n\\t}\\n}\\n\\n/* Makes the icon of the collapsible element disappear\\n* When hovering on the root element */\\n.app-navigation-entry--collapsible {\\n\\t//shows the triangle button\\n\\t.icon-collapse {\\n\\t\\tvisibility: hidden;\\n\\t}\\n\\t&.app-navigation-entry--no-icon,\\n\\t&:hover, &:focus {\\n\\t\\ta .app-navigation-entry-icon {\\n\\t\\t\\t// hides the icon\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t}\\n\\t\\t.icon-collapse {\\n\\t\\t\\t//shows the triangle button\\n\\t\\t\\tvisibility: visible;\\n\\t\\t}\\n\\t\\t// prevent the icon of children elements from being hidden\\n\\t\\t// by the previous rule\\n\\t\\t.app-navigation-entry__children li:not(.app-navigation-entry--collapsible) a :first-child {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* counter and actions */\\n.app-navigation-entry__utils {\\n\\tdisplay: flex;\\n\\tmin-width: $clickable-area;\\n\\talign-items: center;\\n\\tflex: 0 1 auto;\\n\\tjustify-content: flex-end;\\n\\t&#{&}--display-actions .action-item.app-navigation-entry__actions {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\t/* counter */\\n\\t.app-navigation-entry__counter-wrapper {\\n\\t\\t// Add slightly more space to the right of the counter\\n\\t\\tmargin-right: calc(var(--default-grid-baseline) * 2);\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex: 0 1 auto;\\n\\t}\\n\\t/* actions */\\n\\t.action-item.app-navigation-entry__actions {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n// STATES\\n/* editing state */\\n.app-navigation-entry--editing {\\n\\t.app-navigation-entry-edit {\\n\\t\\tz-index: 250;\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n/* deleted state */\\n.app-navigation-entry--deleted {\\n\\t.app-navigation-entry-deleted {\\n\\t\\tz-index: 250;\\n\\t\\ttransform: translateX(0);\\n\\t}\\n}\\n\\n/* pinned state */\\n.app-navigation-entry--pinned {\\n\\torder: 2;\\n\\tmargin-top: auto;\\n\\t// only put a marginTop auto to the first one!\\n\\t~ .app-navigation-entry--pinned {\\n\\t\\tmargin-top: 0;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},3227:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm{flex:1 0 100%;width:100%}.app-navigation-input-confirm form{display:flex}.app-navigation-input-confirm__input{height:34px;flex:1 1 100%;font-size:100% !important;margin:5px !important;margin-left:-8px !important;padding:7px !important}.app-navigation-input-confirm__input:active,.app-navigation-input-confirm__input:focus,.app-navigation-input-confirm__input:hover{outline:none;background-color:var(--color-main-background);color:var(--color-text-light);border-color:var(--color-primary-element)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationItem/NcInputConfirmCancel.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCFD,8BACC,aAAA,CACA,UAAA,CAEA,mCACC,YAAA,CAGD,qCACC,WAba,CAcb,aAAA,CACA,yBAAA,CACA,qBAAA,CACA,2BAAA,CACA,sBAAA,CAEA,kIAGC,YAAA,CACA,6CAAA,CACA,6BAAA,CACA,yCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n$input-height: 34px;\\n$input-padding: 7px;\\n$input-margin: 5px;\\n\\n.app-navigation-input-confirm {\\n\\tflex: 1 0 100%;\\n\\twidth: 100%;\\n\\n\\tform {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&__input {\\n\\t\\theight: $input-height;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tfont-size: 100% !important;\\n\\t\\tmargin: $input-margin !important;\\n\\t\\tmargin-left: -1px - $input-padding !important;\\n\\t\\tpadding: $input-padding !important;\\n\\n\\t\\t&:active,\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\toutline: none;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},8139:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-5e6c9e57]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-5e6c9e57]{display:block;padding:calc(var(--default-grid-baseline, 4px)*2)}.app-navigation-new button[data-v-5e6c9e57]{width:100%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationNew/NcAppNavigationNew.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qCACC,aAAA,CACA,iDAAA,CACA,4CACC,UAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n/* 'New' button */\\n.app-navigation-new {\\n\\tdisplay: block;\\n\\tpadding: calc(var(--default-grid-baseline, 4px) * 2);\\n\\tbutton {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},1004:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new-item__title{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-left:7px;font-size:14px}.newItemContainer{width:calc(100% - 44px);margin:auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBAAA,CACA,cAAA,CAGD,kBACC,uBAAA,CACA,WAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-navigation-new-item__title {\\n\\toverflow: hidden;\\n\\tmax-width: 100%;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tpadding-left: 7px;\\n\\tfont-size: 14px;\\n}\\n\\n.newItemContainer {\\n\\twidth: calc(100% - #{$clickable-area});\\n\\tmargin: auto;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},6680:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-b90baef8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#app-settings[data-v-b90baef8]{margin-top:auto;padding:3px}#app-settings__header[data-v-b90baef8]{box-sizing:border-box;margin:0 3px 3px 3px}#app-settings__header .settings-button[data-v-b90baef8]{display:flex;flex:1 1 0;height:44px;width:100%;padding:0;margin:0;background-color:var(--color-main-background);box-shadow:none;border:0;border-radius:var(--border-radius-pill);text-align:left;font-weight:normal;font-size:100%;color:var(--color-main-text);padding-right:14px;line-height:44px}#app-settings__header .settings-button[data-v-b90baef8]:hover,#app-settings__header .settings-button[data-v-b90baef8]:focus{background-color:var(--color-background-hover)}#app-settings__header .settings-button__icon[data-v-b90baef8]{width:44px;height:44px;min-width:44px}#app-settings__header .settings-button__label[data-v-b90baef8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}#app-settings__content[data-v-b90baef8]{display:block;padding:10px;margin-bottom:-3px;max-height:300px;overflow-y:auto;box-sizing:border-box}.slide-up-leave-active[data-v-b90baef8],.slide-up-enter-active[data-v-b90baef8]{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden !important}.slide-up-enter[data-v-b90baef8],.slide-up-leave-to[data-v-b90baef8]{max-height:0 !important;padding:0 10px !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,eAAA,CACA,WC0DgC,CDxDhC,uCACC,qBAAA,CACA,oBAAA,CAEA,wDACC,YAAA,CACA,UAAA,CACA,WCYc,CDXd,UAAA,CACA,SAAA,CACA,QAAA,CACA,6CAAA,CACA,eAAA,CACA,QAAA,CACA,uCAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,4BAAA,CACA,kBAAA,CACA,gBCDc,CDGd,4HAEC,8CAAA,CAGD,8DACC,UCTa,CDUb,WCVa,CDWb,cCXa,CDad,+DACC,eAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CAKH,wCACC,aAAA,CACA,YAAA,CAGA,kBAAA,CAGA,gBAAA,CACA,eAAA,CACA,qBAAA,CAIF,gFAEC,yCAAA,CACA,sCAAA,CACA,4BAAA,CAGD,qEAEC,uBAAA,CACA,yBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n#app-settings {\\n\\tmargin-top: auto;\\n\\tpadding: $app-navigation-settings-margin;\\n\\n\\t&__header {\\n\\t\\tbox-sizing: border-box;\\n\\t\\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\\n\\n\\t\\t.settings-button {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 0;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\t\\ttext-align: left;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tfont-size: 100%;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tpadding-right: 14px;\\n\\t\\t\\tline-height: $clickable-area;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&__icon {\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\t}\\n\\t\\t\\t&__label {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: block;\\n\\t\\tpadding: 10px;\\n\\n\\t\\t/* prevent scrolled contents from stopping too early */\\n\\t\\tmargin-bottom: -$app-navigation-settings-margin;\\n\\n\\t\\t/* restrict height of settings and make scrollable */\\n\\t\\tmax-height: 300px;\\n\\t\\toverflow-y: auto;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\\n.slide-up-leave-active,\\n.slide-up-enter-active {\\n\\ttransition-duration: var(--animation-slow);\\n\\ttransition-property: max-height, padding;\\n\\toverflow-y: hidden !important;\\n}\\n\\n.slide-up-enter,\\n.slide-up-leave-to {\\n\\tmax-height: 0 !important;\\n\\tpadding: 0 10px !important;\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},373:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-7babc9e6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button.app-navigation-toggle[data-v-7babc9e6]{position:absolute;top:4px;right:-4px;margin-right:-44px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8CACC,iBAAA,CACA,OCsDe,CDrDf,UAAA,CACA,kBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\nbutton.app-navigation-toggle {\\n\\tposition: absolute;\\n\\ttop: $topbar-margin;\\n\\tright: - $topbar-margin;\\n\\tmargin-right: - $clickable-area;\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},322:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-2ba1c378]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-modal[data-v-2ba1c378] .modal-wrapper .modal-container{display:flex;overflow:hidden}.app-settings[data-v-2ba1c378]{width:100%;display:flex;flex-direction:column;min-width:0}.app-settings__title[data-v-2ba1c378]{min-height:44px;height:44px;line-height:44px;padding-top:4px;text-align:center}.app-settings__wrapper[data-v-2ba1c378]{display:flex;width:100%;overflow:hidden;height:100%;position:relative}.app-settings__navigation[data-v-2ba1c378]{min-width:200px;margin-right:20px;overflow-x:hidden;overflow-y:auto;position:relative;height:100%}.app-settings__content[data-v-2ba1c378]{max-width:100vw;overflow-y:auto;overflow-x:hidden;padding:24px;width:100%}.navigation-list[data-v-2ba1c378]{height:100%;box-sizing:border-box;overflow-y:auto;padding:12px}.navigation-list__link[data-v-2ba1c378]{display:block;font-size:16px;height:44px;margin:4px 0;line-height:44px;border-radius:var(--border-radius-pill);font-weight:bold;padding:0 20px;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:rgba(0,0,0,0);border:none}.navigation-list__link[data-v-2ba1c378]:hover,.navigation-list__link[data-v-2ba1c378]:focus{background-color:var(--color-background-hover)}.navigation-list__link--active[data-v-2ba1c378]{background-color:var(--color-primary-light) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qEACC,YAAA,CACA,eAAA,CAGD,+BACC,UAAA,CACA,YAAA,CACA,qBAAA,CACA,WAAA,CACA,sCACC,eCWe,CDVf,WCUe,CDTf,gBCSe,CDRf,eAAA,CACA,iBAAA,CAED,wCACC,YAAA,CACA,UAAA,CACA,eAAA,CACA,WAAA,CACA,iBAAA,CAED,2CACC,eAAA,CACA,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,WAAA,CAED,wCACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,YAAA,CACA,UAAA,CAIF,kCACC,WAAA,CACA,qBAAA,CACA,eAAA,CACA,YAAA,CACA,wCACC,aAAA,CACA,cAAA,CACA,WC3Be,CD4Bf,YAAA,CACA,gBC7Be,CD8Bf,uCAAA,CACA,gBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,8BAAA,CACA,WAAA,CACA,4FAEC,8CAAA,CAED,gDACC,sDAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.app-settings-modal :deep(.modal-wrapper .modal-container) {\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n}\\n\\n.app-settings {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmin-width: 0;\\n\\t&__title {\\n\\t\\tmin-height: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tpadding-top: 4px; // Same as the close button top spacing\\n\\t\\ttext-align: center;\\n\\t}\\n\\t&__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\toverflow: hidden;\\n\\t\\theight: 100%;\\n\\t\\tposition: relative;\\n\\t}\\n\\t&__navigation {\\n\\t\\tmin-width: 200px;\\n\\t\\tmargin-right: 20px;\\n\\t\\toverflow-x: hidden;\\n\\t\\toverflow-y: auto;\\n\\t\\tposition: relative;\\n\\t\\theight: 100%;\\n\\t}\\n\\t&__content {\\n\\t\\tmax-width: 100vw;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t\\tpadding: 24px;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.navigation-list {\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\toverflow-y: auto;\\n\\tpadding: 12px;\\n\\t&__link {\\n\\t\\tdisplay: block;\\n\\t\\tfont-size: 16px;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 4px 0;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 20px;\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder: none;\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t&--active {\\n\\t\\t\\tbackground-color: var(--color-primary-light) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},2746:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-600605cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-600605cc]{margin-bottom:80px}.app-settings-section__title[data-v-600605cc]{font-size:20px;margin:0;padding:20px 0;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSettingsSection/NcAppSettingsSection.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,uCACC,kBAAA,CACA,8CACC,cAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-settings-section {\\n\\tmargin-bottom: 80px;\\n\\t&__title {\\n\\t\\tfont-size: 20px;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 20px 0;\\n\\t\\tfont-weight: bold;\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},9253:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-a563487c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-a563487c]{position:-webkit-sticky;position:sticky;z-index:1500;top:var(--header-height);right:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;width:27vw;min-width:300px;max-width:500px;height:100%;border-left:1px solid var(--color-border);background:var(--color-main-background)}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]{position:absolute;z-index:100;top:6px;right:6px;width:44px;height:44px;opacity:.7;border-radius:22px}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]:hover,.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]:active,.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-a563487c]:focus{opacity:1;background-color:rgba(127,127,127,.25)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-a563487c]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-a563487c]{z-index:2;width:70px;height:70px;margin:9px;border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-a563487c]{padding-left:0;flex:1 1 auto;min-width:0;padding-right:94px;padding-top:10px}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-a563487c]{padding-right:50px}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-a563487c]{z-index:3;position:absolute;top:9px;left:-44px;gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-a563487c]{top:6px;right:50px;background-color:rgba(0,0,0,0);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-a563487c]{position:absolute;top:6px;right:50px}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-a563487c]{padding-right:94px}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-a563487c]{padding-right:50px}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-a563487c]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-a563487c]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-a563487c]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-a563487c]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:18px 6px 18px 9px;gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-a563487c]{padding-left:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__maintitle-form[data-v-a563487c],.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__maintitle-form[data-v-a563487c]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__subtitle[data-v-a563487c]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-a563487c]{display:flex;height:44px;width:44px;justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-a563487c]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-a563487c]:hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container[data-v-a563487c]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container[data-v-a563487c]{display:flex;align-items:center;min-height:44px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle[data-v-a563487c]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle[data-v-a563487c] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle-form[data-v-a563487c]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__maintitle-form input.app-sidebar-header__maintitle-input[data-v-a563487c]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:bold}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-container .app-sidebar-header__menu[data-v-a563487c]{height:44px;width:44px;border-radius:22px;background-color:rgba(127,127,127,.25);margin-left:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle[data-v-a563487c],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-a563487c]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-a563487c]{padding:0;opacity:.7;font-size:var(--default-font-size)}.app-sidebar .app-sidebar-header__description[data-v-a563487c]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width: 512px){.app-sidebar[data-v-a563487c]{width:100vw}}.slide-right-leave-active[data-v-a563487c],.slide-right-enter-active[data-v-a563487c]{transition-duration:var(--animation-quick);transition-property:max-width,min-width}.slide-right-enter-to[data-v-a563487c],.slide-right-leave[data-v-a563487c]{min-width:300px;max-width:500px}.slide-right-enter[data-v-a563487c],.slide-right-leave-to[data-v-a563487c]{min-width:0 !important;max-width:0 !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebar/NcAppSidebar.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCYD,8BACC,uBAAA,CACA,eAAA,CACA,YAAA,CACA,wBAAA,CACA,OAAA,CACA,YAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,aAAA,CACA,UAAA,CACA,eA9BmB,CA+BnB,eA9BmB,CA+BnB,WAAA,CACA,yCAAA,CACA,uCAAA,CAGC,sEACC,iBAAA,CACA,WAAA,CACA,OA5BmB,CA6BnB,SA7BmB,CA8BnB,UCnBc,CDoBd,WCpBc,CDqBd,UCHc,CDId,kBAAA,CACA,qOAGC,SCPW,CDQX,sCCJsB,CDUvB,qHACC,kBAAA,CAEA,iJACC,SAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,aAAA,CAED,+IACC,cAAA,CACA,aAAA,CACA,WAAA,CACA,kBAAA,CACA,gBApE2B,CAsE3B,yLACC,kBAAA,CAGD,qLACC,SAAA,CACA,iBAAA,CACA,OAAA,CACA,UAAA,CACA,KAAA,CAED,yKACC,OA1EgB,CA2EhB,UAAA,CACA,8BAAA,CACA,iBAAA,CASH,kHACC,iBAAA,CACA,OAxFkB,CAyFlB,UAAA,CAGD,kHACC,kBAAA,CAEA,4JACC,kBAAA,CAMH,4EACC,YAAA,CACA,qBAAA,CAID,0DACC,UAAA,CACA,YAAA,CACA,gBAAA,CACA,2BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uEACC,cAAA,CAKF,wDACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,kBAAA,CACA,yBAAA,CACA,SAAA,CAGA,8EACC,gBAAA,CAGD,2NAEC,eAAA,CACA,kBAAA,CAGD,+GACC,eAAA,CAGD,8FACC,YAAA,CACA,WCxIa,CDyIb,UCzIa,CD0Ib,sBAAA,CACA,aAAA,CAEA,wHAEC,eAAA,CACA,8HACC,eAAA,CACA,8CAAA,CAMH,6FACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CAEA,sIACC,YAAA,CACA,kBAAA,CACA,eClKY,CDqKZ,qKACC,SAAA,CACA,eAAA,CACA,cAAA,CACA,gBAxLc,CA2Ld,gLACC,cAAA,CACA,yBAAA,CACA,QAAA,CAIF,0KACC,YAAA,CACA,aAAA,CACA,kBAAA,CAEA,oNACC,aAAA,CACA,QAAA,CACA,WA7Mc,CA8Md,cAAA,CACA,gBAAA,CAKF,gKACC,WCnMW,CDoMX,UCpMW,CDqMX,kBAAA,CACA,sCC/KoB,CDgLpB,eAAA,CAKF,uPAEC,eAAA,CACA,UAAA,CACA,QAAA,CACA,kBAAA,CACA,sBAAA,CAID,2HACC,SAAA,CACA,UCtMY,CDuMZ,kCAAA,CAMH,+DACC,YAAA,CACA,kBAAA,CACA,aAAA,CAMH,0CACC,8BACC,WAAA,CAAA,CAIF,sFAEC,0CAAA,CACA,uCAAA,CAGD,2EAEC,eA7QmB,CA8QnB,eA7QmB,CAgRpB,2EAEC,sBAAA,CACA,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n$sidebar-min-width: 300px;\\n$sidebar-max-width: 500px;\\n\\n$desc-vertical-padding: 18px;\\n$desc-vertical-padding-compact: 10px;\\n$desc-input-padding: 7px;\\n\\n// title and subtitle\\n$desc-title-height: 30px;\\n$desc-subtitle-height: 22px;\\n$desc-height: $desc-title-height + $desc-subtitle-height;\\n\\n$top-buttons-spacing: 6px;\\n\\n/*\\n\\tSidebar: to be used within #content\\n\\tapp-content will be shrinked properly\\n*/\\n.app-sidebar {\\n\\tposition: -webkit-sticky; // Safari support\\n\\tposition: sticky;\\n\\tz-index: 1500;\\n\\ttop: var(--header-height);\\n\\tright: 0;\\n\\tdisplay: flex;\\n\\toverflow-x: hidden;\\n\\toverflow-y: auto;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\twidth: 27vw;\\n\\tmin-width: $sidebar-min-width;\\n\\tmax-width: $sidebar-max-width;\\n\\theight: 100%;\\n\\tborder-left: 1px solid var(--color-border);\\n\\tbackground: var(--color-main-background);\\n\\n\\t.app-sidebar-header {\\n\\t\\t> .app-sidebar__close {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 100;\\n\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\tright: $top-buttons-spacing;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:active,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tbackground-color: $action-background-hover;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Compact mode only affects a sidebar with a figure\\n\\t\\t&--compact.app-sidebar-header--with-figure {\\n\\t\\t\\t.app-sidebar-header__info {\\n\\t\\t\\t\\tflex-direction: row;\\n\\n\\t\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\t\\tz-index: 2;\\n\\t\\t\\t\\t\\twidth: $desc-height + $desc-vertical-padding;\\n\\t\\t\\t\\t\\theight: $desc-height + $desc-vertical-padding;\\n\\t\\t\\t\\t\\tmargin: math.div($desc-vertical-padding, 2);\\n\\t\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.app-sidebar-header__desc {\\n\\t\\t\\t\\t\\tpadding-left: 0;\\n\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\t\\tpadding-right: 2 * $clickable-area + $top-buttons-spacing;\\n\\t\\t\\t\\t\\tpadding-top: $desc-vertical-padding-compact;\\n\\n\\t\\t\\t\\t\\t&.app-sidebar-header__desc--without-actions {\\n\\t\\t\\t\\t\\t\\tpadding-right: #{$clickable-area + $top-buttons-spacing};\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t.app-sidebar-header__tertiary-actions {\\n\\t\\t\\t\\t\\t\\tz-index: 3; // above star\\n\\t\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\t\\ttop: math.div($desc-vertical-padding, 2);\\n\\t\\t\\t\\t\\t\\tleft: -1 * $clickable-area;\\n\\t\\t\\t\\t\\t\\tgap: 0; // override gap\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\t\\t\\t\\tright: $clickable-area + $top-buttons-spacing; // left of the close button\\n\\t\\t\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// sidebar without figure\\n\\t\\t&:not(.app-sidebar-header--with-figure) {\\n\\t\\t\\t// align the menu with the close button\\n\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\t\\tright: $top-buttons-spacing + $clickable-area;\\n\\t\\t\\t}\\n\\t\\t\\t// increase the padding to not overlap the menu\\n\\t\\t\\t.app-sidebar-header__desc {\\n\\t\\t\\t\\tpadding-right: #{$clickable-area * 2 + $top-buttons-spacing};\\n\\n\\t\\t\\t\\t&.app-sidebar-header__desc--without-actions {\\n\\t\\t\\t\\t\\tpadding-right: #{$clickable-area + $top-buttons-spacing};\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// the container with the figure and the description\\n\\t\\t.app-sidebar-header__info {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t// header background\\n\\t\\t&__figure {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 250px;\\n\\t\\t\\tmax-height: 250px;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t&--with-action {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// description\\n\\t\\t&__desc {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: #{$desc-vertical-padding} #{$top-buttons-spacing} #{$desc-vertical-padding} #{math.div($desc-vertical-padding, 2)};\\n\\t\\t\\tgap: 0 4px;\\n\\n\\t\\t\\t// custom overrides\\n\\t\\t\\t&--with-tertiary-action {\\n\\t\\t\\t\\tpadding-left: 6px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--editable .app-sidebar-header__maintitle-form,\\n\\t\\t\\t&--with-subtitle--editable .app-sidebar-header__maintitle-form {\\n\\t\\t\\t\\tmargin-top: -2px;\\n\\t\\t\\t\\tmargin-bottom: -2px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--with-subtitle--editable .app-sidebar-header__subtitle {\\n\\t\\t\\t\\tmargin-top: -2px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.app-sidebar-header__tertiary-actions {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tflex: 0 0 auto;\\n\\n\\t\\t\\t\\t.app-sidebar-header__star {\\n\\t\\t\\t\\t\\t// Override default Button component styles\\n\\t\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// titles\\n\\t\\t\\t.app-sidebar-header__title-container {\\n\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tmin-width: 0;\\n\\n\\t\\t\\t\\t.app-sidebar-header__maintitle-container {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t\\tmin-height: $clickable-area;\\n\\n\\t\\t\\t\\t\\t// main title\\n\\t\\t\\t\\t\\t.app-sidebar-header__maintitle {\\n\\t\\t\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t\\t\\t\\tmin-height: 30px;\\n\\t\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t\\t\\tline-height: $desc-title-height;\\n\\n\\t\\t\\t\\t\\t\\t// Needs 'deep' as the link is generated by the linkify directive\\n\\t\\t\\t\\t\\t\\t&:deep(.linkified) {\\n\\t\\t\\t\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t.app-sidebar-header__maintitle-form {\\n\\t\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t\\t\\t\\tinput.app-sidebar-header__maintitle-input {\\n\\t\\t\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\t\\t\\tpadding: $desc-input-padding;\\n\\t\\t\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t// main menu\\n\\t\\t\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t\\t\\t\\tbackground-color: $action-background-hover;\\n\\t\\t\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// shared between main and subtitle\\n\\t\\t\\t\\t.app-sidebar-header__maintitle,\\n\\t\\t\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// subtitle\\n\\t\\t\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// sidebar description slot\\n\\t\\t&__description {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmargin: 0 10px;\\n\\t\\t}\\n\\t}\\n}\\n\\n// Make the sidebar full-width on small screens\\n@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\\n\\t.app-sidebar {\\n\\t\\twidth: 100vw;\\n\\t}\\n}\\n\\n.slide-right-leave-active,\\n.slide-right-enter-active {\\n\\ttransition-duration: var(--animation-quick);\\n\\ttransition-property: max-width, min-width;\\n}\\n\\n.slide-right-enter-to,\\n.slide-right-leave {\\n\\tmin-width: $sidebar-min-width;\\n\\tmax-width: $sidebar-max-width;\\n}\\n\\n.slide-right-enter,\\n.slide-right-leave-to {\\n\\tmin-width: 0 !important;\\n\\tmax-width: 0 !important;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},269:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-header__description button,.app-sidebar-header__description .button,.app-sidebar-header__description input[type=button],.app-sidebar-header__description input[type=submit],.app-sidebar-header__description input[type=reset]{padding:6px 22px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebar/NcAppSidebar.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCHA,4OAIC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n// ! slots specific designs, cannot be scoped\\n// if any button inside the description slot, increase visual padding\\n.app-sidebar-header__description {\\n\\tbutton, .button,\\n\\tinput[type='button'],\\n\\tinput[type='submit'],\\n\\tinput[type='reset'] {\\n\\t\\tpadding: 6px 22px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},1091:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-7339f406]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-7339f406]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-7339f406]{margin-top:10px}.app-sidebar-tabs__nav ul[data-v-7339f406]{display:flex;justify-content:stretch}.app-sidebar-tabs__tab[data-v-7339f406]{display:block;flex:1 1;min-width:0;text-align:center}.app-sidebar-tabs__tab a[data-v-7339f406]{position:relative;display:block;overflow:hidden;padding:25px 5px 5px 5px;transition:color var(--animation-quick),opacity var(--animation-quick),border-color var(--animation-quick);text-align:center;white-space:nowrap;text-overflow:ellipsis;opacity:.7;color:var(--color-main-text);border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__tab a[data-v-7339f406]:hover,.app-sidebar-tabs__tab a[data-v-7339f406]:focus,.app-sidebar-tabs__tab a[data-v-7339f406]:active,.app-sidebar-tabs__tab a.active[data-v-7339f406]{opacity:1}.app-sidebar-tabs__tab a:hover .app-sidebar-tabs__tab-icon[data-v-7339f406],.app-sidebar-tabs__tab a:focus .app-sidebar-tabs__tab-icon[data-v-7339f406],.app-sidebar-tabs__tab a:active .app-sidebar-tabs__tab-icon[data-v-7339f406],.app-sidebar-tabs__tab a.active .app-sidebar-tabs__tab-icon[data-v-7339f406]{opacity:1}.app-sidebar-tabs__tab a[data-v-7339f406]:not(.active):hover,.app-sidebar-tabs__tab a[data-v-7339f406]:not(.active):focus{border-bottom-color:var(--color-background-darker);box-shadow:inset 0 -1px 0 var(--color-background-darker)}.app-sidebar-tabs__tab a.active[data-v-7339f406]{color:var(--color-text-light);border-bottom-color:var(--color-text-light);box-shadow:inset 0 -1px 0 var(--color-text-light);font-weight:bold}.app-sidebar-tabs__tab a[data-v-7339f406]:focus{border-bottom-color:var(--color-primary-element);box-shadow:inset 0 -1px 0 var(--color-primary-element)}.app-sidebar-tabs__tab-icon[data-v-7339f406]{position:absolute;top:0;left:0;width:100%;height:25px;transition:opacity var(--animation-quick);opacity:.7}.app-sidebar-tabs__tab-icon>span[data-v-7339f406]{display:flex;align-items:center;justify-content:center;background-size:16px}.app-sidebar-tabs__content[data-v-7339f406]{position:relative;min-height:0;height:100%}.app-sidebar-tabs__content--multiple[data-v-7339f406]>:not(section){display:none}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebar/NcAppSidebarTabs.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,qBAAA,CACA,YAAA,CACA,aAAA,CAEA,wCACC,eAAA,CACA,2CACC,YAAA,CACA,uBAAA,CAGF,wCACC,aAAA,CACA,QAAA,CACA,WAAA,CACA,iBAAA,CACA,0CACC,iBAAA,CACA,aAAA,CACA,eAAA,CACA,wBAAA,CACA,0GAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UCcc,CDbd,4BAAA,CACA,2CAAA,CAEA,kMAIC,SCOW,CDNX,kTACC,SCKU,CDFZ,0HAEC,kDAAA,CACA,wDAAA,CAED,iDACC,6BAAA,CACA,2CAAA,CACA,iDAAA,CACA,gBAAA,CAKD,gDACC,gDAAA,CACA,sDAAA,CAKH,6CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,yCAAA,CACA,UC3Be,CD6Bf,kDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CAIF,4CACC,iBAAA,CAEA,YAAA,CACA,WAAA,CAGA,oEACC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-sidebar-tabs {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmin-height: 0;\\n\\tflex: 1 1 100%;\\n\\n\\t&__nav {\\n\\t\\tmargin-top: 10px;\\n\\t\\tul {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: stretch;\\n\\t\\t}\\n\\t}\\n\\t&__tab {\\n\\t\\tdisplay: block;\\n\\t\\tflex: 1 1;\\n\\t\\tmin-width: 0;\\n\\t\\ttext-align: center;\\n\\t\\ta {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tpadding: 25px 5px 5px 5px;\\n\\t\\t\\ttransition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active,\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t.app-sidebar-tabs__tab-icon {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&:not(.active):hover,\\n\\t\\t\\t&:not(.active):focus {\\n\\t\\t\\t\\tborder-bottom-color: var(--color-background-darker);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-background-darker);\\n\\t\\t\\t}\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\t\\tborder-bottom-color: var(--color-text-light);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-text-light);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t// differentiate the two for accessibility purpose\\n\\t\\t\\t// make sure the user knows she's focusing the navigation\\n\\t\\t\\t// and can use arrows/home/pageup...\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tborder-bottom-color: var(--color-primary-element);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__tab-icon {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\twidth: 100%;\\n\\t\\theight: 25px;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t& > span {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__content {\\n\\t\\tposition: relative;\\n\\t\\t// take full available height\\n\\t\\tmin-height: 0;\\n\\t\\theight: 100%;\\n\\t\\t// force the use of the tab component if more than one tab\\n\\t\\t// you can just put raw content if you don't use tabs\\n\\t\\t&--multiple > :not(section) {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},9957:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-268dd44a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-268dd44a]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-268dd44a]:focus{border-color:var(--color-primary);box-shadow:0 0 .2em var(--color-primary);outline:0}.app-sidebar__tab--active[data-v-268dd44a]{display:block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAppSidebarTab/NcAppSidebarTab.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,YAAA,CACA,eAAA,CACA,eAAA,CACA,WAAA,CACA,aAAA,CAEA,yCACC,iCAAA,CACA,wCAAA,CACA,SAAA,CAGD,2CACC,aAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.app-sidebar__tab {\\n\\tdisplay: none;\\n\\tpadding: 10px;\\n\\tmin-height: 100%; // fill available height\\n\\tmax-height: 100%; // scroll inside\\n\\theight: 100%;\\n\\toverflow: auto;\\n\\n\\t&:focus {\\n\\t\\tborder-color: var(--color-primary);\\n\\t\\tbox-shadow: 0 0 0.2em var(--color-primary);\\n\\t\\toutline: 0;\\n\\t}\\n\\n\\t&--active {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},6666:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(3423),n.b),c=new URL(n(2605),n.b),d=new URL(n(7127),n.b),u=o()(i()),p=l()(A),m=l()(c),h=l()(d);u.push([t.id,\".material-design-icon[data-v-09226ec4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-09226ec4]{position:relative;display:inline-block;width:var(--size);height:var(--size)}.avatardiv--unknown[data-v-09226ec4]{position:relative;background-color:var(--color-main-background)}.avatardiv[data-v-09226ec4]:not(.avatardiv--unknown){background-color:var(--color-main-background) !important;box-shadow:0 0 5px rgba(0,0,0,.05) inset}.avatardiv--with-menu[data-v-09226ec4]{cursor:pointer}.avatardiv--with-menu[data-v-09226ec4] .v-popper{position:absolute;top:0;left:0}.avatardiv--with-menu .icon-more[data-v-09226ec4]{cursor:pointer;opacity:0}.avatardiv--with-menu:focus .icon-more[data-v-09226ec4],.avatardiv--with-menu:hover .icon-more[data-v-09226ec4]{opacity:1}.avatardiv--with-menu:focus img[data-v-09226ec4],.avatardiv--with-menu:hover img[data-v-09226ec4]{opacity:.3}.avatardiv--with-menu .icon-more[data-v-09226ec4],.avatardiv--with-menu img[data-v-09226ec4]{transition:opacity var(--animation-quick)}.avatardiv .avatardiv__initials-wrapper[data-v-09226ec4]{height:var(--size);width:var(--size);background-color:var(--color-main-background);border-radius:50%}.avatardiv .avatardiv__initials-wrapper .unknown[data-v-09226ec4]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal}.avatardiv img[data-v-09226ec4]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-09226ec4]{width:var(--size);height:var(--size)}.avatardiv .avatardiv__user-status[data-v-09226ec4]{position:absolute;right:-4px;bottom:-4px;max-height:18px;max-width:18px;height:40%;width:40%;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);background-repeat:no-repeat;background-size:16px;background-position:center;border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-09226ec4]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-09226ec4]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-09226ec4]{background-image:url(\"+p+\")}.avatardiv .avatardiv__user-status--dnd[data-v-09226ec4]{background-image:url(\"+m+\");background-color:#fff}.avatardiv .avatardiv__user-status--away[data-v-09226ec4]{background-image:url(\"+h+\")}.avatardiv .avatardiv__user-status--icon[data-v-09226ec4]{border:none;background-color:rgba(0,0,0,0)}.avatardiv .popovermenu-wrapper[data-v-09226ec4]{position:relative;display:inline-block}.avatar-class-icon[data-v-09226ec4]{border-radius:50%;background-color:var(--color-background-darker);height:100%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcAvatar/NcAvatar.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,4BACC,iBAAA,CACA,oBAAA,CACA,iBAAA,CACA,kBAAA,CAEA,qCACC,iBAAA,CACA,6CAAA,CAGD,qDAEC,wDAAA,CACA,wCAAA,CAGD,uCACC,cAAA,CACA,iDACC,iBAAA,CACA,KAAA,CACA,MAAA,CAED,kDACC,cAAA,CACA,SAAA,CAIA,gHACC,SAAA,CAED,kGACC,UAAA,CAGF,6FAEC,yCAAA,CAIF,yDACC,kBAAA,CACA,iBAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kEACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,iBAAA,CACA,kBAAA,CAIF,gCAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CAGD,kDACC,iBAAA,CACA,kBAAA,CAGD,oDACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,cAAA,CACA,UAAA,CACA,SAAA,CACA,gBAAA,CACA,kCAAA,CACA,6CAAA,CACA,6CAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CACA,iBAAA,CAEA,gEACC,0CAAA,CACA,8CAAA,CAED,iEACC,uCAAA,CACA,2CAAA,CAGD,4DACC,wDAAA,CAED,yDACC,wDAAA,CACA,qBAAA,CAED,0DACC,wDAAA,CAED,0DACC,WAAA,CACA,8BAAA,CAIF,iDACC,iBAAA,CACA,oBAAA,CAIF,oCACC,iBAAA,CACA,+CAAA,CACA,WAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.avatardiv {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\twidth: var(--size);\\n\\theight: var(--size);\\n\\n\\t&--unknown {\\n\\t\\tposition: relative;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t&:not(&--unknown) {\\n\\t\\t// White/black background for avatars with transparency\\n\\t\\tbackground-color: var(--color-main-background) !important;\\n\\t\\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\\n\\t}\\n\\n\\t&--with-menu {\\n\\t\\tcursor: pointer;\\n\\t\\t:deep(.v-popper) {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t}\\n\\t\\t.icon-more {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\t.icon-more {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t\\timg {\\n\\t\\t\\t\\topacity: 0.3;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.icon-more,\\n\\t\\timg {\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t}\\n\\t}\\n\\n\\t.avatardiv__initials-wrapper {\\n\\t\\theight: var(--size);\\n\\t\\twidth: var(--size);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.unknown {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t}\\n\\t}\\n\\n\\timg {\\n\\t\\t// Cover entire area\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\t// Keep ratio\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t.material-design-icon {\\n\\t\\twidth: var(--size);\\n\\t\\theight: var(--size);\\n\\t}\\n\\n\\t.avatardiv__user-status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\tmax-height: 18px;\\n\\t\\tmax-width: 18px;\\n\\t\\theight: 40%;\\n\\t\\twidth: 40%;\\n\\t\\tline-height: 15px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-size: 16px;\\n\\t\\tbackground-position: center;\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.acli:hover & {\\n\\t\\t\\tborder-color: var(--color-background-hover);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t.acli.active & {\\n\\t\\t\\tborder-color: var(--color-primary-light);\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\n\\t\\t&--online{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-online.svg');\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-dnd.svg');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-away.svg');\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t.popovermenu-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n}\\n\\n.avatar-class-icon {\\n\\tborder-radius: 50%;\\n\\tbackground-color: var(--color-background-darker);\\n\\theight: 100%;\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=u},4327:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-1519484b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-crumb[data-v-1519484b]{background-image:none;display:inline-flex;height:44px;padding:0}.vue-crumb[data-v-1519484b]:last-child{max-width:210px;font-weight:bold}.vue-crumb:last-child>a[data-v-1519484b],.vue-crumb:last-child>a[data-v-1519484b] *{cursor:default}.vue-crumb:last-child .vue-crumb__separator[data-v-1519484b]{display:none}.vue-crumb:not(:last-child)>a[data-v-1519484b]:hover,.vue-crumb:not(:last-child)>a[data-v-1519484b]:focus{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb--hidden[data-v-1519484b]{display:none}.vue-crumb.vue-crumb--hovered>a[data-v-1519484b]{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb__separator[data-v-1519484b]{padding:0;color:var(--color-text-maxcontrast)}.vue-crumb>a[data-v-1519484b]{overflow:hidden;color:var(--color-text-maxcontrast);padding:12px;max-width:100%;border-radius:var(--border-radius-pill);align-items:center;display:inline-flex}.vue-crumb>a>span[data-v-1519484b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item{max-width:100%}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item .button-vue{padding:0 4px 0 16px}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item .button-vue__wrapper{flex-direction:row-reverse}.vue-crumb[data-v-1519484b]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-background-dark);color:var(--color-main-text)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcBreadcrumb/NcBreadcrumb.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,4BACC,qBAAA,CACA,mBAAA,CACA,WCmBgB,CDlBhB,SAAA,CAEA,uCACC,eAAA,CACA,gBAAA,CAEA,oFAEC,cAAA,CAID,6DACC,YAAA,CAMD,0GAEC,6CAAA,CACA,4BAAA,CAIF,oCACC,YAAA,CAGD,iDACC,6CAAA,CACA,4BAAA,CAGD,uCACC,SAAA,CACA,mCAAA,CAGD,8BACC,eAAA,CACA,mCAAA,CACA,YAAA,CACA,cAAA,CACA,uCAAA,CACA,kBAAA,CACA,mBAAA,CAEA,mCACC,eAAA,CACA,sBAAA,CACA,kBAAA,CAMF,wDAEC,cAAA,CAEA,oEACC,oBAAA,CAEA,6EACC,0BAAA,CAKF,mGACC,6CAAA,CACA,4BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.vue-crumb {\\n\\tbackground-image: none;\\n\\tdisplay: inline-flex;\\n\\theight: $clickable-area;\\n\\tpadding: 0;\\n\\n\\t&:last-child {\\n\\t\\tmax-width: 210px;\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t> a,\\n\\t\\t> a:deep(*) {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\n\\t\\t// Don't show breadcrumb separator for last crumb\\n\\t\\t.vue-crumb__separator {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// Hover and focus effect for crumbs, but not the last one\\n\\t&:not(:last-child) > a {\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n\\n\\t&--hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&#{&}--hovered > a {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n\\n\\t&__separator {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t> a {\\n\\t\\toverflow: hidden;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding: 12px;\\n\\t\\tmax-width: 100%;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\talign-items: center;\\n\\t\\tdisplay: inline-flex;\\n\\n\\t\\t> span {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\t}\\n\\n\\t// Adjust action item appearance for crumbs with actions\\n\\t// to match other crumbs\\n\\t&:not(.dropdown) :deep(.action-item) {\\n\\t\\t// Adjustments necessary to correctly shrink on small screens\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t.button-vue {\\n\\t\\t\\tpadding: 0 4px 0 16px;\\n\\n\\t\\t\\t&__wrapper {\\n\\t\\t\\t\\tflex-direction: row-reverse;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Adjust the background of the last crumb when the action is open\\n\\t\\t&.action-item--open .action-item__menutoggle {\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},9656:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-2b60ed1a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.breadcrumb[data-v-2b60ed1a]{width:100%;flex-grow:1;display:inline-flex}.breadcrumb--collapsed .vue-crumb[data-v-2b60ed1a]:last-child{min-width:100px;flex-shrink:1}.breadcrumb .breadcrumb__crumbs[data-v-2b60ed1a]{flex-shrink:1;max-width:100%;min-width:228px}.breadcrumb .breadcrumb__crumbs[data-v-2b60ed1a],.breadcrumb .breadcrumb__actions[data-v-2b60ed1a]{display:inline-flex}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcBreadcrumbs/NcBreadcrumbs.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6BACC,UAAA,CACA,WAAA,CACA,mBAAA,CAEA,8DACC,eAAA,CACA,aAAA,CAGD,iDACC,aAAA,CACA,cAAA,CAKA,eAAA,CAGD,mGAEC,mBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.breadcrumb {\\n\\twidth: 100%;\\n\\tflex-grow: 1;\\n\\tdisplay: inline-flex;\\n\\n\\t&--collapsed .vue-crumb:last-child {\\n\\t\\tmin-width: 100px;\\n\\t\\tflex-shrink: 1;\\n\\t}\\n\\n\\t& #{&}__crumbs {\\n\\t\\tflex-shrink: 1;\\n\\t\\tmax-width: 100%;\\n\\t\\t/**\\n\\t\\t * This value is given by the min-width of the last crumb (100px) plus\\n\\t\\t * two times the width of a crumb with an icon (first crumb and hidden crumbs actions).\\n\\t\\t */\\n\\t\\tmin-width: 228px;\\n\\t}\\n\\n\\t& #{&}__crumbs,\\n\\t& #{&}__actions {\\n\\t\\tdisplay: inline-flex;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},7190:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-7a8f3349]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-7a8f3349]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color .1s linear !important;transition:border .1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-7a8f3349]{cursor:pointer}.button-vue[data-v-7a8f3349]:focus{outline:none}.button-vue[data-v-7a8f3349]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-7a8f3349]{cursor:default}.button-vue[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-light-hover)}.button-vue[data-v-7a8f3349]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-7a8f3349]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-7a8f3349]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-7a8f3349]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-7a8f3349]{width:44px !important}.button-vue--text-only[data-v-7a8f3349]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-7a8f3349]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-7a8f3349]{padding:0 16px 0 4px}.button-vue--wide[data-v-7a8f3349]{width:100%}.button-vue[data-v-7a8f3349]:focus-visible{outline:2px solid var(--color-main-text) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{outline:2px solid var(--color-primary-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-7a8f3349]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-7a8f3349]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-7a8f3349]{color:var(--color-primary-light-text);background-color:var(--color-primary-light)}.button-vue--vue-secondary[data-v-7a8f3349]:hover:not(:disabled){color:var(--color-primary-light-text);background-color:var(--color-primary-light-hover)}.button-vue--vue-tertiary[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{color:var(--color-primary-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-7a8f3349]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-7a8f3349]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-7a8f3349]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-7a8f3349]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-7a8f3349]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-7a8f3349]:active{background-color:var(--color-error)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcButton/NcButton.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,kCAAA,CACA,gBAAA,CACA,eCcgB,CDbhB,cCagB,CDZhB,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,cAAA,CAIA,kBAAA,CACA,iDAAA,CACA,4BAAA,CAkBA,qDAAA,CACA,qCAAA,CAxBA,+BACC,cAAA,CAOD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCMiB,CDJjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,iDAAA,CAKD,oCACC,qDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,4BAAA,CAGD,mCACC,WCpCe,CDqCf,UCrCe,CDsCf,eCtCe,CDuCf,cCvCe,CDwCf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,+EACC,2CAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,+BAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,qCAAA,CACA,2CAAA,CACA,iEACC,qCAAA,CACA,iDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,+BAAA,CACA,8BAAA,CAEA,2EACC,8BAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,wCACC,mCAAA,CACA,UAAA,CACA,6DACC,yCAAA,CAID,+CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: math.div($clickable-area, 2);\\n\\ttransition: background-color 0.1s linear !important;\\n\\ttransition: border 0.1s linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t// Gives a wash out effect\\n\\t\\tfilter: saturate($opacity_normal);\\n\\t}\\n\\n\\t// Default button type\\n\\tbackground-color: var(--color-primary-element-lighter);\\n\\tcolor: var(--color-primary-light-text);\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t}\\n\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-lighter);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-around;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding: 0 16px 0 4px;\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t&.button-vue--vue-tertiary-on-primary {\\n\\t\\t\\toutline: 2px solid var(--color-primary-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-primary-light-text);\\n\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tcolor: var(--color-primary-light-text);\\n\\t\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary, no background\\n\\t&--vue-tertiary-no-background {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary on primary color (like the header)\\n\\t&--vue-tertiary-on-primary {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: transparent;\\n\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},556:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-2b31639e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-2b31639e]{display:flex}.checkbox-radio-switch__input[data-v-2b31639e]{position:absolute;z-index:-1;opacity:0 !important;width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch__label[data-v-2b31639e]{display:flex;position:relative;align-items:center;user-select:none;height:44px;border-radius:44px;padding:0 14px;margin:0 -14px}.checkbox-radio-switch__label[data-v-2b31639e],.checkbox-radio-switch__label *[data-v-2b31639e]{cursor:pointer}.checkbox-radio-switch__icon[data-v-2b31639e]{margin-right:4px;margin-left:-2px;color:var(--color-primary-element);width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch--disabled .checkbox-radio-switch__label[data-v-2b31639e]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__label .checkbox-radio-switch__icon[data-v-2b31639e]{color:var(--color-text-light)}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__label[data-v-2b31639e]:hover,.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__label[data-v-2b31639e]:focus-within{background-color:var(--color-primary-light)}.checkbox-radio-switch-switch:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon[data-v-2b31639e]{color:var(--color-text-lighter)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked .checkbox-radio-switch__icon[data-v-2b31639e]{color:var(--color-primary-element-light)}.checkbox-radio-switch--button-variant .checkbox-radio-switch__label[data-v-2b31639e]{border-radius:0;width:100%;margin:0}.checkbox-radio-switch--button-variant[data-v-2b31639e]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped){border-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped[data-v-2b31639e]:first-of-type{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped[data-v-2b31639e]:last-of-type{border-bottom-left-radius:var(--border-radius-large);border-bottom-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-v-grouped+.checkbox-radio-switch--button-variant-v-grouped[data-v-2b31639e]:not(.checkbox-radio-switch--button-variant-v-grouped.checkbox-radio-switch--checked){border-top:0}.checkbox-radio-switch--button-variant-v-grouped+.checkbox-radio-switch--button-variant-v-grouped.checkbox-radio-switch--checked[data-v-2b31639e]{margin-top:-2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-2b31639e]:first-of-type{border-top-left-radius:var(--border-radius-large);border-bottom-left-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-h-grouped[data-v-2b31639e]:last-of-type{border-top-right-radius:var(--border-radius-large);border-bottom-right-radius:var(--border-radius-large)}.checkbox-radio-switch--button-variant-h-grouped+.checkbox-radio-switch--button-variant-h-grouped[data-v-2b31639e]:not(.checkbox-radio-switch--button-variant-h-grouped.checkbox-radio-switch--checked){border-left:0}.checkbox-radio-switch--button-variant-h-grouped+.checkbox-radio-switch--button-variant-h-grouped.checkbox-radio-switch--checked[data-v-2b31639e]{margin-left:-2px}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-2b31639e]{border:2px solid var(--color-border-dark);overflow:hidden}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-2b31639e]{font-weight:bold;border:2px solid var(--color-primary-element-light)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-2b31639e]:hover{border:2px solid var(--color-primary)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked label[data-v-2b31639e]{background-color:var(--color-background-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,wCACC,YAAA,CAEA,+CACC,iBAAA,CACA,UAAA,CACA,oBAAA,CACA,sBAAA,CACA,uBAAA,CAGD,+CACC,YAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBAAA,CACA,WCKe,CDJf,kBCIe,CDHf,cAAA,CACA,cAAA,CAEA,gGACC,cAAA,CAIF,8CACC,gBA7BQ,CA+BR,gBAAA,CACA,kCAAA,CACA,sBAAA,CACA,uBAAA,CAGD,gFACC,UCEiB,CDDjB,6GACC,6BAAA,CAIF,2OAEC,2CAAA,CAID,iHACC,+BAAA,CAID,2IACC,wCAAA,CAGD,sFACC,eAAA,CACA,UAAA,CACA,QAAA,CAGD,oKACC,wCAAA,CAIA,gFACC,iDAAA,CACA,kDAAA,CAED,+EACC,oDAAA,CACA,qDAAA,CAID,wMACC,YAAA,CAED,kJAGC,eAAA,CAKD,gFACC,iDAAA,CACA,oDAAA,CAED,+EACC,kDAAA,CACA,qDAAA,CAID,wMACC,aAAA,CAED,kJAGC,gBAAA,CAIF,8EACC,yCAAA,CAEA,eAAA,CAEA,uFACC,gBAAA,CACA,mDAAA,CAEA,6FACC,qCAAA,CAGD,6FACC,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n$spacing: 4px;\\n\\n.checkbox-radio-switch {\\n\\tdisplay: flex;\\n\\n\\t&__input {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\topacity: 0 !important; // We need !important, or it gets overwritten by server style\\n\\t\\twidth: var(--icon-size);\\n\\t\\theight: var(--icon-size);\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: relative;\\n\\t\\talign-items: center;\\n\\t\\tuser-select: none;\\n\\t\\theight: $clickable-area;\\n\\t\\tborder-radius: $clickable-area;\\n\\t\\tpadding: 0 $icon-margin;\\n\\t\\tmargin: 0 #{-$icon-margin};\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tmargin-right: $spacing;\\n\\t\\t// Remove the left margin of material design icons to align text\\n\\t\\tmargin-left: -2px;\\n\\t\\tcolor: var(--color-primary-element);\\n\\t\\twidth: var(--icon-size);\\n\\t\\theight: var(--icon-size);\\n\\t}\\n\\n\\t&--disabled &__label {\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\tcolor: var(--color-text-light)\\n\\t\\t}\\n\\t}\\n\\n\\t&:not(&--disabled) &__label:hover,\\n\\t&:not(&--disabled) &__label:focus-within {\\n\\t\\tbackground-color: var(--color-primary-light);\\n\\t}\\n\\n\\t// Switch specific rules\\n\\t&-switch:not(&--checked) &__icon {\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t}\\n\\n\\t// If switch is checked AND disabled, use the fade primary colour\\n\\t&-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked &__icon {\\n\\t\\tcolor: var(--color-primary-element-light);\\n\\t}\\n\\n\\t&--button-variant &__label {\\n\\t\\tborder-radius: 0;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&--button-variant:not(&--button-variant-v-grouped):not(&--button-variant-h-grouped) {\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--button-variant-v-grouped {\\n\\t\\t&:first-of-type {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius-large);\\n\\t\\t\\tborder-top-right-radius: var(--border-radius-large);\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\tborder-bottom-left-radius: var(--border-radius-large);\\n\\t\\t\\tborder-bottom-right-radius: var(--border-radius-large);\\n\\t\\t}\\n\\n\\t\\t// avoid double borders between elements\\n\\t\\t& + &:not(&.checkbox-radio-switch--checked) {\\n\\t\\t\\tborder-top: 0;\\n\\t\\t}\\n\\t\\t& + &.checkbox-radio-switch--checked {\\n\\t\\t\\t// as the selected element has all borders:\\n\\t\\t\\t// small trick to cover the previous bottom border (only if there is one)\\n\\t\\t\\tmargin-top: -2px;\\n\\t\\t}\\n\\t}\\n\\n\\t&--button-variant-h-grouped {\\n\\t\\t&:first-of-type {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius-large);\\n\\t\\t\\tborder-bottom-left-radius: var(--border-radius-large);\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\tborder-top-right-radius: var(--border-radius-large);\\n\\t\\t\\tborder-bottom-right-radius: var(--border-radius-large);\\n\\t\\t}\\n\\n\\t\\t// avoid double borders between elements\\n\\t\\t& + &:not(&.checkbox-radio-switch--checked) {\\n\\t\\t\\tborder-left: 0;\\n\\t\\t}\\n\\t\\t& + &.checkbox-radio-switch--checked {\\n\\t\\t\\t// as the selected element has all borders:\\n\\t\\t\\t// small trick to cover the previous bottom border (only if there is one)\\n\\t\\t\\tmargin-left: -2px;\\n\\t\\t}\\n\\t}\\n\\n\\t&--button-variant.checkbox-radio-switch {\\n\\t\\tborder: 2px solid var(--color-border-dark);\\n\\t\\t// better than setting border-radius on labels (producing a small gap)\\n\\t\\toverflow: hidden;\\n\\n\\t\\t&--checked {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tborder: 2px solid var(--color-primary-element-light);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder: 2px solid var(--color-primary);\\n\\t\\t\\t}\\n\\n\\t\\t\\tlabel {\\n\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},1596:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-52e63439]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.color-picker[data-v-52e63439]{display:flex;overflow:hidden;align-content:flex-end;flex-direction:column;justify-content:space-between;box-sizing:content-box !important;width:176px;padding:8px;border-radius:3px}.color-picker--advanced-fields[data-v-52e63439]{width:264px}.color-picker__simple[data-v-52e63439]{display:grid;grid-template-columns:repeat(auto-fit, 44px);grid-auto-rows:44px}.color-picker__simple-color-circle[data-v-52e63439]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;margin:auto;padding:0;color:#fff;border:none;border-radius:50%;font-size:16px}.color-picker__simple-color-circle[data-v-52e63439]:hover{opacity:.6}.color-picker__simple-color-circle--active[data-v-52e63439]{width:38px;height:38px;min-height:38px;transition:all 100ms ease-in-out;opacity:1 !important}.color-picker__advanced[data-v-52e63439]{box-shadow:none !important}.color-picker__navigation[data-v-52e63439]{display:flex;flex-direction:row;justify-content:space-between;margin-top:10px}.color-picker__navigation-button[data-v-52e63439]{display:flex;align-content:center;justify-content:center;min-width:44px;height:44px;padding:0;margin:0;border:none;border-radius:22px;background:none;justify-self:flex-end;opacity:.7}.color-picker__navigation-button[data-v-52e63439]:focus,.color-picker__navigation-button[data-v-52e63439]:hover{background-color:rgba(127,127,127,.25);opacity:1}.color-picker__navigation-button.confirm[data-v-52e63439]{display:flex;align-items:center;justify-content:center;padding:4px 8px;color:#fff !important;background-color:var(--color-primary)}.color-picker__navigation-button.confirm[data-v-52e63439]:hover{background-color:var(--color-primary-element-light)}.color-picker__navigation-button.more-settings[data-v-52e63439]{margin-left:auto}[data-v-52e63439] .vc-chrome{width:unset}[data-v-52e63439] .vc-chrome-color-wrap{width:30px;height:30px}[data-v-52e63439] .vc-chrome-active-color{width:34px;height:34px;border-radius:17px}[data-v-52e63439] .vc-chrome-body{padding:14px 0 0 0}[data-v-52e63439] .vc-chrome-saturation-wrap{border-radius:3px}[data-v-52e63439] .vc-chrome-saturation-circle{width:20px;height:20px}.slide-enter[data-v-52e63439]{transform:translateX(-50%);opacity:0}.slide-enter-to[data-v-52e63439]{transform:translateX(0);opacity:1}.slide-leave[data-v-52e63439]{transform:translateX(0);opacity:1}.slide-leave-to[data-v-52e63439]{transform:translateX(-50%);opacity:0}.slide-enter-active[data-v-52e63439],.slide-leave-active[data-v-52e63439]{transition:all 50ms ease-in-out}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcColorPicker/NcColorPicker.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,eAAA,CACA,sBAAA,CACA,qBAAA,CACA,6BAAA,CACA,iCAAA,CACA,WAAA,CACA,WAAA,CACA,iBAAA,CAEA,gDACC,WAAA,CAGD,uCACC,YAAA,CACA,4CAAA,CACA,mBCKe,CDHf,oDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,WAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,cAAA,CACA,0DACC,UAAA,CAED,4DACC,UAAA,CACA,WAAA,CACA,eAAA,CACA,gCAAA,CACA,oBAAA,CAKH,yCACC,0BAAA,CAGD,2CACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,eAAA,CACA,kDACC,YAAA,CACA,oBAAA,CACA,sBAAA,CACA,cCpCc,CDqCd,WCrCc,CDsCd,SAAA,CACA,QAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,qBAAA,CACA,UC1Bc,CD4Bd,gHAEC,sCCrCY,CDsCZ,SC9BW,CDiCZ,0DACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,qBAAA,CACA,qCAAA,CACA,gEACC,mDAAA,CAGF,gEACC,gBAAA,CAOH,8BACC,WAAA,CACA,yCACC,UAAA,CACA,WAAA,CAGD,2CACC,UAAA,CACA,WAAA,CACA,kBAAA,CAGD,mCACC,kBAAA,CAIA,8CACC,iBAAA,CAGD,gDACC,UAAA,CACA,WAAA,CAOH,8BACC,0BAAA,CACA,SAAA,CAED,iCACC,uBAAA,CACA,SAAA,CAED,8BACC,uBAAA,CACA,SAAA,CAED,iCACC,0BAAA,CACA,SAAA,CAED,0EAEC,+BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.color-picker {\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-content: flex-end;\\n\\tflex-direction: column;\\n\\tjustify-content: space-between;\\n\\tbox-sizing: content-box !important;\\n\\twidth: 176px;\\n\\tpadding: 8px;\\n\\tborder-radius: 3px;\\n\\n\\t&--advanced-fields {\\n\\t\\twidth: 264px;\\n\\t}\\n\\n\\t&__simple {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: repeat(auto-fit, $clickable-area);\\n\\t\\tgrid-auto-rows: $clickable-area;\\n\\n\\t\\t&-color-circle {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: 34px;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tmin-height: 34px;\\n\\t\\t\\tmargin: auto;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: white;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\topacity: .6;\\n\\t\\t\\t}\\n\\t\\t\\t&--active {\\n\\t\\t\\t\\twidth: 38px;\\n\\t\\t\\t\\theight: 38px;\\n\\t\\t\\t\\tmin-height: 38px;\\n\\t\\t\\t\\ttransition: all 100ms ease-in-out;\\n\\t\\t\\t\\topacity: 1 !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t&__navigation {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 10px;\\n\\t\\t&-button {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-content: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\tbackground: none;\\n\\t\\t\\tjustify-self: flex-end;\\n\\t\\t\\topacity: $opacity_normal;\\n\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground-color: $icon-focus-bg;\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.confirm {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tpadding: 4px 8px;\\n\\t\\t\\t\\tcolor: white !important;\\n\\t\\t\\t\\tbackground-color: var(--color-primary);\\n\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&.more-settings {\\n\\t\\t\\t\\tmargin-left: auto;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n:deep() .vc {\\n\\t&-chrome {\\n\\t\\twidth: unset;\\n\\t\\t&-color-wrap {\\n\\t\\t\\twidth: 30px;\\n\\t\\t\\theight: 30px;\\n\\t\\t}\\n\\n\\t\\t&-active-color {\\n\\t\\t\\twidth: 34px;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tborder-radius: 17px;\\n\\t\\t}\\n\\n\\t\\t&-body {\\n\\t\\t\\tpadding: 14px 0 0 0;\\n\\t\\t}\\n\\n\\t\\t&-saturation {\\n\\t\\t\\t&-wrap {\\n\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-circle {\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.slide {\\n\\t&-enter {\\n\\t\\ttransform: translateX(-50%);\\n\\t\\topacity: 0;\\n\\t}\\n\\t&-enter-to {\\n\\t\\ttransform: translateX(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\t&-leave {\\n\\t\\ttransform: translateX(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\t&-leave-to {\\n\\t\\ttransform: translateX(-50%);\\n\\t\\topacity: 0;\\n\\t}\\n\\t&-enter-active,\\n\\t&-leave-active {\\n\\t\\ttransition: all 50ms ease-in-out;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},7009:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-8feff292]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.content[data-v-8feff292]{box-sizing:border-box;margin:var(--body-container-margin);margin-top:50px;display:flex;width:calc(100% - var(--body-container-margin)*2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-8feff292]:not(.with-sidebar--full){position:fixed}.content[data-v-8feff292] *{box-sizing:border-box}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcContent/NcContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0BACC,qBAAA,CACA,mCAAA,CACA,eAAA,CACA,YAAA,CACA,iDAAA,CACA,0CAAA,CACA,yBAAA,CACA,eAAA,CACA,SAAA,CAEA,mDACC,cAAA,CAGD,4BACC,qBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.content {\\n\\tbox-sizing: border-box;\\n\\tmargin: var(--body-container-margin);\\n\\tmargin-top: 50px;\\n\\tdisplay: flex;\\n\\twidth: calc(100% - var(--body-container-margin) * 2);\\n\\tborder-radius: var(--body-container-radius);\\n\\theight: var(--body-height);\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\n\\t&:not(.with-sidebar--full) {\\n\\t\\tposition: fixed;\\n\\t}\\n\\n\\t:deep(*) {\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},2666:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-4a403ca7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.counter-bubble__counter[data-v-4a403ca7]{font-size:calc(var(--default-font-size)*.8);overflow:hidden;width:fit-content;max-width:44px;text-align:center;text-overflow:ellipsis;line-height:1em;padding:4px 6px;border-radius:var(--border-radius-pill);background-color:var(--color-primary-element-lighter, var(--color-primary-element-light));font-weight:bold;color:var(--color-primary-element)}.counter-bubble__counter--highlighted[data-v-4a403ca7]{color:var(--color-primary-text);background-color:var(--color-primary)}.counter-bubble__counter--outlined[data-v-4a403ca7]{color:var(--color-primary);background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcCounterBubble/NcCounterBubble.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,0CACC,2CAAA,CACA,eAAA,CACA,iBAAA,CACA,cCmBgB,CDlBhB,iBAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CACA,uCAAA,CAEA,yFAAA,CACA,gBAAA,CACA,kCAAA,CAEA,uDACC,+BAAA,CACA,qCAAA,CAGD,oDACC,0BAAA,CACA,wBAAA,CACA,0BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.counter-bubble__counter {\\n\\tfont-size: calc(var(--default-font-size) * .8);\\n\\toverflow: hidden;\\n\\twidth: fit-content;\\n\\tmax-width: $clickable-area;\\n\\ttext-align: center;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 1em;\\n\\tpadding: 4px 6px;\\n\\tborder-radius: var(--border-radius-pill);\\n\\t// since -lighter is not present in the new version it will only apply to the old one and -light for the newer\\n\\tbackground-color: var(--color-primary-element-lighter, var(--color-primary-element-light));\\n\\tfont-weight: bold;\\n\\tcolor: var(--color-primary-element);\\n\\n\\t&--highlighted {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary);\\n\\t}\\n\\n\\t&--outlined {\\n\\t\\tcolor: var(--color-primary);\\n\\t\\tbackground: transparent;\\n\\t\\tbox-shadow: inset 0 0 0 2px;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},2010:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-061b9623]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget .empty-content[data-v-061b9623]{text-align:center;margin-top:5vh}.dashboard-widget .empty-content.half-screen[data-v-061b9623]{margin-top:0;margin-bottom:1vh}.more[data-v-061b9623]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-061b9623]:hover,.more[data-v-061b9623]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large);color:var(--color-main-text)}.item-list__entry[data-v-061b9623]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-061b9623]{position:relative;margin-top:auto;margin-bottom:auto;background-color:var(--color-background-dark) !important}.item-list__entry .item__details[data-v-061b9623]{padding-left:8px;max-height:44px;flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-061b9623],.item-list__entry .item__details .message[data-v-061b9623]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-061b9623]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-061b9623]{width:80%;height:15px;margin-top:5px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDashboardWidget/NcDashboardWidget.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,kDACC,iBAAA,CACA,cAAA,CAEA,8DACC,YAAA,CACA,iBAAA,CAIF,uBACC,aAAA,CACA,iBAAA,CACA,mCAAA,CACA,gBAAA,CACA,cAAA,CAEA,0DAEC,8CAAA,CACA,wCAAA,CACA,4BAAA,CAKF,mCACC,YAAA,CACA,sBAAA,CACA,WAAA,CAEA,gDACC,iBAAA,CACA,eAAA,CACA,kBAAA,CACA,wDAAA,CAED,kDACC,gBAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,gHAEC,kBAAA,CACA,6CAAA,CAED,qDACC,cAAA,CACA,QAAA,CAED,2DACC,SAAA,CACA,WAAA,CACA,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.dashboard-widget .empty-content {\\n\\ttext-align: center;\\n\\tmargin-top: 5vh;\\n\\n\\t&.half-screen {\\n\\t\\tmargin-top: 0;\\n\\t\\tmargin-bottom: 1vh;\\n\\t}\\n}\\n\\n.more {\\n\\tdisplay: block;\\n\\ttext-align: center;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tline-height: 60px;\\n\\tcursor: pointer;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n}\\n\\n/* skeleton */\\n.item-list__entry {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tpadding: 8px;\\n\\n\\t.item-avatar {\\n\\t\\tposition: relative;\\n\\t\\tmargin-top: auto;\\n\\t\\tmargin-bottom: auto;\\n\\t\\tbackground-color: var(--color-background-dark) !important;\\n\\t}\\n\\t.item__details {\\n\\t\\tpadding-left: 8px;\\n\\t\\tmax-height: 44px;\\n\\t\\tflex-grow: 1;\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3,\\n\\t\\t.message {\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t}\\n\\t\\th3 {\\n\\t\\t\\tfont-size: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t\\t.message {\\n\\t\\t\\twidth: 80%;\\n\\t\\t\\theight: 15px;\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},8476:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-333a3450]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-333a3450]{display:flex;align-items:flex-start;position:relative;padding:8px}.item-list__entry[data-v-333a3450]:hover,.item-list__entry[data-v-333a3450]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.item-list__entry .item-avatar[data-v-333a3450]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-333a3450]{padding-left:8px;max-height:44px;flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-333a3450],.item-list__entry .item__details .message[data-v-333a3450]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-333a3450]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-333a3450]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-333a3450]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-333a3450]{position:relative;width:14px;height:14px;margin:27px -3px 0px -7px}.item-list__entry button.primary[data-v-333a3450]{padding:21px;margin:0}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,YAAA,CACA,sBAAA,CACA,iBAAA,CACA,WAAA,CAEA,kFAEC,8CAAA,CACA,wCAAA,CAED,gDACC,iBAAA,CACA,eAAA,CACA,kBAAA,CAED,kDACC,gBAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,gHAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CAED,gEACC,UAAA,CACA,oBAAA,CACA,kBAAA,CAED,qDACC,cAAA,CACA,QAAA,CAED,2DACC,UAAA,CACA,mCAAA,CAIF,8CACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CAGD,kDACC,YAAA,CACA,QAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.item-list__entry {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tposition: relative;\\n\\tpadding: 8px;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\t.item-avatar {\\n\\t\\tposition: relative;\\n\\t\\tmargin-top: auto;\\n\\t\\tmargin-bottom: auto;\\n\\t}\\n\\t.item__details {\\n\\t\\tpadding-left: 8px;\\n\\t\\tmax-height: 44px;\\n\\t\\tflex-grow: 1;\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3,\\n\\t\\t.message {\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\t\\t.message span {\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tmargin-bottom: -3px;\\n\\t\\t}\\n\\t\\th3 {\\n\\t\\t\\tfont-size: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t\\t.message {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n\\n\\t.item-icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: 14px;\\n\\t\\theight: 14px;\\n\\t\\tmargin: 27px -3px 0px -7px;\\n\\t}\\n\\n\\tbutton.primary {\\n\\t\\tpadding: 21px;\\n\\t\\tmargin: 0;\\n\\t}\\n}\\n/*\\n.content-popover {\\n\\theight: 0px;\\n\\twidth: 0px;\\n\\tmargin-left: auto;\\n\\tmargin-right: auto;\\n}\\n.popover-container {\\n\\twidth: 100%;\\n\\theight: 0px;\\n}\\n*/\\n\"],sourceRoot:\"\"}]),e.Z=o},9916:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-7a137715]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.native-datetime-picker[data-v-7a137715]{display:flex;flex-direction:column}.native-datetime-picker .native-datetime-picker--input[data-v-7a137715]{width:100%;flex:0 0 auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDateTimePickerNative/NcDateTimePickerNative.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yCACC,YAAA,CACA,qBAAA,CAGD,wEACC,UAAA,CACA,aAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.native-datetime-picker {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.native-datetime-picker .native-datetime-picker--input {\\n\\twidth: 100%;\\n\\tflex: 0 0 auto;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},7536:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-17d56e6c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.datetime-picker-inline-icon[data-v-17d56e6c]{opacity:.3;border:none;background-color:rgba(0,0,0,0);border-radius:0;padding:6px !important}.datetime-picker-inline-icon--highlighted[data-v-17d56e6c]{opacity:.7}.datetime-picker-inline-icon[data-v-17d56e6c]:focus,.datetime-picker-inline-icon[data-v-17d56e6c]:hover{opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcDatetimePicker/NcDatetimePicker.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,8CACC,UAAA,CACA,WAAA,CACA,8BAAA,CACA,eAAA,CACA,sBAAA,CAEA,2DACC,UAAA,CAGD,wGAEC,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.datetime-picker-inline-icon {\\n\\topacity: .3;\\n\\tborder: none;\\n\\tbackground-color: transparent;\\n\\tborder-radius: 0;\\n\\tpadding: 6px !important;\\n\\n\\t&--highlighted {\\n\\t\\topacity: .7;\\n\\t}\\n\\n\\t&:focus,\\n\\t&:hover {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},1590:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(2463),l=o()(i());l.i(s.Z),l.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.emoji-mart{background-color:var(--color-main-background) !important;border:0;color:var(--color-main-text) !important}.emoji-mart button{margin:0;padding:0;border:none;background:rgba(0,0,0,0);font-size:inherit;height:36px;width:auto}.emoji-mart button *{cursor:pointer !important}.emoji-mart .emoji-mart-bar,.emoji-mart .emoji-mart-anchors,.emoji-mart .emoji-mart-search,.emoji-mart .emoji-mart-search input,.emoji-mart .emoji-mart-category,.emoji-mart .emoji-mart-category-label,.emoji-mart .emoji-mart-category-label span,.emoji-mart .emoji-mart-skin-swatches{background-color:rgba(0,0,0,0) !important;border-color:var(--color-border) !important;color:inherit !important}.emoji-mart .emoji-mart-search input:focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}.emoji-mart .emoji-mart-bar:first-child{border-top-left-radius:var(--border-radius) !important;border-top-right-radius:var(--border-radius) !important}.emoji-mart .emoji-mart-anchors button{border-radius:0;padding:12px 4px;height:auto}.emoji-mart .emoji-mart-anchors button:focus-visible{outline:2px solid var(--color-primary-element)}.emoji-mart .emoji-mart-category{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:start}.emoji-mart .emoji-mart-category .emoji-mart-category-label,.emoji-mart .emoji-mart-category .emoji-mart-emoji{user-select:none;flex-grow:0;flex-shrink:0}.emoji-mart .emoji-mart-category .emoji-mart-category-label{flex-basis:100%;margin:0}.emoji-mart .emoji-mart-category .emoji-mart-emoji{flex-basis:12.5%;text-align:center}.emoji-mart .emoji-mart-category .emoji-mart-emoji:hover::before,.emoji-mart .emoji-mart-category .emoji-mart-emoji.emoji-mart-emoji-selected::before{background-color:var(--color-background-hover) !important;outline:2px solid var(--color-primary-element)}.emoji-mart .emoji-mart-category button:focus-visible{background-color:var(--color-background-hover);border:2px solid var(--color-primary-element) !important;border-radius:50%}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcEmojiPicker/NcEmojiPicker.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,YACC,wDAAA,CACA,QAAA,CACA,uCAAA,CAGA,mBACC,QAAA,CACA,SAAA,CACA,WAAA,CACA,wBAAA,CACA,iBAAA,CACA,WAAA,CACA,UAAA,CAEA,qBACC,yBAAA,CAIF,0RAQC,yCAAA,CACA,2CAAA,CACA,wBAAA,CAGD,mDACC,+CAAA,CACA,YAAA,CAIA,wCACC,sDAAA,CACA,uDAAA,CAKD,uCACC,eAAA,CACA,gBAAA,CACA,WAAA,CACA,qDAEC,8CAAA,CAKH,iCACC,YAAA,CACA,kBAAA,CACA,cAAA,CACA,qBAAA,CAEA,+GAEC,gBAAA,CACA,WAAA,CACA,aAAA,CAGD,4DACC,eAAA,CACA,QAAA,CAGD,mDAEC,gBAAA,CACA,iBAAA,CAEA,sJAEC,yDAAA,CACA,8CAAA,CAKD,sDACC,8CAAA,CACA,wDAAA,CACA,iBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n@import '~emoji-mart-vue-fast/css/emoji-mart.css';\\n\\n.emoji-mart {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\tborder: 0;\\n\\tcolor: var(--color-main-text) !important;\\n\\n\\t// default style reset\\n\\tbutton {\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tborder: none;\\n\\t\\tbackground: transparent;\\n\\t\\tfont-size: inherit;\\n\\t\\theight: 36px;\\n\\t\\twidth: auto;\\n\\n\\t\\t* {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-bar,\\n\\t.emoji-mart-anchors,\\n\\t.emoji-mart-search,\\n\\t.emoji-mart-search input,\\n\\t.emoji-mart-category,\\n\\t.emoji-mart-category-label,\\n\\t.emoji-mart-category-label span,\\n\\t.emoji-mart-skin-swatches {\\n\\t\\tbackground-color: transparent !important;\\n\\t\\tborder-color: var(--color-border) !important;\\n\\t\\tcolor: inherit !important;\\n\\t}\\n\\n\\t.emoji-mart-search input:focus-visible {\\n\\t\\tbox-shadow: inset 0 0 0 2px var(--color-primary);\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t.emoji-mart-bar {\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: var(--border-radius) !important;\\n\\t\\t\\tborder-top-right-radius: var(--border-radius) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-anchors {\\n\\t\\tbutton {\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tpadding: 12px 4px;\\n\\t\\t\\theight: auto;\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t/* box-shadow: inset 0 0 0 2px var(--color-primary); */\\n\\t\\t\\t\\toutline: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.emoji-mart-category {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tjustify-content: start;\\n\\n\\t\\t.emoji-mart-category-label,\\n\\t\\t.emoji-mart-emoji {\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\tflex-grow: 0;\\n\\t\\t\\tflex-shrink: 0;\\n\\t\\t}\\n\\n\\t\\t.emoji-mart-category-label {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\n\\t\\t.emoji-mart-emoji {\\n\\t\\t\\t// 8 emoji per row\\n\\t\\t\\tflex-basis: calc(100% / 8);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t&:hover::before,\\n\\t\\t\\t&.emoji-mart-emoji-selected::before{\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover) !important;\\n\\t\\t\\t\\toutline: 2px solid var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\tbutton {\\n\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\tborder: 2px solid var(--color-primary-element) !important;\\n\\t\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n}\\n\"],sourceRoot:\"\"}]),e.Z=l},6505:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-78a70aaa]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-78a70aaa]{display:flex;align-items:center;flex-direction:column;margin-top:20vh}.modal-wrapper .empty-content[data-v-78a70aaa]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-78a70aaa]{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 15px;opacity:.4;background-repeat:no-repeat;background-position:center;background-size:64px}.empty-content__icon[data-v-78a70aaa] svg{width:64px;height:64px}.empty-content__title[data-v-78a70aaa]{margin-bottom:10px;text-align:center}.empty-content__action[data-v-78a70aaa]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-78a70aaa]{margin-top:20px;display:flex}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcEmptyContent/NcEmptyContent.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,gCACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,eAAA,CAEA,+CACC,cAAA,CACA,iBAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,UAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,0CACC,UAAA,CACA,WAAA,CAIF,uCACC,kBAAA,CACA,iBAAA,CAGD,wCACC,cAAA,CAEA,uDACC,eAAA,CACA,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.empty-content {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tflex-direction: column;\\n\\tmargin-top: 20vh;\\n\\n\\t.modal-wrapper & {\\n\\t\\tmargin-top: 5vh;\\n\\t\\tmargin-bottom: 5vh;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 64px;\\n\\t\\theight: 64px;\\n\\t\\tmargin: 0 auto 15px;\\n\\t\\topacity: .4;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: 64px;\\n\\n\\t\\t:deep(svg) {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 10px;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\t&__action {\\n\\t\\tmargin-top: 8px;\\n\\n\\t\\t.modal-wrapper & {\\n\\t\\t\\tmargin-top: 20px;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},4132:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-1fabb8a0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-field[data-v-1fabb8a0]{position:relative;width:100%;border-radius:var(--border-radius-large)}.input-field__main-wrapper[data-v-1fabb8a0]{height:36px;position:relative}.input-field__input[data-v-1fabb8a0]{margin:0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-dark);height:36px !important;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer;width:100%;-webkit-appearance:textfield !important;-moz-appearance:textfield !important}.input-field__input[data-v-1fabb8a0]:active:not([disabled]),.input-field__input[data-v-1fabb8a0]:hover:not([disabled]),.input-field__input[data-v-1fabb8a0]:focus:not([disabled]){border-color:var(--color-primary-element)}.input-field__input[data-v-1fabb8a0]:focus{cursor:text}.input-field__input[data-v-1fabb8a0]:focus-visible{box-shadow:unset !important}.input-field__input--success[data-v-1fabb8a0]{border-color:var(--color-success) !important}.input-field__input--success[data-v-1fabb8a0]:focus-visible{box-shadow:#f8fafc 0px 0px 0px 2px,var(--color-primary-element) 0px 0px 0px 4px,rgba(0,0,0,.05) 0px 1px 2px 0px}.input-field__input--error[data-v-1fabb8a0]{border-color:var(--color-error) !important}.input-field__input--error[data-v-1fabb8a0]:focus-visible{box-shadow:#f8fafc 0px 0px 0px 2px,var(--color-primary-element) 0px 0px 0px 4px,rgba(0,0,0,.05) 0px 1px 2px 0px}.input-field__input--leading-icon[data-v-1fabb8a0]{padding-left:28px}.input-field__input--trailing-icon[data-v-1fabb8a0]{padding-right:28px}.input-field__label[data-v-1fabb8a0]{padding:4px 0;display:block}.input-field__label--hidden[data-v-1fabb8a0]{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.input-field__icon[data-v-1fabb8a0]{position:absolute;height:32px;width:32px;display:flex;align-items:center;justify-content:center;opacity:.7}.input-field__icon--leading[data-v-1fabb8a0]{bottom:2px;left:2px}.input-field__icon--trailing[data-v-1fabb8a0]{bottom:2px;right:2px}.input-field__clear-button.button-vue[data-v-1fabb8a0]{position:absolute;top:2px;right:1px;min-width:unset;min-height:unset;height:32px;width:32px !important;border-radius:var(--border-radius-large)}.input-field__helper-text-message[data-v-1fabb8a0]{padding:4px 0;display:flex;align-items:center}.input-field__helper-text-message__icon[data-v-1fabb8a0]{margin-right:8px;align-self:start;margin-top:4px}.input-field__helper-text-message--error[data-v-1fabb8a0]{color:var(--color-error)}.input-field__helper-text-message--success[data-v-1fabb8a0]{color:var(--color-success)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcInputField/NcInputField.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8BACC,iBAAA,CACA,UAAA,CACA,wCAAA,CAEA,4CACC,WAAA,CACA,iBAAA,CAGD,qCACC,QAAA,CACA,cAAA,CACA,kCAAA,CACA,6CAAA,CACA,4BAAA,CACA,yCAAA,CACA,sBAAA,CACA,wCAAA,CACA,sBAAA,CACA,cAAA,CACA,UAAA,CACA,uCAAA,CACA,oCAAA,CAEA,kLAGC,yCAAA,CAGD,2CACC,WAAA,CAGD,mDACC,2BAAA,CAGD,8CACC,4CAAA,CACA,4DACC,+GAAA,CAIF,4CACC,0CAAA,CACA,0DACC,+GAAA,CAIF,mDACC,iBAAA,CAGD,oDACC,kBAAA,CAIF,qCACC,aAAA,CACA,aAAA,CAEA,6CACC,iBAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CAIF,oCACC,iBAAA,CACA,WAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,6CACC,UAAA,CACA,QAAA,CAGD,8CACC,UAAA,CACA,SAAA,CAIF,uDACC,iBAAA,CACA,OAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CACA,qBAAA,CACA,wCAAA,CAGD,mDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,yDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,0DACC,wBAAA,CAGD,4DACC,0BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.input-field {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\tborder-radius: var(--border-radius-large);\\n\\n\\t&__main-wrapper {\\n\\t\\theight: 36px;\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__input {\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0 12px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 2px solid var(--color-border-dark);\\n\\t\\theight: 36px !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcursor: pointer;\\n\\t\\twidth: 100%;\\n\\t\\t-webkit-appearance: textfield !important;\\n\\t\\t-moz-appearance: textfield !important;\\n\\n\\t\\t&:active:not([disabled]),\\n\\t\\t&:hover:not([disabled]),\\n\\t\\t&:focus:not([disabled]) {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\tcursor: text;\\n\\t\\t}\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\tbox-shadow: unset !important; // Override server rules\\n\\t\\t}\\n\\n\\t\\t&--success {\\n\\t\\t\\tborder-color: var(--color-success) !important; //Override hover border color\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tborder-color: var(--color-error) !important; //Override hover border color\\n\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--leading-icon {\\n\\t\\t\\tpadding-left: 28px;\\n\\t\\t}\\n\\n\\t\\t&--trailing-icon {\\n\\t\\t\\tpadding-right: 28px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__label {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: block;\\n\\n\\t\\t&--hidden {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: -10000px;\\n\\t\\t\\ttop: auto;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 1px;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: absolute;\\n\\t\\theight: 32px;\\n\\t\\twidth: 32px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\topacity: 0.7;\\n\\t\\t&--leading {\\n\\t\\t\\tbottom: 2px;\\n\\t\\t\\tleft: 2px;\\n\\t\\t}\\n\\n\\t\\t&--trailing {\\n\\t\\t\\tbottom: 2px;\\n\\t\\t\\tright: 2px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__clear-button.button-vue {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 2px;\\n\\t\\tright: 1px;\\n\\t\\tmin-width: unset;\\n\\t\\tmin-height: unset;\\n\\t\\theight: 32px;\\n\\t\\twidth: 32px !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t&--success {\\n\\t\\t\\tcolor: var(--color-success);\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},7491:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-e11e15ca]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-e11e15ca]{position:relative;width:100%}.list-item__wrapper--active .list-item[data-v-e11e15ca],.list-item__wrapper:active .list-item[data-v-e11e15ca],.list-item__wrapper.active .list-item[data-v-e11e15ca]{background-color:var(--color-primary-light)}.list-item[data-v-e11e15ca]{display:block;position:relative;flex:0 0 auto;justify-content:flex-start;padding:8px;border-radius:32px;margin:2px 0;width:100%;cursor:pointer;transition:background-color var(--animation-quick) ease-in-out;list-style:none}.list-item[data-v-e11e15ca]:hover,.list-item[data-v-e11e15ca]:focus{background-color:var(--color-background-hover)}.list-item-content__wrapper[data-v-e11e15ca]{display:flex;align-items:center;height:48px}.list-item-content__wrapper--compact[data-v-e11e15ca]{height:36px}.list-item-content__wrapper--compact .line-one[data-v-e11e15ca],.list-item-content__wrapper--compact .line-two[data-v-e11e15ca]{margin-top:-4px;margin-bottom:-4px}.list-item-content[data-v-e11e15ca]{display:flex;flex:1 1 auto;justify-content:space-between;padding-left:8px}.list-item-content__main[data-v-e11e15ca]{flex:1 1 auto;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-e11e15ca]{display:flex}.list-item-content__actions[data-v-e11e15ca]{flex:0 0 auto;align-self:center;justify-content:center;margin-left:4px}.list-item__extra[data-v-e11e15ca]{margin-top:4px}.line-one[data-v-e11e15ca]{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;margin:0 auto 0 0;overflow:hidden}.line-one__title[data-v-e11e15ca]{overflow:hidden;flex-grow:1;cursor:pointer;text-overflow:ellipsis;color:var(--color-main-text);font-weight:bold}.line-one__details[data-v-e11e15ca]{color:var(--color-text-maxcontrast);margin:0 8px;font-weight:normal}.line-two[data-v-e11e15ca]{display:flex;align-items:flex-start;justify-content:space-between;white-space:nowrap}.line-two--bold[data-v-e11e15ca]{font-weight:bold}.line-two__subtitle[data-v-e11e15ca]{overflow:hidden;flex-grow:1;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.line-two__additional_elements[data-v-e11e15ca]{margin:2px 4px 0 4px;display:flex;align-items:center}.line-two__indicator[data-v-e11e15ca]{margin:0 5px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcListItem/NcListItem.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,qCACC,iBAAA,CACA,UAAA,CAKC,sKACC,2CAAA,CAMH,4BACC,aAAA,CACA,iBAAA,CACA,aAAA,CACA,0BAAA,CACA,WAAA,CAGA,kBAAA,CACA,YAAA,CACA,UAAA,CACA,cAAA,CACA,8DAAA,CACA,eAAA,CACA,oEAEC,8CAAA,CAGD,6CACC,YAAA,CACA,kBAAA,CACA,WAAA,CAEA,sDACC,WAAA,CAEA,gIACC,eAAA,CACA,kBAAA,CAKH,oCACC,YAAA,CACA,aAAA,CACA,6BAAA,CACA,gBAAA,CAEA,0CACC,aAAA,CACA,OAAA,CACA,aAAA,CAEA,mDACC,YAAA,CAIF,6CACC,aAAA,CACA,iBAAA,CACA,sBAAA,CACA,eAAA,CAIF,mCACC,cAAA,CAIF,2BACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,kBAAA,CACA,iBAAA,CACA,eAAA,CAEA,kCACC,eAAA,CACA,WAAA,CACA,cAAA,CACA,sBAAA,CACA,4BAAA,CACA,gBAAA,CAGD,oCACC,mCAAA,CACA,YAAA,CACA,kBAAA,CAIF,2BACC,YAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,iCACC,gBAAA,CAGD,qCACC,eAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,gDACC,oBAAA,CACA,YAAA,CACA,kBAAA,CAGD,sCACC,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.list-item__wrapper {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\n\\t&--active,\\n\\t&:active,\\n\\t&.active {\\n\\t\\t.list-item {\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\t}\\n}\\n\\n// NcListItem\\n.list-item {\\n\\tdisplay: block;\\n\\tposition: relative;\\n\\tflex: 0 0 auto;\\n\\tjustify-content: flex-start;\\n\\tpadding: 8px;\\n\\t// Fix for border-radius being too large for 3-line entries like in Mail\\n\\t// 44px avatar size / 2 + 8px padding, and 2px for better visual quality\\n\\tborder-radius: 32px;\\n\\tmargin: 2px 0;\\n\\twidth: 100%;\\n\\tcursor: pointer;\\n\\ttransition: background-color var(--animation-quick) ease-in-out;\\n\\tlist-style: none;\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&-content__wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\theight: 48px;\\n\\n\\t\\t&--compact {\\n\\t\\t\\theight: 36px;\\n\\n\\t\\t\\t.line-one, .line-two {\\n\\t\\t\\t\\tmargin-top: -4px;\\n\\t\\t\\t\\tmargin-bottom: -4px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&-content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1 auto;\\n\\t\\tjustify-content: space-between;\\n\\t\\tpadding-left: 8px;\\n\\n\\t\\t&__main {\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\twidth: 0;\\n\\t\\t\\tmargin: auto 0;\\n\\n\\t\\t\\t&--oneline {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__actions {\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\talign-self: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__extra {\\n\\t\\tmargin-top: 4px;\\n\\t}\\n}\\n\\n.line-one {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n\\twhite-space: nowrap;\\n\\tmargin: 0 auto 0 0;\\n\\toverflow: hidden;\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-grow: 1;\\n\\t\\tcursor: pointer;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t&__details {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin: 0 8px;\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\n.line-two {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tjustify-content: space-between;\\n\\twhite-space: nowrap;\\n\\t&--bold {\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-grow: 1;\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__additional_elements {\\n\\t\\tmargin: 2px 4px 0 4px;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__indicator {\\n\\t\\tmargin: 0 5px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},1369:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-7564b97c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.option[data-v-7564b97c]{display:flex;align-items:center;width:100%;height:var(--height)}.option__avatar[data-v-7564b97c]{margin-right:var(--margin)}.option__details[data-v-7564b97c]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__lineone[data-v-7564b97c]{color:var(--color-text-light)}.option__linetwo[data-v-7564b97c]{opacity:.7}.option__lineone[data-v-7564b97c],.option__linetwo[data-v-7564b97c]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.1em}.option__lineone strong[data-v-7564b97c],.option__linetwo strong[data-v-7564b97c]{font-weight:bold}.option__icon[data-v-7564b97c]{flex:0 0 44px;width:44px;height:44px;opacity:.5;background-position:center;background-size:16px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcListItemIcon/NcListItemIcon.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,yBACC,YAAA,CACA,kBAAA,CACA,UAAA,CACA,oBAAA,CAEA,iCACC,0BAAA,CAGD,kCACC,YAAA,CACA,QAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CAGD,kCACC,6BAAA,CAED,kCACC,UCmBe,CDjBhB,oEAEC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CACA,kFACC,gBAAA,CAIF,+BACC,aAAA,CACA,UCde,CDef,WCfe,CDgBf,UCCiB,CAAA,0BAAA,CDCjB,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.option {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\twidth: 100%;\\n\\theight: var(--height);\\n\\n\\t&__avatar {\\n\\t\\tmargin-right: var(--margin);\\n\\t}\\n\\n\\t&__details {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-width: 0;\\n\\t}\\n\\n\\t&__lineone {\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n\\t&__linetwo {\\n\\t\\topacity: $opacity_normal;\\n\\t}\\n\\t&__lineone,\\n\\t&__linetwo {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tline-height: 1.1em;\\n\\t\\tstrong {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: 16px;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},5030:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-c4a9cada]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon svg[data-v-c4a9cada]{animation:rotate var(--animation-duration, 0.8s) linear infinite}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcLoadingIcon/NcLoadingIcon.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,mCACC,gEAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.loading-icon svg{\\n\\tanimation: rotate var(--animation-duration, 0.8s) linear infinite;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},8809:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,'.material-design-icon[data-v-05d94d80]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-05d94d80]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-mask--dark[data-v-05d94d80]{background-color:rgba(0,0,0,.92)}.modal-header[data-v-05d94d80]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;overflow:hidden;transition:opacity 250ms,visibility 250ms}.modal-header.invisible[style*=\"display:none\"][data-v-05d94d80],.modal-header.invisible[style*=\"display: none\"][data-v-05d94d80]{visibility:hidden}.modal-header .modal-title[data-v-05d94d80]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px;margin-bottom:0}@media only screen and (min-width: 1024px){.modal-header .modal-title[data-v-05d94d80]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-05d94d80]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-05d94d80]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-05d94d80]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:rgba(0,0,0,0)}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-05d94d80]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-05d94d80],.modal-header .icons-menu .play-pause-icons__pause[data-v-05d94d80]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-05d94d80]{color:#fff}.modal-header .icons-menu[data-v-05d94d80] .action-item{margin:3px}.modal-header .icons-menu[data-v-05d94d80] .action-item--single{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-05d94d80] button{color:#fff}.modal-header .icons-menu[data-v-05d94d80] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-05d94d80] .action-item__menutoggle span,.modal-header .icons-menu[data-v-05d94d80] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-05d94d80]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-05d94d80],.modal-wrapper .next[data-v-05d94d80]{z-index:10000;display:flex !important;height:35vw;position:absolute;transition:opacity 250ms,visibility 250ms;color:var(--color-primary-text)}.modal-wrapper .prev[data-v-05d94d80]:focus-visible,.modal-wrapper .next[data-v-05d94d80]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev.invisible[style*=\"display:none\"][data-v-05d94d80],.modal-wrapper .prev.invisible[style*=\"display: none\"][data-v-05d94d80],.modal-wrapper .next.invisible[style*=\"display:none\"][data-v-05d94d80],.modal-wrapper .next.invisible[style*=\"display: none\"][data-v-05d94d80]{visibility:hidden}.modal-wrapper .prev[data-v-05d94d80]{left:2px}.modal-wrapper .next[data-v-05d94d80]{right:2px}.modal-wrapper .modal-container[data-v-05d94d80]{position:relative;display:block;overflow:auto;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,.2)}.modal-wrapper .modal-container__close[data-v-05d94d80]{position:absolute;top:4px;right:4px}.modal-wrapper--small .modal-container[data-v-05d94d80]{width:400px;max-width:90%;max-height:90%}.modal-wrapper--normal .modal-container[data-v-05d94d80]{max-width:90%;width:600px;max-height:90%}.modal-wrapper--large .modal-container[data-v-05d94d80]{max-width:90%;width:900px;max-height:90%}.modal-wrapper--full .modal-container[data-v-05d94d80]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}@media only screen and (max-width: 512px){.modal-wrapper .modal-container[data-v-05d94d80]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}}.fade-enter-active[data-v-05d94d80],.fade-leave-active[data-v-05d94d80]{transition:opacity 250ms}.fade-enter[data-v-05d94d80],.fade-leave-to[data-v-05d94d80]{opacity:0}.fade-visibility-enter[data-v-05d94d80],.fade-visibility-leave-to[data-v-05d94d80]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-05d94d80],.modal-in-leave-active[data-v-05d94d80],.modal-out-enter-active[data-v-05d94d80],.modal-out-leave-active[data-v-05d94d80]{transition:opacity 250ms}.modal-in-enter[data-v-05d94d80],.modal-in-leave-to[data-v-05d94d80],.modal-out-enter[data-v-05d94d80],.modal-out-leave-to[data-v-05d94d80]{opacity:0}.modal-in-enter .modal-container[data-v-05d94d80],.modal-in-leave-to .modal-container[data-v-05d94d80]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-05d94d80],.modal-out-leave-to .modal-container[data-v-05d94d80]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-05d94d80]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-05d94d80]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-05d94d80 linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-05d94d80]{animation:breath-05d94d80 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-05d94d80]{animation-play-state:paused !important}@keyframes progressring-05d94d80{from{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-05d94d80{0%{opacity:1}50%{opacity:0}100%{opacity:1}}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcModal/NcModal.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,cAAA,CACA,YAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,+BAAA,CACA,mCACC,gCAAA,CAIF,+BACC,iBAAA,CACA,aAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CAGA,uBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WCuBe,CDtBf,eAAA,CACA,yCAAA,CAIA,iIAEC,iBAAA,CAGD,4CACC,iBAAA,CACA,qBAAA,CACA,UAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,cChBY,CDiBZ,eAAA,CAID,2CACC,4CACC,kBAAA,CACA,iBAAA,CAAA,CAIF,2CACC,iBAAA,CACA,OAAA,CACA,YAAA,CACA,kBAAA,CACA,wBAAA,CAEA,yDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6DACC,iBAAA,CACA,UC3Ba,CD4Bb,WC5Ba,CD6Bb,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CACA,8BAAA,CAGC,8WAEC,SC9CU,CD+CV,kBAAA,CACA,sCCxDW,CD2Db,uIAEC,qBAAA,CACA,UCzEa,CD0Eb,WC1Ea,CD2Eb,UAAA,CACA,cAAA,CACA,UC3Da,CD+Df,2DACC,UAAA,CAGD,yDACC,UAAA,CAEA,iEACC,qBAAA,CACA,UC1Fa,CD2Fb,WC3Fa,CD4Fb,cAAA,CACA,0BAAA,CACA,oBAAA,CAIF,kDAEC,UAAA,CAID,oEACC,SAAA,CACA,iJACC,sBAAA,CACA,uBAAA,CAMJ,gCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CAGA,4EAEC,aAAA,CAEA,uBAAA,CACA,WAAA,CACA,iBAAA,CACA,yCAAA,CAEA,+BAAA,CAEA,wGAEC,8CAAA,CACA,wCAAA,CAOD,8RAEC,iBAAA,CAGF,sCACC,QAAA,CAED,sCACC,SAAA,CAID,iDACC,iBAAA,CACA,aAAA,CACA,aAAA,CACA,SAAA,CACA,+BAAA,CACA,wCAAA,CACA,6CAAA,CACA,kCAAA,CACA,wDACC,iBAAA,CACA,OAAA,CACA,SAAA,CAMD,wDACC,WAAA,CACA,aAAA,CACA,cAAA,CAID,yDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,wDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,uDACC,UAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC7Ka,CD8Kb,eAAA,CAKF,0CACC,iDACC,iBAAA,CACA,UAAA,CACA,kBAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC1La,CD2Lb,eAAA,CAAA,CAMH,wEAEC,wBAAA,CAGD,6DAEC,SAAA,CAGD,mFAEC,iBAAA,CACA,SAAA,CAGD,kKAIC,wBAAA,CAGD,4IAIC,SAAA,CAGD,uGAEC,oBAAA,CAGD,yGAEC,oBAAA,CAQA,8DACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CACA,qFACC,kCAAA,CACA,wBAAA,CACA,yEAAA,CAEA,oBAAA,CACA,+BAAA,CACA,8BAAA,CAID,mEACC,kEAAA,CAED,8EACC,sCAAA,CAMH,iCACC,KACC,+BAAA,CAED,GACC,mBAAA,CAAA,CAIF,2BACC,GACC,SAAA,CAED,IACC,SAAA,CAED,KACC,SAAA,CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.modal-mask {\\n\\tposition: fixed;\\n\\tz-index: 9998;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbackground-color: rgba(0, 0, 0, .5);\\n\\t&--dark {\\n\\t\\tbackground-color: rgba(0, 0, 0, .92);\\n\\t}\\n}\\n\\n.modal-header {\\n\\tposition: absolute;\\n\\tz-index: 10001;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tleft: 0;\\n\\t// prevent vue show to use display:none and reseting\\n\\t// the circle animation loop\\n\\tdisplay: flex !important;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\theight: $header-height;\\n\\toverflow: hidden;\\n\\ttransition: opacity 250ms,\\n\\t\\tvisibility 250ms;\\n\\n\\t// replace display by visibility\\n\\t&.invisible[style*='display:none'],\\n\\t&.invisible[style*='display: none'] {\\n\\t\\tvisibility: hidden;\\n\\t}\\n\\n\\t.modal-title {\\n\\t\\toverflow-x: hidden;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\\n\\t\\ttransition: padding ease 100ms;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: #fff;\\n\\t\\tfont-size: $icon-margin;\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n\\n\\t// On wider screens the title can be centered\\n\\t@media only screen and (min-width: $breakpoint-mobile) {\\n\\t\\t.modal-title {\\n\\t\\t\\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n\\n\\t.icons-menu {\\n\\t\\tposition: absolute;\\n\\t\\tright: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: flex-end;\\n\\n\\t\\t.header-close {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tmargin: math.div($header-height - $clickable-area, 2);\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t.play-pause-icons {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: $header-height;\\n\\t\\t\\theight: $header-height;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t.play-pause-icons__play,\\n\\t\\t\\t\\t.play-pause-icons__pause {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t\\t\\tbackground-color: $icon-focus-bg;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&__play,\\n\\t\\t\\t&__pause {\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tmargin: math.div($header-height - $clickable-area, 2);\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.header-actions {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t&:deep() .action-item {\\n\\t\\t\\tmargin: math.div($header-height - $clickable-area, 2);\\n\\n\\t\\t\\t&--single {\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tbackground-size: 22px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t:deep(button) {\\n\\t\\t\\t// force white instead of default main text\\n\\t\\t\\tcolor: #fff;\\n\\t\\t}\\n\\n\\t\\t// Force the Actions menu icon to be the same size as other icons\\n\\t\\t&:deep(.action-item__menutoggle) {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tspan, svg {\\n\\t\\t\\t\\twidth: var(--icon-size);\\n\\t\\t\\t\\theight: var(--icon-size);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.modal-wrapper {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t/* Navigation buttons */\\n\\t.prev,\\n\\t.next {\\n\\t\\tz-index: 10000;\\n\\t\\t// ignore display: none\\n\\t\\tdisplay: flex !important;\\n\\t\\theight: 35vw;\\n\\t\\tposition: absolute;\\n\\t\\ttransition: opacity 250ms,\\n\\t\\t\\tvisibility 250ms;\\n\\t\\tcolor: var(--color-primary-text);\\n\\n\\t\\t&:focus-visible {\\n\\t\\t\\t// Override NcButton focus styles\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-primary-text);\\n\\t\\t\\tbackground-color: var(--color-box-shadow);\\n\\t\\t}\\n\\n\\t\\t// we want to keep the elements on page\\n\\t\\t// even if hidden to avoid having a unbalanced\\n\\t\\t// centered content\\n\\t\\t// replace display by visibility\\n\\t\\t&.invisible[style*='display:none'],\\n\\t\\t&.invisible[style*='display: none'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t}\\n\\t}\\n\\t.prev {\\n\\t\\tleft: 2px;\\n\\t}\\n\\t.next {\\n\\t\\tright: 2px;\\n\\t}\\n\\n\\t/* Content */\\n\\t.modal-container {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: block;\\n\\t\\toverflow: auto; // avoids unecessary hacks if the content should be bigger than the modal\\n\\t\\tpadding: 0;\\n\\t\\ttransition: transform 300ms ease;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\\n\\t\\t&__close {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 4px;\\n\\t\\t\\tright: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Sizing\\n\\t&--small {\\n\\t\\t.modal-container {\\n\\t\\t\\twidth: 400px;\\n\\t\\t\\tmax-width: 90%;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t}\\n\\t&--normal {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 90%;\\n\\t\\t\\twidth: 600px;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t}\\n\\t&--large {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 90%;\\n\\t\\t\\twidth: 900px;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t}\\n\\t&--full {\\n\\t\\t.modal-container {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: calc(100% - var(--header-height));\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: $header-height;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t// Make modal full screen on mobile\\n\\t@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: initial;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-height: initial;\\n\\t\\t\\theight: calc(100% - var(--header-height));\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: $header-height;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* TRANSITIONS */\\n.fade-enter-active,\\n.fade-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-visibility-enter,\\n.fade-visibility-leave-to {\\n\\tvisibility: hidden;\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter-active,\\n.modal-in-leave-active,\\n.modal-out-enter-active,\\n.modal-out-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.modal-in-enter,\\n.modal-in-leave-to,\\n.modal-out-enter,\\n.modal-out-leave-to {\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter .modal-container,\\n.modal-in-leave-to .modal-container {\\n\\ttransform: scale(.9);\\n}\\n\\n.modal-out-enter .modal-container,\\n.modal-out-leave-to .modal-container {\\n\\ttransform: scale(1.1);\\n}\\n\\n// animated circle\\n$radius: 15;\\n$pi: 3.14159265358979;\\n\\n.modal-mask .play-pause-icons {\\n\\t.progress-ring {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\ttransform: rotate(-90deg);\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\ttransition: 100ms stroke-dashoffset;\\n\\t\\t\\ttransform-origin: 50% 50%; // axis compensation\\n\\t\\t\\tanimation: progressring linear var(--slideshow-duration) infinite;\\n\\n\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t\\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t}\\n\\t}\\n\\t&--paused {\\n\\t\\t.icon-pause {\\n\\t\\t\\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\\n\\t\\t}\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\tanimation-play-state: paused !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n// keyframes get scoped too and break the animation name, we need them unscoped\\n@keyframes progressring {\\n\\tfrom {\\n\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t}\\n\\tto {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes breath {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},6422:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-6a6fde89]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-6a6fde89]{display:flex;max-width:100%}.name-parts__first[data-v-6a6fde89]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-6a6fde89],.name-parts__last[data-v-6a6fde89]{white-space:pre}.name-parts__first strong[data-v-6a6fde89],.name-parts__last strong[data-v-6a6fde89]{font-weight:bold}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcMultiselect/NcEllipsisedOption.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,6BACC,YAAA,CACA,cAAA,CACA,oCACC,eAAA,CACA,sBAAA,CAED,uEAGC,eAAA,CACA,qFACC,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.name-parts {\\n\\tdisplay: flex;\\n\\tmax-width: 100%;\\n\\t&__first {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\t&__first,\\n\\t&__last {\\n\\t\\t// prevent whitespace from being trimmed\\n\\t\\twhite-space: pre;\\n\\t\\tstrong {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},7098:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-0d67beae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-0d67beae]{color:var(--color-text-light) !important;background-color:var(--note-background) !important;border-inline-start:4px solid var(--note-theme);border-radius:var(--border-radius);margin:1rem 0;margin-top:1rem;padding:1rem;display:flex;flex-direction:row;gap:1rem}.notecard__icon--heading[data-v-0d67beae]{margin-bottom:auto;margin-top:.3rem}.notecard--success[data-v-0d67beae]{--note-background: rgba(var(--color-success-rgb), 0.1);--note-theme: var(--color-success)}.notecard--error[data-v-0d67beae]{--note-background: rgba(var(--color-error-rgb), 0.1);--note-theme: var(--color-error)}.notecard--warning[data-v-0d67beae]{--note-background: rgba(var(--color-warning-rgb), 0.1);--note-theme: var(--color-warning)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcNoteCard/NcNoteCard.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,wCAAA,CACA,kDAAA,CACA,+CAAA,CACA,kCAAA,CACA,aAAA,CACA,eAAA,CACA,YAAA,CACA,YAAA,CACA,kBAAA,CACA,QAAA,CAEA,0CACC,kBAAA,CACA,gBAAA,CAGD,oCACC,sDAAA,CACA,kCAAA,CAGD,kCACC,oDAAA,CACA,gCAAA,CAGD,oCACC,sDAAA,CACA,kCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.notecard {\\n\\tcolor: var(--color-text-light) !important;\\n\\tbackground-color: var(--note-background) !important;\\n\\tborder-inline-start: 4px solid var(--note-theme);\\n\\tborder-radius: var(--border-radius);\\n\\tmargin: 1rem 0;\\n\\tmargin-top: 1rem;\\n\\tpadding: 1rem;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tgap: 1rem;\\n\\n\\t&__icon--heading {\\n\\t\\tmargin-bottom: auto;\\n\\t\\tmargin-top: 0.3rem;\\n\\t}\\n\\n\\t&--success {\\n\\t\\t--note-background: rgba(var(--color-success-rgb), 0.1);\\n\\t\\t--note-theme: var(--color-success);\\n\\t}\\n\\n\\t&--error {\\n\\t\\t--note-background: rgba(var(--color-error-rgb), 0.1);\\n\\t\\t--note-theme: var(--color-error);\\n\\t}\\n\\n\\t&--warning {\\n\\t\\t--note-background: rgba(var(--color-warning-rgb), 0.1);\\n\\t\\t--note-theme: var(--color-warning);\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},1427:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0);pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper--theme-dropdown.v-popper__popper{z-index:100000;top:0;left:0;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-dropdown.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);overflow:hidden;background:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}.v-popper--theme-dropdown.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-dropdown.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-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-10px;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopover/NcPopover.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,iBACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CACA,aAAA,CACA,eAAA,CACA,SAAA,CAGD,wBACC,aAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,mBAAA,CACA,UAAA,CAMA,2CACC,cAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CAEA,sDAAA,CAEA,4DACC,SAAA,CACA,4BAAA,CACA,kCAAA,CACA,eAAA,CACA,uCAAA,CAGD,sEACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBA1BW,CA6BZ,kGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAGD,qGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAGD,oGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAGD,mGACC,WAAA,CACA,oBAAA,CACA,8CAAA,CAGD,6DACC,iBAAA,CACA,2EAAA,CACA,SAAA,CAGD,8DACC,kBAAA,CACA,yCAAA,CACA,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.resize-observer {\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\tz-index:-1;\\n\\twidth:100%;\\n\\theight:100%;\\n\\tborder:none;\\n\\tbackground-color:transparent;\\n\\tpointer-events:none;\\n\\tdisplay:block;\\n\\toverflow:hidden;\\n\\topacity:0\\n}\\n\\n.resize-observer object {\\n\\tdisplay:block;\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\theight:100%;\\n\\twidth:100%;\\n\\toverflow:hidden;\\n\\tpointer-events:none;\\n\\tz-index:-1\\n}\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-dropdown {\\n\\t&.v-popper__popper {\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block !important;\\n\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t.v-popper__inner {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t.v-popper__arrow-container {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 1;\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tborder-width: $arrow-width;\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},2:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-31ffd2d4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}ul[data-v-31ffd2d4]{display:flex;flex-direction:column;gap:4px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopoverMenu/NcPopoverMenu.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oBACC,YAAA,CACA,qBAAA,CACA,OAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\nul {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px;\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},5772:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,'.material-design-icon[data-v-0ce1cbf1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li[data-v-0ce1cbf1]{display:flex;flex:0 0 auto}li.hidden[data-v-0ce1cbf1]{display:none}li>button[data-v-0ce1cbf1],li>a[data-v-0ce1cbf1],li>.menuitem[data-v-0ce1cbf1]{cursor:pointer;line-height:44px;border:0;background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^=icon-][data-v-0ce1cbf1],li>button span[class*=\" icon-\"][data-v-0ce1cbf1],li>button[class^=icon-][data-v-0ce1cbf1],li>button[class*=\" icon-\"][data-v-0ce1cbf1],li>a span[class^=icon-][data-v-0ce1cbf1],li>a span[class*=\" icon-\"][data-v-0ce1cbf1],li>a[class^=icon-][data-v-0ce1cbf1],li>a[class*=\" icon-\"][data-v-0ce1cbf1],li>.menuitem span[class^=icon-][data-v-0ce1cbf1],li>.menuitem span[class*=\" icon-\"][data-v-0ce1cbf1],li>.menuitem[class^=icon-][data-v-0ce1cbf1],li>.menuitem[class*=\" icon-\"][data-v-0ce1cbf1]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^=icon-][data-v-0ce1cbf1],li>button span[class*=\" icon-\"][data-v-0ce1cbf1],li>a span[class^=icon-][data-v-0ce1cbf1],li>a span[class*=\" icon-\"][data-v-0ce1cbf1],li>.menuitem span[class^=icon-][data-v-0ce1cbf1],li>.menuitem span[class*=\" icon-\"][data-v-0ce1cbf1]{padding:22px 0 22px 44px}li>button:not([class^=icon-]):not([class*=icon-])>span[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>button:not([class^=icon-]):not([class*=icon-])>input[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>button:not([class^=icon-]):not([class*=icon-])>form[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>span[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>input[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>a:not([class^=icon-]):not([class*=icon-])>form[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>span[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>input[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child,li>.menuitem:not([class^=icon-]):not([class*=icon-])>form[data-v-0ce1cbf1]:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}li>button[class^=icon-][data-v-0ce1cbf1],li>button[class*=\" icon-\"][data-v-0ce1cbf1],li>a[class^=icon-][data-v-0ce1cbf1],li>a[class*=\" icon-\"][data-v-0ce1cbf1],li>.menuitem[class^=icon-][data-v-0ce1cbf1],li>.menuitem[class*=\" icon-\"][data-v-0ce1cbf1]{padding:0 14px 0 44px}li>button[data-v-0ce1cbf1]:not(:disabled):hover,li>button[data-v-0ce1cbf1]:not(:disabled):focus,li>button:not(:disabled).active[data-v-0ce1cbf1],li>a[data-v-0ce1cbf1]:not(:disabled):hover,li>a[data-v-0ce1cbf1]:not(:disabled):focus,li>a:not(:disabled).active[data-v-0ce1cbf1],li>.menuitem[data-v-0ce1cbf1]:not(:disabled):hover,li>.menuitem[data-v-0ce1cbf1]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-0ce1cbf1]{opacity:1 !important}li>button.action[data-v-0ce1cbf1],li>a.action[data-v-0ce1cbf1],li>.menuitem.action[data-v-0ce1cbf1]{padding:inherit !important}li>button>span[data-v-0ce1cbf1],li>a>span[data-v-0ce1cbf1],li>.menuitem>span[data-v-0ce1cbf1]{cursor:pointer;white-space:nowrap}li>button>p[data-v-0ce1cbf1],li>a>p[data-v-0ce1cbf1],li>.menuitem>p[data-v-0ce1cbf1]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal;overflow:hidden;text-overflow:ellipsis}li>button>select[data-v-0ce1cbf1],li>a>select[data-v-0ce1cbf1],li>.menuitem>select[data-v-0ce1cbf1]{margin:0;margin-left:6px}li>button[data-v-0ce1cbf1]:not(:empty),li>a[data-v-0ce1cbf1]:not(:empty),li>.menuitem[data-v-0ce1cbf1]:not(:empty){padding-right:14px !important}li>button>img[data-v-0ce1cbf1],li>a>img[data-v-0ce1cbf1],li>.menuitem>img[data-v-0ce1cbf1]{width:16px;height:16px;margin:14px}li>button>input.radio+label[data-v-0ce1cbf1],li>button>input.checkbox+label[data-v-0ce1cbf1],li>a>input.radio+label[data-v-0ce1cbf1],li>a>input.checkbox+label[data-v-0ce1cbf1],li>.menuitem>input.radio+label[data-v-0ce1cbf1],li>.menuitem>input.checkbox+label[data-v-0ce1cbf1]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-0ce1cbf1]::before,li>a>input.checkbox+label[data-v-0ce1cbf1]::before,li>.menuitem>input.checkbox+label[data-v-0ce1cbf1]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-0ce1cbf1]::before,li>a>input.radio+label[data-v-0ce1cbf1]::before,li>.menuitem>input.radio+label[data-v-0ce1cbf1]::before{margin:-2px 12px 0}li>button>input[data-v-0ce1cbf1]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-0ce1cbf1]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-0ce1cbf1]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-0ce1cbf1],li>a form[data-v-0ce1cbf1],li>.menuitem form[data-v-0ce1cbf1]{display:flex;flex:1 1 auto}li>button form[data-v-0ce1cbf1]:not(:first-child),li>a form[data-v-0ce1cbf1]:not(:first-child),li>.menuitem form[data-v-0ce1cbf1]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-0ce1cbf1],li>button>span[style*=\"display:none\"]+form[data-v-0ce1cbf1],li>a>span.hidden+form[data-v-0ce1cbf1],li>a>span[style*=\"display:none\"]+form[data-v-0ce1cbf1],li>.menuitem>span.hidden+form[data-v-0ce1cbf1],li>.menuitem>span[style*=\"display:none\"]+form[data-v-0ce1cbf1]{margin-left:0}li>button input[data-v-0ce1cbf1],li>a input[data-v-0ce1cbf1],li>.menuitem input[data-v-0ce1cbf1]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-0ce1cbf1]:not(:first-child),li>a input[data-v-0ce1cbf1]:not(:first-child),li>.menuitem input[data-v-0ce1cbf1]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*=\"display:none\"]):first-of-type>button>form[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>button>input[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>a>form[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>a>input[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>.menuitem>form[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):first-of-type>.menuitem>input[data-v-0ce1cbf1]{margin-top:12px}li:not(.hidden):not([style*=\"display:none\"]):last-of-type>button>form[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>button>input[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>a>form[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>a>input[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>.menuitem>form[data-v-0ce1cbf1],li:not(.hidden):not([style*=\"display:none\"]):last-of-type>.menuitem>input[data-v-0ce1cbf1]{margin-bottom:12px}li>button[data-v-0ce1cbf1]{padding:0}li>button span[data-v-0ce1cbf1]{opacity:1}',\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopoverMenu/NcPopoverMenuItem.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,oBACC,YAAA,CACA,aAAA,CAEA,2BACC,YAAA,CAGD,+EAGC,cAAA,CACA,gBCWe,CDVf,QAAA,CACA,8BAAA,CACA,YAAA,CACA,sBAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBAAA,CACA,eAAA,CACA,UAAA,CACA,4BAAA,CACA,kBAAA,CACA,UCgBe,CDbf,ohBAIC,WAAA,CACA,YAAA,CACA,+BAAA,CACA,oBCRS,CDWV,yRAIC,wBAAA,CAQC,ylCACC,gBC5BY,CDiCf,2PAEC,qBAAA,CAGD,6aAGC,oBAAA,CAID,oGACC,0BAAA,CAGD,8FACC,cAAA,CACA,kBAAA,CAID,qFACC,WAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CAGA,eAAA,CACA,sBAAA,CAID,oGACC,QAAA,CACA,eAAA,CAID,mHACC,6BAAA,CAKD,2FACC,UC5ES,CD6ET,WC7ES,CD8ET,WC1EW,CD8EZ,mRAEC,oBAAA,CACA,UAAA,CAED,sKACC,kBAAA,CAED,6JACC,kBAAA,CAED,4QACC,WAAA,CAID,8FACC,YAAA,CACA,aAAA,CAGA,oJACC,eAAA,CAIF,oTAEC,aAAA,CAGD,iGACC,cCtHc,CDuHd,eAAA,CACA,YAAA,CACA,aAAA,CAEA,uJACC,eAAA,CAUA,+gBACC,eAAA,CAMD,ygBACC,kBAAA,CAKJ,2BACC,SAAA,CACA,gCACC,SCnIY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{math.div($clickable-area, 2)} 0 #{math.div($clickable-area, 2)} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\n\\t\\t}\\n\\n\\t\\t> span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t\\tmargin: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},291:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-3d7aaa3a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-3d7aaa3a]{display:block;width:100%;background:var(--color-background-dark);border:0;padding:0;height:var(--progress-bar-height);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-3d7aaa3a]::-webkit-progress-bar{height:var(--progress-bar-height)}.progress-bar[data-v-3d7aaa3a]::-webkit-progress-value{background:linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-3d7aaa3a]::-moz-progress-bar{background:linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar--error[data-v-3d7aaa3a]::-moz-progress-bar{background:var(--color-error) !important}.progress-bar--error[data-v-3d7aaa3a]::-webkit-progress-value{background:var(--color-error) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcProgressBar/NcProgressBar.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,+BACC,aAAA,CACA,UAAA,CACA,uCAAA,CACA,QAAA,CACA,SAAA,CACA,iCAAA,CACA,gDAAA,CACA,qDACC,iCAAA,CAED,uDACC,2GAAA,CACA,gDAAA,CAED,kDACC,2GAAA,CACA,gDAAA,CAIA,yDACC,wCAAA,CAED,8DACC,wCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.progress-bar {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\tbackground: var(--color-background-dark);\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\theight: var(--progress-bar-height);\\n\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t&::-webkit-progress-bar {\\n\\t\\theight: var(--progress-bar-height);\\n\\t}\\n\\t&::-webkit-progress-value {\\n\\t\\tbackground: linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);\\n\\t\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t}\\n\\t&::-moz-progress-bar {\\n\\t\\tbackground: linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);\\n\\t\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t}\\n\\t&--error {\\n\\t\\t// Override previous values\\n\\t\\t&::-moz-progress-bar {\\n\\t\\t\\tbackground: var(--color-error) !important;\\n\\t\\t}\\n\\t\\t&::-webkit-progress-value {\\n\\t\\t\\tbackground: var(--color-error) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},9965:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-bbd87134]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.related-resources__header[data-v-bbd87134]{margin:0 0 10px 46px}.related-resources__header h5[data-v-bbd87134]{font-weight:bold}.related-resources__header p[data-v-bbd87134]{color:var(--color-text-maxcontrast)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,4CACC,oBAAA,CAEA,+CACC,gBAAA,CAGD,8CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.related-resources {\\n\\t&__header {\\n\\t\\tmargin: 0 0 10px 46px;\\n\\n\\t\\th5 {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\n\\t\\tp {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},9817:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-718b7224]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resource[data-v-718b7224]{display:flex;align-items:center;height:44px}.resource__button[data-v-718b7224]{width:100% !important;justify-content:flex-start !important;padding:0 !important}.resource__button[data-v-718b7224] .button-vue__text{font-weight:normal !important;margin-left:2px !important}.resource__icon[data-v-718b7224]{width:32px;height:32px;background-color:var(--color-text-maxcontrast);border-radius:50%;display:flex;align-items:center;justify-content:center}.resource__icon img[data-v-718b7224]{width:16px;height:16px;filter:var(--background-invert-if-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRelatedResourcesPanel/NcResource.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,2BACC,YAAA,CACA,kBAAA,CACA,WAAA,CAGA,mCACC,qBAAA,CACA,qCAAA,CACA,oBAAA,CAEA,qDACC,6BAAA,CACA,0BAAA,CAIF,iCACC,UAAA,CACA,WAAA,CACA,8CAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,qCACC,UAAA,CACA,WAAA,CACA,uCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.resource {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\n\\t// Override default NcButton styles\\n\\t&__button {\\n\\t\\twidth: 100% !important;\\n\\t\\tjustify-content: flex-start !important;\\n\\t\\tpadding: 0 !important;\\n\\n\\t\\t&:deep(.button-vue__text) {\\n\\t\\t\\tfont-weight: normal !important;\\n\\t\\t\\tmargin-left: 2px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t\\tborder-radius: 50%;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\n\\t\\timg {\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},3767:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r),s=n(1667),l=n.n(s),A=new URL(n(3423),n.b),c=new URL(n(2605),n.b),d=new URL(n(7127),n.b),u=o()(i()),p=l()(A),m=l()(c),h=l()(d);u.push([t.id,\".material-design-icon[data-v-e2e54e2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.autocomplete-result[data-v-e2e54e2a]{display:flex;height:44px;padding:10px}.highlight .autocomplete-result[data-v-e2e54e2a]{color:var(--color-main-text);background:var(--color-primary-light)}.highlight .autocomplete-result[data-v-e2e54e2a],.highlight .autocomplete-result *[data-v-e2e54e2a]{cursor:pointer}.autocomplete-result__icon[data-v-e2e54e2a]{position:relative;flex:0 0 44px;width:44px;min-width:44px;height:44px;border-radius:44px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:24px}.autocomplete-result__icon--with-avatar[data-v-e2e54e2a]{color:inherit;background-size:cover}.autocomplete-result__status[data-v-e2e54e2a]{position:absolute;right:-4px;bottom:-4px;box-sizing:border-box;width:18px;height:18px;border:2px solid var(--color-main-background);border-radius:50%;background-color:var(--color-main-background);font-size:var(--default-font-size);line-height:15px;background-repeat:no-repeat;background-size:16px;background-position:center}.autocomplete-result__status--online[data-v-e2e54e2a]{background-image:url(\"+p+\")}.autocomplete-result__status--dnd[data-v-e2e54e2a]{background-image:url(\"+m+\");background-color:#fff}.autocomplete-result__status--away[data-v-e2e54e2a]{background-image:url(\"+h+\")}.autocomplete-result__status--icon[data-v-e2e54e2a]{border:none;background-color:rgba(0,0,0,0)}.autocomplete-result__content[data-v-e2e54e2a]{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;min-width:0;padding-left:10px}.autocomplete-result__title[data-v-e2e54e2a],.autocomplete-result__subline[data-v-e2e54e2a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-result__subline[data-v-e2e54e2a]{color:var(--color-text-lighter)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcAutoCompleteResult.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,sCACC,YAAA,CACA,WCmBgB,CDlBhB,YALsB,CAOtB,iDACC,4BAAA,CACA,qCAAA,CACA,oGACC,cAAA,CAIF,4CACC,iBAAA,CACA,aAAA,CACA,UCKe,CDJf,cCIe,CDHf,WCGe,CDFf,kBCEe,CDDf,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CACA,yDACC,aAAA,CACA,qBAAA,CAIF,8CACC,iBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,6CAAA,CACA,iBAAA,CACA,6CAAA,CACA,kCAAA,CACA,gBAAA,CACA,2BAAA,CACA,oBAAA,CACA,0BAAA,CAEA,sDACC,wDAAA,CAED,mDACC,wDAAA,CACA,qBAAA,CAED,oDACC,wDAAA,CAED,oDACC,WAAA,CACA,8BAAA,CAIF,+CACC,YAAA,CACA,aAAA,CACA,qBAAA,CACA,sBAAA,CACA,WAAA,CACA,iBAtEqB,CAyEtB,4FAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CAGD,+CACC,+BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n$autocomplete-padding: 10px;\\n\\n.autocomplete-result {\\n\\tdisplay: flex;\\n\\theight: $clickable-area;\\n\\tpadding: $autocomplete-padding;\\n\\n\\t.highlight & {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground: var(--color-primary-light);\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tborder-radius: $clickable-area;\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $clickable-area - 2 * $autocomplete-padding;\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 18px;\\n\\t\\theight: 18px;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: 15px;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-size: 16px;\\n\\t\\tbackground-position: center;\\n\\n\\t\\t&--online{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-online.svg');\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-dnd.svg');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\tbackground-image: url('../../assets/status-icons/user-status-away.svg');\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-width: 0;\\n\\t\\tpadding-left: $autocomplete-padding;\\n\\t}\\n\\n\\t&__title,\\n\\t&__subline {\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&__subline {\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=u},4477:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-32fccbe9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-32fccbe9]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-32fccbe9]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-32fccbe9]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-32fccbe9]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-32fccbe9]{color:inherit;background-size:cover}.mention-bubble__title[data-v-32fccbe9]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-32fccbe9]::before{content:attr(title)}.mention-bubble__select[data-v-32fccbe9]{position:absolute;z-index:-1;left:-1000px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcMentionBubble.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CAAA,mECCC,+BAAA,CACA,6CAAA,CAGD,0CACC,eAXiB,CAajB,WAAA,CACA,0BAAA,CACA,mBAAA,CACA,kBAAA,CAGD,0CACC,mBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,WAzBc,CA0Bd,wBAAA,CACA,gBAAA,CACA,iBAAA,CACA,gBA3Be,CA4Bf,kBAAA,CACA,6CAAA,CAGD,uCACC,iBAAA,CACA,UAjCmB,CAkCnB,WAlCmB,CAmCnB,iBAAA,CACA,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,oDACC,aAAA,CACA,qBAAA,CAIF,wCACC,eAAA,CACA,eAlDe,CAmDf,kBAAA,CACA,sBAAA,CAEA,gDACC,mBAAA,CAKF,yCACC,iBAAA,CACA,UAAA,CACA,YAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: math.div($bubble-height, 2);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: math.div($bubble-avatar-size, 2);\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},7689:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-47912cde]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-contenteditable__input[data-v-47912cde]{overflow-y:auto;width:auto;margin:0;padding:6px;cursor:text;white-space:pre-wrap;word-break:break-word;color:var(--color-main-text);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-large);outline:none;background-color:var(--color-main-background);font-family:var(--font-face);font-size:inherit;min-height:44px;max-height:242px}.rich-contenteditable__input--empty[data-v-47912cde]:before{content:attr(placeholder);color:var(--color-text-maxcontrast)}.rich-contenteditable__input[contenteditable=false][data-v-47912cde]:not(.rich-contenteditable__input--disabled){cursor:default;background-color:rgba(0,0,0,0);color:var(--color-main-text);border-color:rgba(0,0,0,0);opacity:1;border-radius:0}.rich-contenteditable__input--multiline[data-v-47912cde]{min-height:132px;max-height:none}.rich-contenteditable__input--disabled[data-v-47912cde]{opacity:.5;color:var(--color-text-lighter);border:1px solid var(--color-background-darker);border-radius:var(--border-radius);background-color:var(--color-background-dark)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcRichContenteditable.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,8CACC,eAAA,CACA,UAAA,CACA,QAAA,CACA,WAAA,CACA,WAAA,CACA,oBAAA,CACA,qBAAA,CACA,4BAAA,CACA,yCAAA,CACA,wCAAA,CACA,YAAA,CACA,6CAAA,CACA,4BAAA,CACA,iBAAA,CACA,eCOgB,CDNhB,gBAAA,CAGA,4DACC,yBAAA,CACA,mCAAA,CAGD,iHACC,cAAA,CACA,8BAAA,CACA,4BAAA,CACA,0BAAA,CACA,SAAA,CACA,eAAA,CAGD,yDACC,gBAAA,CAEA,eAAA,CAGD,wDACC,UCDiB,CDEjB,+BAAA,CACA,+CAAA,CACA,kCAAA,CACA,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n// Standalone styling, independent from server\\n.rich-contenteditable__input {\\n\\toverflow-y: auto;\\n\\twidth: auto;\\n\\tmargin: 0;\\n\\tpadding: 6px;\\n\\tcursor: text;\\n\\twhite-space: pre-wrap;\\n\\tword-break: break-word;\\n\\tcolor: var(--color-main-text);\\n\\tborder: 1px solid var(--color-border-dark);\\n\\tborder-radius: var(--border-radius-large);\\n\\toutline: none;\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-family: var(--font-face);\\n\\tfont-size: inherit;\\n\\tmin-height: $clickable-area;\\n\\tmax-height: $clickable-area * 5.5;\\n\\n\\t// Cannot use :empty because of firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1513303\\n\\t&--empty:before {\\n\\t\\tcontent: attr(placeholder);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&[contenteditable='false']:not(&--disabled) {\\n\\t\\tcursor: default;\\n\\t\\tbackground-color: transparent;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-color: transparent;\\n\\t\\topacity: 1;\\n\\t\\tborder-radius: 0;\\n\\t}\\n\\n\\t&--multiline {\\n\\t\\tmin-height: $clickable-area * 3;\\n\\t\\t// No max for mutiline\\n\\t\\tmax-height: none;\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\tborder: 1px solid var(--color-background-darker);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},7335:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.tribute-container,.tribute-container-emoji{z-index:9000;overflow:auto;min-width:250px;max-width:300px;max-height:288px;margin:5px 0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background);box-shadow:0 1px 5px var(--color-box-shadow)}.tribute-container-emoji{min-width:200px;max-width:200px;padding:4px;max-height:187.25px}.tribute-container-emoji__item{border-radius:8px;padding:4px 8px;margin-bottom:4px;opacity:.8;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tribute-container-emoji__item:last-child{margin-bottom:0}.tribute-container-emoji__item__emoji{padding-right:8px}.tribute-container-emoji .highlight{opacity:1;color:var(--color-main-text);background:var(--color-primary-light)}.tribute-container-emoji .highlight,.tribute-container-emoji .highlight *{cursor:pointer}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcRichContenteditable/NcRichContenteditable.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,4CACC,YAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CAGA,gBAAA,CAEA,YAAA,CACA,4BAAA,CACA,kCAAA,CACA,uCAAA,CACA,4CAAA,CAGD,yBACC,eAAA,CACA,eAAA,CACA,WAAA,CAEA,mBAAA,CAEA,+BACC,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,UAAA,CACA,cAAA,CAGA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,0CACC,eAAA,CAGD,sCACC,iBAAA,CAIF,oCACC,SAAA,CACA,4BAAA,CACA,qCAAA,CACA,0EACC,cAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.tribute-container, .tribute-container-emoji {\\n\\tz-index: 9000;\\n\\toverflow: auto;\\n\\tmin-width: 250px;\\n\\tmax-width: 300px;\\n\\t// Show maximum 4 entries and a half to show scroll\\n\\t// 44px + 10px padding\\n\\tmax-height: ($clickable-area + 20px) * 4.5;\\n\\t// Space it out a bit from the text\\n\\tmargin: 5px 0;\\n\\tcolor: var(--color-main-text);\\n\\tborder-radius: var(--border-radius);\\n\\tbackground: var(--color-main-background);\\n\\tbox-shadow: 0 1px 5px var(--color-box-shadow);\\n}\\n\\n.tribute-container-emoji {\\n\\tmin-width: 200px;\\n\\tmax-width: 200px;\\n\\tpadding: 4px;\\n\\t// Show maximum 5 entries and a half to show scroll\\n\\tmax-height: 34.5px * 5 + math.div(29.5px, 2);\\n\\n\\t&__item {\\n\\t\\tborder-radius: 8px;\\n\\t\\tpadding: 4px 8px;\\n\\t\\tmargin-bottom: 4px;\\n\\t\\topacity: 0.8;\\n\\t\\tcursor: pointer;\\n\\n\\t\\t// Take care of long names\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t&:last-child {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\t&__emoji {\\n\\t\\t\\tpadding-right: 8px;\\n\\t\\t}\\n\\t}\\n\\n\\t.highlight {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground: var(--color-primary-light);\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},1751:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-751c6bad]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.settings-section[data-v-751c6bad]{display:block;margin-bottom:auto;padding:30px}.settings-section[data-v-751c6bad]:not(:last-child){border-bottom:1px solid var(--color-border)}.settings-section--limit-width>*[data-v-751c6bad]{max-width:900px}.settings-section__title[data-v-751c6bad]{display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:bold;max-width:900px}.settings-section__info[data-v-751c6bad]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-14px;margin-left:0;opacity:.7}.settings-section__info[data-v-751c6bad]:hover,.settings-section__info[data-v-751c6bad]:focus,.settings-section__info[data-v-751c6bad]:active{opacity:1}.settings-section__desc[data-v-751c6bad]{margin-top:-0.2em;margin-bottom:1em;opacity:.7;max-width:900px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcSettingsSection/NcSettingsSection.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,mCACC,aAAA,CACA,kBAAA,CACA,YAAA,CAEA,oDACC,2CAAA,CAGD,kDACC,eAZS,CAeV,0CACC,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,gBAAA,CACA,eArBS,CAwBV,yCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UCLe,CDMf,WCNe,CDQf,YAAA,CACA,aAAA,CACA,UCQe,CDNf,8IACC,SCMY,CDFd,yCACC,iBAAA,CACA,iBAAA,CACA,UCFe,CDGf,eA5CS\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n$maxWidth: 900px;\\n\\n.settings-section {\\n\\tdisplay: block;\\n\\tmargin-bottom: auto;\\n\\tpadding: 30px;\\n\\n\\t&:not(:last-child) {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&--limit-width > * {\\n\\t\\tmax-width: $maxWidth;\\n\\t}\\n\\n\\t&__title {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\tfont-size: 20px;\\n\\t\\tfont-weight: bold;\\n\\t\\tmax-width: $maxWidth;\\n\\t}\\n\\n\\t&__info {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\t// make sure to properly align the icon with the text\\n\\t\\tmargin: -$icon-margin;\\n\\t\\tmargin-left: 0;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t&:hover, &:focus, &:active {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n\\n\\t&__desc {\\n\\t\\tmargin-top: -.2em;\\n\\t\\tmargin-bottom: 1em;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tmax-width: $maxWidth;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ \\n *\\n * @author John Molakvoæ \\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]),e.Z=o},7887:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-3992c512]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}[data-v-3992c512] .multiselect__tags{border:none !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcTimezonePicker/NcTimezonePicker.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,qCACC,sBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n:deep(.multiselect__tags) {\\n\\tborder: none !important; // Remove the Multiselect border\\n}\\n\"],sourceRoot:\"\"}]),e.Z=o},4188:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\".material-design-icon[data-v-46260473]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-bubble__wrapper[data-v-46260473]{display:inline-block;vertical-align:middle;min-width:0;max-width:100%}.user-bubble__content[data-v-46260473]{display:inline-flex;max-width:100%;background-color:var(--color-background-dark)}.user-bubble__content--primary[data-v-46260473]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.user-bubble__content[data-v-46260473]>:last-child{padding-right:8px}.user-bubble__avatar[data-v-46260473]{align-self:center}.user-bubble__title[data-v-46260473]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-bubble__title[data-v-46260473],.user-bubble__secondary[data-v-46260473]{padding:0;padding-left:4px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcUserBubble/NcUserBubble.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLA,uCAEC,oBAAA,CACA,qBAAA,CAEA,WAAA,CACA,cAAA,CAGD,uCACC,mBAAA,CACA,cAAA,CACA,6CAAA,CAEA,gDACC,+BAAA,CACA,6CAAA,CAGD,mDAEC,iBAAA,CAIF,sCACC,iBAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAGD,8EAGC,SAAA,CACA,gBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"a0481fe\\\"; @import 'variables'; @import 'material-icons';\\n\\n.user-bubble {\\n\\t&__wrapper {\\n\\t\\t// align inline with text\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t\\t// shrink and allow grow to fit\\n\\t\\tmin-width: 0;\\n\\t\\tmax-width: 100%;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\tmax-width: 100%;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\n\\t\\t&--primary {\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t> :last-child {\\n\\t\\t\\t// border radius left padding\\n\\t\\t\\tpadding-right: 8px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\talign-self: center;\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&__title,\\n\\t&__secondary {\\n\\t\\t// proper spacing between avatar, title & slot\\n\\t\\tpadding: 0;\\n\\t\\tpadding-left: 4px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=o},5999:function(t,e,n){var a=n(7537),i=n.n(a),r=n(3645),o=n.n(r)()(i());o.push([t.id,\"\\n.app-navigation-spacer[data-v-e9226d86] {\\n\\tflex-shrink: 0;\\n\\torder: 1;\\n\\theight: 22px;\\n}\\n\\n\",\"\",{version:3,sources:[\"webpack://./src/components/NcAppNavigationSpacer/NcAppNavigationSpacer.vue\"],names:[],mappings:\";AAwCA;CACA,cAAA;CACA,QAAA;CACA,YAAA;AACA\",sourcesContent:[\"\\x3c!--\\n - @copyright Copyright (c) 2019 Christoph Wurst \\n -\\n - @author Christoph Wurst \\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see .\\n -\\n --\\x3e\\n\\n\\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=style&index=0&id=91428bb8&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=style&index=0&id=91428bb8&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MainView.vue?vue&type=template&id=91428bb8&scoped=true&\"\nimport script from \"./MainView.vue?vue&type=script&lang=js&\"\nexport * from \"./MainView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MainView.vue?vue&type=style&index=0&id=91428bb8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"91428bb8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcContent',{attrs:{\"app-name\":\"openhab\"}},[_c('NcAppNavigation',[_c('ul',_vm._l((_vm.sitemaps),function(sitemap){return _c('NcAppNavigationItem',{key:sitemap.name,attrs:{\"title\":sitemap.label},on:{\"click\":function($event){return _vm.open(sitemap.name)}}})}),1)]),_vm._v(\" \"),_c('NcAppContent',{attrs:{\"id\":\"app-content\"}},[(_vm.currentSitemap)?_c('div',_vm._l((_vm.currentSitemap.homepage.widgets),function(widget){return _c('Widget',{key:widget.widgetid,attrs:{\"config\":widget}})}),1):_c('div',{attrs:{\"id\":\"emptycontent\"}},[(_vm.sitemaps && _vm.sitemaps.length)?_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('openhab', 'Select a sitemap'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.sitemaps || !_vm.sitemaps.length)?_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('openhab', 'No sitemaps found. Check your config or create a sitemap.'))+\"\\n\\t\\t\\t\")]):_vm._e()])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport Router from 'vue-router'\nimport MainView from './MainView'\nimport { generateUrl } from '@nextcloud/router'\n\nVue.use(Router)\n\nexport default new Router({\n\tbase: generateUrl('/apps/openhab'),\n\tlinkActiveClass: 'active',\n\troutes: [\n\t\t{\n\t\t\tpath: '/',\n\t\t\tname: 'overview',\n\t\t\tcomponent: MainView,\n\t\t},\n\t\t{\n\t\t\tpath: '/sitemaps/:sitemap',\n\t\t\tname: 'details',\n\t\t\tcomponent: MainView,\n\t\t},\n\t],\n})\n","import Vue from 'vue'\nimport App from './App'\nimport router from './router'\n\nVue.prototype.t = t\nVue.prototype.n = n\nVue.prototype.OC = OC\nVue.prototype.OCA = OCA\n\nexport default new Vue({\n\tel: '#content',\n\trouter,\n\trender: h => h(App),\n})\n"],"names":["Object","defineProperty","exports","value","enumerable","get","_requesttoken","getRequestToken","onRequestTokenUpdate","_user","getCurrentUser","token","observer","observers","push","_eventBus","tokenElement","document","getElementsByTagName","getAttribute","subscribe","e","forEach","console","error","uid","displayName","isAdmin","uidElement","displayNameElement","OC","isUserAdmin","obj","_getRequestToken","_axios","__esModule","default","_auth","client","create","headers","requesttoken","cancelableClient","assign","CancelToken","isCancel","defaults","_default","getBuilder","appId","_storagebuilder","clearAll","window","sessionStorage","localStorage","map","s","clearStorage","clearNonPersistent","k","startsWith","_scopedstorage","GLOBAL_SCOPE_PERSISTENT","_interopRequireDefault","storage","pred","keys","filter","removeItem","bind","_defineProperties","target","props","i","length","descriptor","configurable","writable","key","_defineProperty","ScopedStorage","scope","wrapped","persistent","instance","Constructor","TypeError","_classCallCheck","this","concat","GLOBAL_SCOPE_VOLATILE","btoa","protoProps","staticProps","setItem","scopeKey","getItem","_this","prototype","StorageBuilder","_persist","arguments","undefined","persisted","clear","clearedOnLogout","module","it","String","isObject","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","O","index","includes","indexOf","IndexedObject","toObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","specificCreate","result","self","boundFunction","call","some","every","find","findIndex","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","isArray","originalArray","C","Array","aFunction","fn","a","b","c","apply","toString","slice","has","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","f","getOwnPropertyDescriptor","MATCH","regexp","DESCRIPTORS","createPropertyDescriptor","object","bitmap","toPrimitive","propertyKey","global","EXISTS","createElement","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","exec","path","variable","namespace","method","check","Math","globalThis","g","Function","hasOwnProperty","classof","split","propertyIsEnumerable","store","functionToString","inspectSource","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","metadata","STATE","enforce","getterFor","state","type","arg","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isRegExp","getOwnPropertySymbols","Symbol","test","IE8_DOM_DEFINE","anObject","nativeDefineProperty","P","Attributes","propertyIsEnumerableModule","nativeGetOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","names","enumBugKeys","nativePropertyIsEnumerable","NASHORN_BUG","V","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","join","shared","SHARED","IS_PURE","version","mode","copyright","toInteger","max","min","integer","requireObjectCoercible","ceil","floor","argument","isNaN","input","PREFERRED_STRING","val","valueOf","id","postfix","random","NATIVE_SYMBOL","iterator","match","userAgent","process","versions","v8","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","name","$","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","len","E","A","n","$filter","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","$map","nativeKeys","notARegExp","correctIsRegExpLogic","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","Error","uuid","byteToHex","substr","arr","offset","buf","rnds","ModificationNotAllowedError","lockableTrait","baseClass","args","super","_mutable","isLocked","lock","unlock","_modify","_modifyContent","ExpectedICalJSError","lc","str","uc","toUpperCase","ucFirst","charAt","startStringWith","startWith","GLOBAL_CONFIG","Map","getConfig","defaultValue","propertyName","observerTrait","_subscribers","handler","unsubscribe","splice","_notifySubscribers","Parameter","_name","_value","getFirstValue","isMultiValue","clone","parameter","AbstractValue","icalValue","_innerValue","toICALJs","BinaryValue","rawValue","decodeValue","decodedValue","setEncodedValue","fromRawValue","static","icalBinary","fromICALJs","DurationValue","weeks","days","hours","minutes","seconds","isNegative","totalSeconds","toSeconds","fromSeconds","compare","otherDuration","addDuration","subtractDuration","icalDuration","DateTimeValue","year","month","day","hour","minute","second","timezoneId","zone","tzid","timezone","isDate","unixTime","toUnixTime","jsDate","toJSDate","duration","subtractDateWithoutTimezone","other","subtractDate","subtractDateWithTimezone","subtractDateTz","compareDateOnlyInGivenTimezone","compareDateOnlyTz","toICALTimezone","getInTimezone","clonedICALTime","convertToZone","getICALTimezone","getInICALTimezone","getInUTC","silentlyReplaceTimezone","replaceTimezone","utcOffset","isFloatingTime","useUTC","SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","DEFAULT_WEEK_START","PeriodValue","_start","start","_end","_duration","end","getEnd","getDuration","icalPeriod","ALLOWED_FREQ","RecurValue","until","_until","interval","parseInt","weekStart","wkst","count","frequency","freq","setToInfinite","isFinite","isByCount","addComponent","componentName","setComponent","parts","removeComponent","getComponent","isRuleValid","icalRecur","UTCOffsetValue","factor","icalUTCOffset","fromData","UnknownICALTypeError","Property","parameters","root","parent","_parameters","_root","_parent","_setParametersFromConstructor","addValue","hasValue","removeValue","setParameter","getParameter","parameterName","values","getParameterFirstValue","hasParameter","deleteParameter","delete","updateParameterIfExist","isDecoratedValue","getParametersIterator","getValueIterator","_cloneValue","icalProperty","isDecorated","icaltype","getConstructorForICALType","getValues","toJSON","paramName","setValues","setValue","firstValue","AttachmentProperty","formatType","fmtType","uri","encoding","fromDecodedValue","binaryValue","property","AttendeeProperty","role","allowed","userType","rsvp","commonName","participationStatus","vobjectType","VEVENT","VJOURNAL","VTODO","language","email","isOrganizer","defaultType","valueType","multiValue","ConferenceProperty","listAllFeatures","addFeature","featureToAdd","hasFeature","removeFeature","clearAllFeatures","label","features","FreeBusyProperty","period","GeoProperty","latitude","lat","parseFloat","longitude","long","ImageProperty","display","RelationProperty","relationType","relatedId","relType","relId","RequestStatusProperty","statusCode","statusMessage","exceptionData","isPending","isSuccessful","isClientError","isSchedulingError","code","message","SUCCESS","SUCCESS_FALLBACK","SUCCESS_PROP_IGNORED","SUCCESS_PROPPARAM_IGNORED","SUCCESS_NONSTANDARD_PROP_IGNORED","SUCCESS_NONSTANDARD_PROPPARAM_IGNORED","SUCCESS_COMP_IGNORED","SUCCESS_FORWARDED","SUCCESS_REPEATING_IGNORED","SUCCESS_TRUNCATED_END","SUCCESS_REPEATING_VTODO_IGNORED","SUCCESS_UNBOUND_RRULE_CLIPPED","CLIENT_INVALID_PROPNAME","CLIENT_INVALID_PROPVALUE","CLIENT_INVALID_PROPPARAM","CLIENT_INVALID_PROPPARAMVALUE","CLIENT_INVALUD_CALENDAR_COMP_SEQ","CLIENT_INVALID_DATE_TIME","CLIENT_INVALID_RRULE","CLIENT_INVALID_CU","CLIENT_NO_AUTHORITY","CLIENT_UNSUPPORTED_VERSION","CLIENT_TOO_LARGE","CLIENT_REQUIRED_COMP_OR_PROP_MISSING","CLIENT_UNKNOWN_COMP_OR_PROP","CLIENT_UNSUPPORTED_COMP_OR_PROP","CLIENT_UNSUPPORTED_CAPABILITY","SCHEDULING_EVENT_CONFLICT","SERVER_REQUEST_NOT_SUPPORTED","SERVER_SERVICE_UNAVAILABLE","SERVER_INVALID_CALENDAR_SERVICE","SERVER_NO_SCHEDULING_FOR_USER","TextProperty","alternateText","altRep","TriggerProperty","related","isRelative","alarmTime","alarmOffset","relatedToStart","getConstructorForPropertyName","propName","AbstractComponent","properties","components","_properties","_components","_setPropertiesFromConstructor","_setComponentsFromConstructor","getPropertyIterator","component","getComponentIterator","getFirstProperty","getFirstPropertyFirstValue","updatePropertyWithValue","newProperty","addProperty","hasProperty","lang","_getFirstOfPropertyByLang","_getAllOfPropertyByLang","next","deleteProperty","deleteAllProperties","getFirstComponent","hasComponent","deleteComponent","deleteAllComponents","newComponent","icalProp","getAllProperties","icalComp","getAllSubcomponents","_getConstructorForComponentName","prop","comp","addSubcomponent","advertiseSingleOccurrenceProperty","advertiseValueOnly","iCalendarName","pluralName","allowedValues","unknownValue","getDefaultOncePropConfig","advertiseMultipleOccurrenceProperty","getDefaultMultiplePropConfig","from","advertiseMultiValueStringPropertySeparatedByLang","languageParameter","dateFactory","Date","RecurringWithoutDtStartError","RecurrenceManager","masterItem","_masterItem","_recurrenceExceptionItems","_rangeRecurrenceExceptionItemsIndex","_rangeRecurrenceExceptionItemsDiffCache","_rangeRecurrenceExceptionItems","getRecurrenceExceptionList","getRecurrenceExceptionIterator","hasRecurrenceExceptionForId","recurrenceId","getRecurrenceException","hasRangeRecurrenceExceptionForId","getRangeRecurrenceExceptionForId","getRangeRecurrenceExceptionDiff","recurrenceException","originalRecurrenceId","difference","startDate","relateRecurrenceException","recurrenceExceptionItem","_getRecurrenceIdKey","modifiesFuture","recurrenceManager","removeRecurrenceException","removeRecurrenceExceptionByRecurrenceId","getRecurrenceRuleList","getRecurrenceRuleIterator","addRecurrenceRule","recurrenceRule","resetCache","removeRecurrenceRule","clearAllRecurrenceRules","_getPropertiesForRecurrenceDate","listAllRecurrenceDates","getRecurrenceDateIterator","addRecurrenceDate","_getValueTypeByValue","first","markPropertyAsDirty","_getPropertyNameByIsNegative","hasRecurrenceDate","getRecurrenceDate","valueToCheck","removeRecurrenceDate","allValues","clearAllRecurrenceDates","rule","isEmptyRecurrenceSet","_getRecurExpansionObject","getOccurrenceAtExactly","isRecurring","getReferenceRecurrenceId","icalRecurrenceId","_getOccurrenceAtRecurrenceId","getClosestOccurrence","previous","dateTimeValue","queriedTimeRangeStart","queriedTimeRangeEnd","isInTimeFrame","queriedICALJsTimeRangeStart","queriedICALJsTimeRangeEnd","recurrenceIdKeys","maximumRecurrenceId","occurrence","compareDate","endDate","isRecurrenceException","size","getAllOccurrencesBetween","getAllOccurrencesBetweenIterator","updateUID","newUID","updateStartDateOfMasterItem","newStartDate","oldStartDate","exdate","rrule","canCreateRecurrenceExceptions","forkItem","rangeRecurrenceException","dtstart","last","ruleIterators","ruleDateInc","ruleDates","ruleDate","exDates","ruleValue","rDateValue","exDateValue","exDateInc","exDate","complete","TimezoneComponent","toTimezone","Timezone","ics","_timezoneId","_ics","_initialized","offsetForArray","_initialize","time","timestampToArray","ms","fromUnixTime","local","toTimezoneComponent","jCal","utc","floating","AlarmComponent","addAttendeeFromNameAndEMail","attendeeProperty","fromNameAndEMail","trigger","setTriggerFromAbsolute","triggerProperty","fromAbsolute","setTriggerFromRelative","fromRelativeAndRelated","AbstractRecurringComponent","_primaryItem","_isExactForkOfPrimary","_originalRecurrenceId","_recurrenceManager","_dirty","_significantChange","_cachedId","primaryItem","isExactForkOfPrimary","isMasterItem","encodeURIComponent","isPartOfRecurrenceSet","startDiff","originalTimezone","dtStartValue","recurrenceDate","dtEnd","due","resetDirty","primaryIsRecurring","createRecurrenceException","thisAndAllFuture","previousPrimaryItem","_overridePrimaryItem","removeThisOccurrence","addRelation","fromJSDate","fromEmpty","attendee","getAttendeeIterator","recurDate","valueDateTimeRecurDate","recurValue","exceptionDate","exception","_addAttendee","addAttendeeFromNameEMailRoleUserTypeAndRSVP","fromNameEMailRoleUserTypeAndRSVP","setOrganizerFromNameAndEMail","addAttachmentFromData","addAttachmentFromLink","fromLink","addContact","contact","addComment","comment","addImageFromData","addImageFromLink","fromRelTypeAndId","addRequestStatus","fromCodeAndMessage","addAbsoluteAlarm","action","alarmComp","addRelativeAlarm","markDirty","markChangesAsSignificant","markSubComponentAsDirty","isDirty","undirtify","sequence","getTypeOfBirthdayEvent","eventComponent","getDefaultMultipleCompConfig","EventComponent","isAllDay","canModifyAllDay","dtend","setGeographicalPositionFromLatitudeAndLongitude","fromPosition","addConference","fromURILabelAndFeatures","addDurationToStart","addDurationToEnd","shiftByDuration","delta","allDay","defaultTimezone","defaultAllDayDuration","defaultTimedDuration","currentAllDay","isBirthdayEvent","getIconForBirthdayEvent","getIconForBirthday","getAgeForBirthdayEvent","yearOfOccurrence","yearOfBirth","getAgeOfBirthday","toICSEntireSeries","toICS","toICSThisOccurrence","FreeBusyComponent","JournalComponent","addDescription","description","ToDoComponent","propertiesToCheck","propertyToCheck","dueTime","geographicalPosition","getConstructorForComponentName","compName","CalendarComponent","getEventIterator","getJournalIterator","getTodoIterator","cleanUpTimezones","vObject","getVObjectIterator","icalRoot","additionalProps","tzData","aliases","aliasTo","GMT","GMT0","Greenwich","UCT","Universal","Z","Zulu","zones","timezoneManager","_aliases","_timezones","getTimezoneForId","_getTimezoneForIdRec","level","resolvedTimezoneId","hasTimezoneForId","isAlias","listAllTimezones","includeAliases","timezones","registerTimezone","registerDefaultTimezones","debug","registerTimezoneFromICS","registerAlias","aliasName","unregisterTimezones","unregisterAlias","clearAllTimezones","getTimezoneManager","TimezoneAdapter","_timezoneManager","register","remove","reset","IllegalValueError","getCapabilities","_initialState","loadState","app","fallback","elem","querySelector","JSON","parse","atob","env","commonjsGlobal","global$l","shared$4","global$k","defineProperty$4","defineGlobalProperty$3","defineGlobalProperty$2","sharedStore","store$2","license","fails$l","functionBindNative","NATIVE_BIND$3","FunctionPrototype$2","bind$6","call$i","uncurryThis$n","functionUncurryThis","$TypeError$c","requireObjectCoercible$6","requireObjectCoercible$5","$Object$3","toObject$4","toObject$3","hasOwnProperty$1","hasOwnProperty_1","hasOwn","uncurryThis$l","toString$9","uid$2","isCallable$j","global$i","isCallable$i","getBuiltIn$8","engineUserAgent","global$h","userAgent$3","process$4","Deno$1","Deno","engineV8Version","V8_VERSION$2","fails$j","nativeSymbol","symbol","useSymbolAsUid","global$g","shared$3","hasOwn$9","uid$1","USE_SYMBOL_AS_UID$1","Symbol$2","symbolFor","wellKnownSymbol$f","toStringTagSupport","objectDefineProperty","descriptors","isCallable$h","isObject$a","isObject$9","document$3","EXISTS$1","documentCreateElement$1","createElement$1","ie8DomDefine","v8PrototypeDefineBug","isObject$8","$String$3","$TypeError$b","anObject$f","NATIVE_BIND$2","call$h","functionCall","objectIsPrototypeOf","isPrototypeOf","getBuiltIn$6","isCallable$g","isPrototypeOf$3","$Object$2","isSymbol$3","$Symbol","$String$2","tryToString$4","isCallable$f","tryToString$3","$TypeError$a","aCallable$7","aCallable$6","getMethod$5","func","call$g","isCallable$e","isObject$7","$TypeError$9","call$f","isObject$6","isSymbol$2","getMethod$4","ordinaryToPrimitive","pref","$TypeError$8","TO_PRIMITIVE","exoticToPrim","isSymbol$1","toPropertyKey$3","DESCRIPTORS$8","IE8_DOM_DEFINE$1","V8_PROTOTYPE_DEFINE_BUG$1","anObject$e","toPropertyKey$2","$TypeError$7","$defineProperty","$getOwnPropertyDescriptor$1","ENUMERABLE","CONFIGURABLE$1","WRITABLE","current","makeBuiltIn$2","DESCRIPTORS$7","hasOwn$8","FunctionPrototype$1","getDescriptor","functionName","PROPER","CONFIGURABLE","isCallable$d","store$1","set$1","get$2","inspectSource$4","isCallable$c","inspectSource$3","WeakMap$1","nativeWeakMap","createPropertyDescriptor$3","definePropertyModule$5","createPropertyDescriptor$2","createNonEnumerableProperty$3","shared$2","sharedKey$2","hiddenKeys$4","global$d","uncurryThis$i","isObject$5","createNonEnumerableProperty$2","hasOwn$7","shared$1","sharedKey$1","hiddenKeys$3","OBJECT_ALREADY_INITIALIZED","TypeError$2","facade","internalState","fails$f","isCallable$b","hasOwn$6","DESCRIPTORS$5","CONFIGURABLE_FUNCTION_NAME","inspectSource$2","getInternalState$1","defineProperty$3","CONFIGURABLE_LENGTH","makeBuiltIn$1","getter","setter","arity","isCallable$a","definePropertyModule$4","makeBuiltIn","defineGlobalProperty$1","defineBuiltIn$6","nonConfigurable","nonWritable","uncurryThis$h","toString$8","stringSlice$5","classofRaw$1","TO_STRING_TAG_SUPPORT$2","isCallable$9","classofRaw","TO_STRING_TAG$1","$Object$1","CORRECT_ARGUMENTS","classof$9","tag","tryGet","callee","classof$8","toString$7","objectGetOwnPropertyDescriptor","objectPropertyIsEnumerable","$propertyIsEnumerable","getOwnPropertyDescriptor$2","fails$e","classof$7","$Object","indexedObject","IndexedObject$2","requireObjectCoercible$4","toIndexedObject$4","DESCRIPTORS$4","call$e","propertyIsEnumerableModule$1","createPropertyDescriptor$1","toIndexedObject$3","toPropertyKey$1","hasOwn$5","$getOwnPropertyDescriptor","objectGetOwnPropertyNames","floor$1","trunc","x","toIntegerOrInfinity$4","number","toIntegerOrInfinity$3","max$2","min$3","toAbsoluteIndex$2","toIntegerOrInfinity$2","min$2","toLength$3","toLength$2","lengthOfArrayLike$4","toIndexedObject$2","toAbsoluteIndex$1","lengthOfArrayLike$3","createMethod$3","arrayIncludes","hasOwn$4","toIndexedObject$1","indexOf$1","hiddenKeys$2","push$3","objectKeysInternal","enumBugKeys$3","internalObjectKeys$1","hiddenKeys$1","objectGetOwnPropertySymbols","getBuiltIn$5","getOwnPropertySymbolsModule$1","anObject$d","concat$2","ownKeys$1","hasOwn$3","definePropertyModule$3","fails$d","isCallable$8","isForced$2","isForced_1","global$c","getOwnPropertyDescriptor$1","createNonEnumerableProperty$1","defineBuiltIn$4","defineGlobalProperty","exceptions","isForced$1","_export","dontCallGetSet","engineIsNode","isCallable$7","$String$1","$TypeError$6","uncurryThis$d","anObject$c","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","__proto__","defineProperty$2","hasOwn$2","TO_STRING_TAG","getBuiltIn$4","definePropertyModule$2","DESCRIPTORS$3","SPECIES$5","isPrototypeOf$2","$TypeError$5","uncurryThis$c","fails$c","isCallable$6","classof$5","inspectSource$1","noop","empty","construct","constructorRegExp","exec$2","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","location","defer","channel","port","isConstructor$2","called","isConstructor$1","tryToString$2","$TypeError$4","anObject$b","aConstructor","SPECIES$4","speciesConstructor$2","defaultConstructor","S","NATIVE_BIND$1","FunctionPrototype","apply$3","call$d","functionApply","Reflect","aCallable$5","NATIVE_BIND","bind$5","functionBindContext","html$2","arraySlice$2","$TypeError$3","engineIsIos","global$a","apply$2","bind$4","isCallable$5","hasOwn$1","fails$b","html$1","arraySlice$1","validateArgumentsLength","passed","required","IS_IOS$1","IS_NODE$3","setImmediate","clearImmediate","process$3","Dispatch","Function$1","MessageChannel","String$1","counter","queue$1","ONREADYSTATECHANGE","run","runner","listener","event","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","flush","head","notify$1","toggle","node","promise","then","task$1","global$9","engineIsIosPebble","Pebble","engineIsWebosWebkit","global$8","bind$3","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE$2","MutationObserver","WebKitMutationObserver","document$2","process$2","Promise$1","Promise","queueMicrotaskDescriptor","queueMicrotask","domain","exit","enter","resolve","createTextNode","observe","characterData","microtask$1","task","global$7","perform$3","Queue$1","tail","add","item","entry","queue","promiseNativeConstructor","engineIsDeno","engineIsBrowser","global$5","NativePromiseConstructor$3","isCallable$4","wellKnownSymbol$8","IS_BROWSER","IS_DENO","V8_VERSION$1","SPECIES$3","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT$1","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR$5","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability$2","aCallable$4","PromiseCapability","reject","$$resolve","$$reject","Internal","OwnPromiseCapability","nativeThen","$$b","IS_NODE","global$4","call$c","defineBuiltIn$3","setToStringTag","TAG","setSpecies","CONSTRUCTOR_NAME","aCallable$3","isCallable$3","isObject$4","anInstance","Prototype","speciesConstructor$1","microtask","hostReportErrors","perform$2","Queue","NativePromiseConstructor$2","newPromiseCapabilityModule$3","PROMISE","FORCED_PROMISE_CONSTRUCTOR$4","NATIVE_PROMISE_REJECTION_EVENT","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","NativePromisePrototype$1","PromiseConstructor","PromisePrototype","TypeError$1","document$1","process$1","newPromiseCapability$1","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","notify","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","bind$2","unwrap","internalReject","done","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","iterators","Iterators$1","ITERATOR$2","ArrayPrototype","classof$4","getMethod$3","Iterators","ITERATOR$1","getIteratorMethod$2","call$b","aCallable$2","anObject$a","tryToString$1","getIteratorMethod$1","$TypeError$2","call$a","anObject$9","getMethod$2","bind$1","call$9","anObject$8","tryToString","isArrayIteratorMethod","lengthOfArrayLike$2","isPrototypeOf$1","getIterator","usingIterator","iteratorMethod","getIteratorMethod","iteratorClose","kind","innerResult","innerError","$TypeError$1","Result","stopped","ResultPrototype","iterate$2","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","ITERATOR","SAFE_CLOSING","iteratorWithReturn","NativePromiseConstructor$1","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","all","call$8","aCallable$1","newPromiseCapabilityModule$2","perform$1","iterate$1","capability","$promiseResolve","remaining","alreadyCalled","$$9","FORCED_PROMISE_CONSTRUCTOR$2","NativePromiseConstructor","getBuiltIn$1","isCallable$2","defineBuiltIn$2","NativePromisePrototype","real","call$7","aCallable","newPromiseCapabilityModule$1","perform","iterate","race","call$6","newPromiseCapabilityModule","r","FilePickerType","anObject$7","isObject$3","newPromiseCapability","$$6","FORCED_PROMISE_CONSTRUCTOR","promiseResolve","promiseCapability","FilePicker","title","multiSelect","mimeTypeFilter","modal","directoriesAllowed","mimeTypeFiler","pick","res","rej","dialogs","filepicker","allowDirectoryChooser","FilePickerBuilder","Choose","setMultiSelect","addMimeTypeFilter","setMimeTypeFilter","setModal","setType","allowDirectories","allow","startAt","build","getFilePickerBuilder","enumBugKeys$1","objectKeys$2","DESCRIPTORS$2","uncurryThis$9","call$5","fails$a","objectKeys$1","toObject$2","IndexedObject$1","$assign","defineProperty$1","concat$1","objectAssign","B","alphabet","chr","T","argumentsLength","j","classof$3","$String","toString$6","anObject$6","regexpFlags$1","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","call$4","regExpFlags","RegExpPrototype$2","RegExp","PROPER_FUNCTION_NAME$1","defineBuiltIn$1","anObject$5","$toString","fails$9","getRegExpFlags","R","flags","TO_STRING","n$ToString","NOT_GENERIC","INCORRECT_NAME","__assign","t","p","_typeof","fails$8","$RegExp$2","UNSUPPORTED_Y$2","re","lastIndex","MISSED_STICKY","regexpStickyHelpers","BROKEN_CARET","UNSUPPORTED_Y","objectDefineProperties","DESCRIPTORS$1","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule$1","anObject$4","objectKeys","defineProperties","Properties","activeXDocument","anObject$3","definePropertiesModule","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","style","src","contentWindow","open","F","re1","re2","objectCreate","fails$7","$RegExp$1","regexpUnsupportedDotAll","fails$6","$RegExp","regexpUnsupportedNcg","groups","call$3","uncurryThis$8","toString$5","regexpFlags","stickyHelpers$1","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","charAt$3","replace$2","stringSlice$4","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y$1","NPCG_INCLUDED","reCopy","group","raw","charsAdded","strCopy","regexpExec$3","uncurryThis$7","defineBuiltIn","regexpExec$2","fails$5","wellKnownSymbol$4","SPECIES$2","RegExpPrototype","fixRegexpWellKnownSymbolLogic","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","uncurryThis$6","toIntegerOrInfinity$1","toString$4","requireObjectCoercible$3","charAt$2","charCodeAt","stringSlice$3","createMethod$2","CONVERT_TO_STRING","pos","position","charAt$1","codeAt","advanceStringIndex$2","uncurryThis$5","toObject$1","replace$1","stringSlice$2","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","call$2","anObject$2","isCallable$1","classof$2","regexpExec$1","$TypeError","regexpExecAbstract","apply$1","call$1","uncurryThis$4","fixRegExpWellKnownSymbolLogic$1","fails$4","anObject$1","isCallable","toIntegerOrInfinity","toLength$1","toString$3","requireObjectCoercible$2","advanceStringIndex$1","getMethod$1","getSubstitution","matched","captures","namedCaptures","tailPos","m","symbols","ch","capture","regExpExec","REPLACE","max$1","min$1","push$2","stringIndexOf","stringSlice$1","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","fails$3","$$3","$IndexOf","arrayMethodIsStrict","un$IndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","isObject$2","classof$1","toPropertyKey","lengthOfArrayLike$1","$Array$1","uncurryThis$2","fixRegExpWellKnownSymbolLogic","requireObjectCoercible$1","speciesConstructor","advanceStringIndex","toString$2","getMethod","arraySlice","fin","callRegExpExec","regexpExec","fails$2","MAX_UINT32","$push","push$1","stringSlice","SPLIT","nativeSplit","internalSplit","separator","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","z","originalExec","whitespaces$2","toString$1","whitespace","ltrim","rtrim","createMethod$1","stringTrim","trim","PROPER_FUNCTION_NAME","fails$1","whitespaces","$trim","forcedStringTrimMethod","toastify","factory","Toastify","lib","init","getAxisOffsetAValue","axis","containsClass","yourClass","className","oldestFirst","text","selector","callback","destination","newWindow","gravity","positionLeft","backgroundColor","avatar","stopOnFocus","onClick","y","escapeMarkup","ariaLive","background","toastElement","buildToast","divElement","warn","setAttribute","nodeType","Node","ELEMENT_NODE","innerText","innerHTML","avatarElement","insertAdjacentElement","closeElement","stopPropagation","removeElement","clearTimeout","timeOutValue","width","innerWidth","screen","xOffset","yOffset","transform","showToast","rootElement","getElementById","HTMLElement","ShadowRoot","body","elementToInsert","firstChild","lastChild","insertBefore","reposition","hideToast","parentNode","classUsed","topLeftOffsetSize","top","bottom","topRightOffsetSize","offsetSize","allToasts","getElementsByClassName","height","offsetHeight","isArray$1","isConstructor","isObject$1","SPECIES$1","$Array","arraySpeciesConstructor","lengthOfArrayLike","IS_FILTER_REJECT","arrayIteration","filterReject","gettext$1","HASH_UNDEFINED","funcTag","genTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","freeGlobal","freeSelf","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","funcToString","objectToString","reIsNative","Symbol$1","getNative","nativeCreate","symbolProto","symbolToString","Hash","entries","ListCache","MapCache","assocIndexOf","baseGet","isSymbol","isKey","stringToPath","toKey","baseIsNative","pattern","isFunction","isHostObject","toSource","getMapData","__data__","getValue","pop","memoize","baseToString","quote","resolver","memoized","cache","Cache","isObjectLike","plurals","ach","examples","plural","sample","nplurals","pluralsText","pluralsFunc","af","ak","am","an","ar","arn","ast","ay","az","be","bg","bn","bo","br","brx","bs","ca","cgg","cs","csb","cy","da","de","doi","dz","en","eo","es","et","eu","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gl","gu","gun","ha","he","hi","hne","hr","hu","hy","is","ja","jbo","jv","ka","kk","km","kn","ko","ku","kw","ky","lb","ln","lo","lt","lv","mai","mfe","mg","mi","mk","ml","mn","mni","mnk","mr","mt","my","nah","nap","nb","ne","nl","nn","no","nso","oc","or","pa","pap","pl","pms","ps","pt","rm","ro","ru","rw","sah","sat","sco","sd","se","si","sk","sl","so","son","sq","sr","su","sv","sw","ta","te","tg","th","ti","tk","tr","tt","ug","uk","ur","uz","vi","wa","wo","yo","zh","gettext","Gettext","catalogs","locale","listeners","sourceLocale","on","eventName","off","eventData","addTranslations","translations","setLocale","setTextDomain","msgid","dnpgettext","dgettext","ngettext","msgidPlural","dngettext","pgettext","msgctxt","dpgettext","npgettext","translation","defaultTranslation","_getTranslation","getLanguageCode","msgstr","getComment","comments","textdomain","setlocale","addTextdomain","dist","getLocale","documentElement","dataset","getCanonicalLocale","getDayNames","dayNames","getDayNamesMin","dayNamesMin","getDayNamesShort","dayNamesShort","getFirstDay","firstDay","getLanguage","getMonthNames","monthNames","getMonthNamesShort","monthNamesShort","translate","vars","L10N","translatePlural","textSingular","textPlural","getGettextBuilder_1","getGettextBuilder","GettextBuilder","_nodeGettext","_createClass","setLanguage","GettextWrapper","gt","translated","original","placeholders","subtitudePlaceholders","singular","gtBuilder","detectLocale","TRANSLATIONS","addTranslation","json","ToastType","ERROR","WARNING","INFO","PERMANENT","UNDO","TOAST_ARIA_LIVE_OFF","TOAST_ARIA_LIVE_POLITE","TOAST_ARIA_LIVE_ASSERTIVE","ToastAriaLive","OFF","POLITE","ASSERTIVE","TOAST_UNDO_TIMEOUT","TOAST_DEFAULT_TIMEOUT","TOAST_PERMANENT_TIMEOUT","showMessage","_a","_b","timeout","isHTML","onRemove","element","classes","isNode","toast","showError","showWarning","showInfo","showSuccess","showUndo","onUndo","undoContent","undoButton","classList","createCommonjsModule","global$1","has$1","keys$2","aFunction$1","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","IE_PROTO$1","getOwnPropertyNames$1","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","NaN","NumberWrapper","keys$1","constants","SEMVER_SPEC_VERSION","MAX_LENGTH","Number","MAX_SAFE_COMPONENT_LENGTH","MATCH$1","isRegexp","RE","UNSUPPORTED_Y$3","NativeRegExp","RegExpPrototype$1","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","nativeToString","rf","MAX_SAFE_INTEGER$1","debug_1","NODE_DEBUG","_console","_len","_key","re_1","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","nativeRegExpMethod","stringMethod","regexMethod","stringMultibyte","nativeMatch","matcher","matchStr","stringTrimForced","IS_FILTER_OUT","filterOut","HAS_SPECIES_SUPPORT$1","arrayPush","nativeJoin","ES3_STRINGS","STRICT_METHOD$1","opts","parseOptions_1","loose","reduce","numeric","compareIdentifiers$1","anum","bnum","identifiers","MAX_LENGTH$1","re$1","t$1","compareIdentifiers","SemVer","includePrerelease","LOOSE","FULL","major","minor","patch","prerelease","num","format","compareMain","comparePre","release","identifier","inc","semver","parse_1","er","valid_1","v","major_1","packageJson$1","ProxyBus","bus","getVersion","UNSCOPABLES","ArrayPrototype$1","IteratorPrototype$2","PrototypeOfArrayIteratorPrototype","arrayIterator","addToUnscopables","correctPrototypeGetter","getPrototypeOf","ObjectPrototype","objectGetPrototypeOf","ITERATOR$5","BUGGY_SAFARI_ITERATORS$1","NEW_ITERATOR_PROTOTYPE","iteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","TO_STRING_TAG$3","IteratorPrototype$1","returnThis$1","ITERATOR$4","KEYS","VALUES","ENTRIES","returnThis","defineIterator","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","createIteratorConstructor","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","ARRAY_ITERATOR","setInternalState$2","es_array_iterator","iterated","Arguments","freezing","isExtensible","preventExtensions","internalMetadata","METADATA","setMetadata","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","onFreeze","ITERATOR$3","returnMethod","redefineAll","setInternalState$1","internalStateGetterFor","collectionStrong","getConstructor","ADDER","define","getEntry","removed","prev","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","collection","STRING_ITERATOR","point","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayValues","COLLECTION_NAME$1","Collection$1","CollectionPrototype$1","$forEach","arrayForEach","COLLECTION_NAME","Collection","CollectionPrototype","packageJson","SimpleBus","handlers","h","_nc_event_bus","toStringTag","_nc_focus_trap","list","reverse","active","freeze","elements","addToActive","updateContainerElements","createFocusTrap","u","Set","l","pause","activate","d","deactivate","o","paused","unpause","Proxy","removeFromActive","ConsoleLogger","buildConsoleLogger","context","_contracts","msg","LogLevel","_this$context","Debug","formatMessage","Info","info","Warn","Fatal","log","LoggerBuilder","_OC","_OC$config","_OC2","config","loglevel","user","getLoggerBuilder","_ConsoleLogger","_LoggerBuilder","eventBus","attribute","valid","_interopDefaultLegacy","valid__default","major__default","parseOptions","compareBuild","rcompareIdentifiers","getRootUrl","generateFilePath","imagePath","generateUrl","generateOcsUrl","generateRemoteUrl","linkTo","file","service","linkToRemoteBase","url","params","ocsVersion","_generateUrlPath","allOptions","escape","noRewrite","modRewriteWorking","isCore","coreApps","link","substring","appswebroots","encodeURI","webroot","Axios","auth","router","Axios__default","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","__generator","sent","trys","ops","verb","op","axios","RETRY_KEY","RETRY_DELAY_KEY","interceptors","response","use","responseURL","_c","request","status","retryDelay_1","retryIfMaintenanceMode","onError","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","inspect","_require$types","isPromise","objectIs","lazyLoadComparison","comparison","warned","assert","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","generatedMessage","err","actual","expected","operator","stackStartFn","internalMessage","argsLen","emitWarning","errArgs","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","compareExceptionKey","expectedException","getActual","checkIsPromise","catch","waitForActual","promiseFn","resultPromise","expectsError","details","fnType","expectsNoError","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","shift","tmp1","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_construct","_getPrototypeOf","_setPrototypeOf","isNativeReflectConstruct","Parent","endsWith","this_len","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","inspectValue","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","lastPos","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","stderr","isTTY","columns","maxCount","repeat","maxLines","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","stackTraceLimit","getColorDepth","base","_res","knownOperators","captureStackTrace","subClass","superClass","_inherits","custom","recurseTimes","ctx","sym","_objectSpread","util","createErrorType","Base","NodeError","_Base","arg1","arg3","getMessage","oneOf","thing","determiner","inspected","RangeError","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","regexFlagsSupported","arrayFromSet","arrayFromMap","numberIsNaN","uncurryThis","isAnyArrayBuffer","isArrayBufferView","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","pow","getOwnNonIndexProperties","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","byteLength","buffer","byteOffset","areSimilarTypedArrays","areSimilarFloatArrays","_keys","_keys2","BigInt","isEqualBoxedPrimitive","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","val2MemoA","val2MemoB","areEq","objEquiv","setHasEqualElement","memo","findLooseMatchingPrimitives","prim","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","curB","mapHasEqualEntry","key1","item1","key2","aValues","bValues","_val","setEquiv","aEntries","_aEntries$i","item2","bEntries","_i2","_bEntries$_i","mapEquiv","keysA","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","onCanceled","requestData","requestHeaders","responseType","cancelToken","signal","removeEventListener","isFormData","isStandardBrowserEnv","XMLHttpRequest","username","password","unescape","Authorization","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","paramsSerializer","onreadystatechange","readyState","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","onUploadProgress","upload","cancel","abort","aborted","ERR_BAD_REQUEST","send","mergeConfig","createInstance","defaultConfig","extend","instanceConfig","VERSION","toFormData","Cancel","promises","spread","isAxiosError","resolvePromise","_listeners","onfulfilled","_resolve","throwIfRequested","ERR_CANCELED","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","responseInterceptorChain","chain","newConfig","getUri","generateHTTPMethod","isForm","fileName","lineNumber","columnNumber","customProps","axiosError","toFlatObject","eject","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","adapter","transformResponse","config1","config2","getMergedValue","isPlainObject","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validateStatus","ERR_BAD_RESPONSE","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isURLSearchParams","isFileList","isObjectPayload","contentType","_FormData","FormData","parser","encoder","isString","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","encode","serializedParams","toISOString","hashmarkIndex","relativeURL","expires","secure","cookie","isNumber","toGMTString","decodeURIComponent","payload","originURL","msie","navigator","urlParsingNode","resolveURL","href","hash","hostname","pathname","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","formData","convertValue","isTypedArray","Blob","Buffer","parentKey","fullKey","toArray","append","deprecatedWarnings","opt","desc","ERR_DEPRECATED","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","kindOf","kindOfTest","TypedArray","ArrayBuffer","isView","pipe","product","assignValue","stripBOM","superConstructor","sourceObj","destObj","merged","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","base64","ieee754","customInspectSymbol","K_MAX_LENGTH","createBuffer","encodingOrOffset","allocUnsafe","isEncoding","fromString","arrayView","isInstance","copy","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","checked","fromObject","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","typedArraySupport","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","toLocaleString","equals","thisStart","thisEnd","thisCopy","targetCopy","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_BUFFER_OUT_OF_BOUNDS","received","isInteger","abs","INVALID_BASE64_RE","leadSurrogate","base64clean","dst","table","i16","BufferBigIntNotDefined","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$max","originalFunction","applyBind","charenc","utf8","stringToBytes","bin","bytesToString","moment","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","comparativeDistance","rdif","gdif","bdif","diff","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","t1","t2","t3","smin","lmin","vmin","wh","bl","ratio","y2","x2","z2","atan2","PI","sqrt","cos","sin","round","ansi","color","mult","rem","colorString","char","hue","chroma","pure","w","buildGraph","graph","models","deriveBFS","fromModel","adjacents","adjacent","to","wrapConversion","toModel","conversion","route","wrapRaw","wrappedFn","wrapRounded","routes","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","rgba","per","hexAlpha","scale","alpha","hsla","vals","hexDouble","reverseNames","Color","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","spaces","maxes","space","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","isNullOrUndef","valueOrDefault","valueAtIndexOrDefault","each","loopable","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","extensions","me","ChartElement","Surrogate","__super__","_deprecated","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","clearRect","roundedRect","radius","left","right","moveTo","arc","closePath","rect","drawPoint","rotation","cornerRadius","rad","save","drawImage","restore","beginPath","lineTo","SQRT1_2","stroke","_isPointInArea","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","inputs","cacheable","exports$2","_factorize","sort","log10","exponent","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","helpers$1","easing","canvas","math","overrideTextDirection","direction","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","interpolate","view","ease","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","transition","tooltipPosition","core_element","exports$3","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","animation","onProgress","onComplete","core_animations","animations","addAnimation","lazy","startTime","animating","requestAnimationFrame","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","destroy","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","resyncElements","_configure","_config","_cachedDataOpts","update","easingValue","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","borderColor","hover","readKey","datasetOpts","elementOptions","cached","dataIndex","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","percent","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","outerHTML","legend","generateLabels","controller","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxWidth","maxHeight","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","getContext","platform_dom","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","passive","addListener","removeListener","nativeEvent","fromNativeEvent","throttled","ticking","createDiv","cls","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","watchForRender","expando","renderProxy","animationName","reflow","offsetParent","unwatchForRender","addResizeListener","container","maintainAspectRatio","clientWidth","removeResizeListener","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","plugin","unregister","idx","getAll","hook","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","combinedBodyLength","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","valueAt","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","millisecond","steps","week","quarter","UNITS","sorter","arrayUnique","getMin","getMax","buildLookupTable","timestamps","distribution","mid","i0","i1","interpolate$1","skey","tkey","span","toTimestamp","_adapter","determineUnitForAutoTicks","minUnit","capacity","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","computeBoundary","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","times","functions","expression","tuple","uncurryThisRaw","TO_STRING_TAG_SUPPORT","documentAll","IS_HTMLDDA","uncurryThisWithBind","isNullOrUndefined","$documentAll","stickyHelpers","doesNotExceedSafeInteger","base64map","crypt","rotl","rotr","endian","randomBytes","bytesToWords","words","wordsToBytes","bytesToHex","hexToBytes","bytesToBase64","triplet","imod4","___CSS_LOADER_EXPORT___","cssWithMappingToString","needLayer","modules","media","dedupe","layer","alreadyImportedModules","_k","cssMapping","sourceMapping","sourceURLs","sourceRoot","debounce","wait","immediate","later","debounced","callNow","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","predicates","cancelAnimationFrame","Anchors","Category","J","Emoji","W","EmojiData","EmojiIndex","EmojiView","Picker","oe","Preview","Search","K","Skins","X","frequently","sanitize","N","uncompress","setNamespace","setHandlers","unified","non_qualified","has_img_apple","has_img_google","has_img_twitter","has_img_facebook","keywords","sheet","emoticons","short_names","added_in","return","compressed","emojis","sheet_x","sheet_y","activity","foods","nature","objects","smileys","people","places","recent","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","i18n","categories","activeCategory","created","svgs","$createElement","_self","staticClass","attrs","_l","class","click","$emit","domProps","_v","fromCodePoint","M","I","L","emojisToShowFilter","include","exclude","recentLength","_emojisFilter","_include","_exclude","_custom","_recent","_emojis","_nativeEmojis","_emoticons","_categories","_recentCategory","_customCategory","_searchIndex","buildIndex","isCategoryNeeded","addEmoji","addCustomEmoji","hasEmoji","emoji","getSkin","isEmojiNeeded","_skins","skin_variations","skin_tone","_sanitized","short_name","_emoji","_native","_skin","_fallback","canRender","_canRender","cssClass","_cssClass","cssStyle","_cssStyle","_content","ariaLabel","_isCustom","_isNative","_hasEmoji","_emojiType","backgroundImage","getEmoji","imageUrl","backgroundSize","backgroundPosition","getPosition","colons","skin","D","H","perLine","maxSearchResults","emojiSize","defaultSkin","emojiTooltip","autoFocus","showPreview","showSearch","showCategories","showSkinTones","infiniteScroll","pickerStyles","U","getOwnPropertyDescriptors","computed","emojiObject","sanitizedData","findEmoji","onMouseEnter","onMouseLeave","mouseenter","mouseleave","emojiProps","activeClass","selectedEmoji","selectedEmojiCategory","isVisible","isSearch","hasResults","emojiObjects","emojiView","onEnter","notfound","opened","idleEmoji","skinProps","onSkinChange","emojiData","emojiShortNames","emojiEmoticons","G","onSearch","onArrowLeft","onArrowRight","onArrowDown","onArrowUp","emojiIndex","watch","mounted","$el","focus","directives","rawName","placeholder","keydown","keyCode","button","composing","Q","Y","_vm","_perLine","searchEmojis","previewEmoji","previewEmojiCategoryIdx","previewEmojiIdx","$refs","scroll","filteredCategories","getCategoryComponent","offsetTop","updatePreviewEmoji","emojisLength","$nextTick","ee","ie","activeSkin","customStyles","calculateWidth","previewEmojiCategory","onEmojiEnter","onEmojiLeave","onEmojiClick","overflow","offsetWidth","mergedI18n","firstEmoji","waitingForPaint","onScrollPaint","onAnchorClick","preventDefault","allCategories","_t","ref","arrowLeft","arrowRight","arrowDown","arrowUp","refInFor","firstSource","nextSource","keysArray","nextIndex","nextKey","polyfill","matchHtmlRegExp","getBasePlacement","placement","getAlignment","getMainAxisFromPlacement","getLengthFromAxis","computeCoordsFromPlacement","_ref","reference","commonX","commonY","coords","mainAxis","getSideObjectFromPadding","expandPaddingObject","rectToClientRect","async","detectOverflow","middlewareArguments","strategy","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingClientRect","isElement","contextElement","getDocumentElement","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","getOffsetParent","within","hash$1","getOppositePlacement","getAlignmentSides","isStart","mainAlignmentSide","main","cross","getOppositeAlignmentPlacement","basePlacements","allPlacements","acc","basePlacement","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_middlewareData$autoP3","_middlewareData$autoP4","_middlewareData$autoP5","_placementsSortedByLe","middlewareData","allowedPlacements","autoAlignment","detectOverflowOptions","placements","getPlacementList","currentIndex","currentPlacement","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByLeastOverflow","placementThatFitsOnAllSides","_middlewareData$flip","_middlewareData$flip2","initialPlacement","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","flipAlignment","oppositePlacement","getExpandedPlacements","overflowsData","side","_middlewareData$flip$","_middlewareData$flip3","resetPlacement","_overflowsData$slice$","diffCoords","multiplier","convertValueToCoords","getCrossAxis","isWindow","getWindow","ownerDocument","getComputedStyle$1","getNodeName","nodeName","isHTMLElement","isShadowRoot","isScrollParent","overflowX","overflowY","isTableElement","isContainingBlock","isFirefox","perspective","contain","willChange","includeScale","clientRect","scaleX","scaleY","getNodeScroll","pageXOffset","pageYOffset","getWindowScrollBarX","getRectRelativeToOffsetParent","isOffsetParentAnElement","isScaled","offsetRect","clientLeft","clientTop","getParentNode","assignedSlot","getTrueOffsetParent","currentNode","getContainingBlock","getDimensions","getScrollParent","getScrollParents","_node$ownerDocument","scrollParent","isBody","win","visualViewport","updatedList","getClientRectFromClippingParent","clippingParent","getViewportRect","getInnerBoundingClientRect","_element$ownerDocumen","scrollWidth","scrollHeight","getDocumentRect","getClippingParents","clippingParents","clipperElement","child","contains","getElementRects","_ref2","_ref3","firstClippingParent","clippingRect","accRect","_ref4","getClientRects","_ref5","middleware","statefulPlacement","nextX","nextY","computePosition","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","disabled","skidding","instantMove","disposeTimeout","popperTriggers","preventOverflow","overflowPadding","arrowPadding","arrowOverflow","themes","triggers","hideTriggers","delay","show","hide","handleResize","loadingContent","dropdown","autoHide","menu","$extend","getDefaultConfig","theme","themeConfig","getAllParentThemes","supportsPassive","isIOS","MSStream","SHOW_EVENT_MAP","touch","HIDE_EVENT_MAP","removeFromArray","nextFrame","shownPoppers","hidingPopper","shownPoppersByTheme","getShownPoppersByTheme","defaultPropFactory","$props","PROVIDE_KEY","PrivatePopper","targetNodes","referenceNode","popperNode","shown","showGroup","ariaId","positioningDisabled","showTriggers","popperShowTriggers","popperHideTriggers","eagerMount","popperClass","computeTransformOrigin","autoMinSize","autoSize","autoMaxSize","autoBoundaryMaxSize","shiftCrossAxis","provide","parentPopper","inject","isShown","isMounted","skipTransition","showFrom","showTo","hideFrom","hideTo","arrow","centerOffset","transformOrigin","shownChildren","lastAutoHide","popperId","randomId","shouldMountContent","slotData","hasPopperShowTriggerHover","dispose","$_ensureTeleport","$_computePosition","$_isDisposed","$_detachPopperNode","activated","$_autoShowHide","deactivated","beforeDestroy","skipDelay","force","lockedChild","$_pendingHide","$_scheduleShow","$_showFrameLocked","skipAiming","$_hideInProgress","$_isAimingPopper","lockedChildTimer","$_scheduleHide","$_events","$_preventShow","$_referenceNode","$_targetNodes","$_popperNode","$_innerNode","$_arrowNode","$_swapTargetAttrs","$_addEventListeners","$_removeEventListeners","$_updateParentShownChildren","options2","isPlacementAuto","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","arrowDimensions","minProp","maxProp","endDiff","arrowOffsetParent","clientSize","centerToReference","_a2","_middlewareData$size","isEnd","heightSide","widthSide","xMin","xMax","yMin","yMax","dimensions","$_scheduleTimer","$_applyHide","$_applyShow","$_computeDelay","$_disposeTimer","$_applyShowEffect","$_registerEventListeners","popperWrapper","parentBounds","$_applyAttrsToTarget","popover","disposeTime","handleShow","usedByTooltip","$_registerTriggerListeners","handleHide","eventType","eventMap","commonTriggers","customTrigger","filterEventType","newList","$_refreshListeners","$_handleGlobalClose","closePopover","attrFrom","attrTo","referenceBounds","popperBounds","vectorX","mousePreviousX","vectorY","mousePreviousY","newVectorLength","edgeX","edgeY","lineIntersectsLine","$scopedSlots","handleGlobalMousedown","popper","popperContent","$_mouseDownContains","handleGlobalClose","preventClose","$_containsGlobalTarget","isContainingEventTarget","shouldAutoHide","closeAllPopover","parent2","getAutoHideResult","hideAllPoppers","x4","y4","uA","uB","isIE","initCompat","ua","rv","getInternetExplorerVersion","normalizeComponent$1","template","script2","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","originalRender","existing","__vue_script__","emitOnMount","ignoreWidth","ignoreHeight","_w","_h","emitSize","_resizeObject","onload","addResizeHandlers","removeResizeHandlers","compareAndNotify","contentDocument","__vue_render__","tabindex","_withStripped","__vue_component__","plugin$1","install","Vue2","GlobalVue$1","Vue","PrivateThemeClass","themeClass","$resetCss","getThemeClasses","__vue2_script$5","ResizeObserver","mixins","toPx","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","__cssModules$5","__component__$5","$event","__vue2_injectStyles$5","PrivatePopperContent","PrivatePopperMethods","__vue2_script$4","Popper","PopperContent","inheritAttrs","vPopperTheme","getTargetNodes","children","render$1","_g","scopedSlots","_u","$attrs","$listeners","__cssModules$4","__component__$4","__vue2_injectStyles$4","PrivatePopperWrapper","__vue2_script$3","__cssModules$3","__component__$3","__vue2_render$2","__vue2_staticRenderFns$2","__vue2_injectStyles$3","PrivateDropdown","__vue2_script$2","__cssModules$2","__component__$2","__vue2_render$1","__vue2_staticRenderFns$1","__vue2_injectStyles$2","PrivateMenu","__vue2_script$1","__cssModules$1","__component__$1","__vue2_render","__vue2_staticRenderFns","__vue2_injectStyles$1","PrivateTooltip","__vue2_script","asyncContent","isContentAsync","loading","finalContent","fetchContent","$_fetchId","$_isShown","$_loading","fetchId","onResult","onShow","onHide","__cssModules","__component__","__vue2_injectStyles","PrivateTooltipDirective","TARGET_CLASS","getOptions","modifiers","getPlacement","createTooltip","tooltipApp","$_popper","otherOptions","__objRest","devtools","mountTarget","$mount","destroyTooltip","$destroy","$_popperOldShown","oldValue","PrivateVTooltip","unbind","addListeners","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","$_vclosepopover_touch","$_closePopoverModifiers","changedTouches","$_vclosepopover_touchPoint","firstTouch","screenY","screenX","PrivateVClosePopper","VTooltip","VClosePopper","Dropdown","Menu","PopperMethods","PopperWrapper","ThemeClass","TooltipDirective","$_vTooltipInstalled","directive","GlobalVue","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","getCandidates","includeContainer","candidates","querySelectorAll","getCandidatesIteratively","elementsToCheck","tagName","assigned","assignedElements","nestedCandidates","flatten","scopeParent","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","getTabindex","isScope","tabIndex","isContentEditable","sortOrderedTabbables","documentOrder","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","CSS","nodes","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visibility","nodeUnderDetails","parentElement","originalNode","_nodeRootHost","nodeRootHost","attached","_nodeRootHost2","isNodeAttached","isNodeMatchingSelectorFocusable","isHiddenInput","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","isTabbable","focusableCandidateSelector","isFocusable","enumerableOnly","_objectSpread2","trapQueue","activeFocusTraps","activateTrap","trap","activeTrap","trapIndex","deactivateTrap","valueOrHandler","getActualTarget","composedPath","userOptions","doc","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","delayInitialFocusTimer","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","tabbableNodes","getNodeForOption","optionValue","getInitialFocusNode","activeElement","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbableOptions","focusableNodes","lastTabbableNode","nextTabbableNode","forward","nodeIdx","tryFocus","preventScroll","select","isSelectableInput","getReturnFocusNode","previousActiveElement","checkPointerDown","clickOutsideDeactivates","returnFocus","allowOutsideClick","checkFocusIn","targetContained","Document","stopImmediatePropagation","checkKey","isEscapeEvent","isTabEvent","destinationNode","containerIndex","containerGroup","shiftKey","startOfGroupIndex","destinationGroupIndex","lastOfGroupIndex","_destinationGroupIndex","checkTab","checkClick","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","finishDeactivation","containerElements","elementsAsArray","forEachArray","receiver","forEachString","forEachObject","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","Empty","$SyntaxError","SyntaxError","$Function","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","INTRINSICS","AggregateError","Atomics","DataView","decodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","deprecate","deprecationMessage","dest","inherit","childP","baseP","_super","boolOrFn","ifUndefined","addEventListeners","splitStr","removeEventListeners","hasParent","inStr","inArray","findByKey","uniqueArray","prefixed","camelProp","_uniqueId","getWindowForElement","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","DIRECTION_VERTICAL","DIRECTION_UP","PROPS_XY","PROPS_CLIENT_XY","Input","manager","inputTarget","domHandler","ev","enable","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","getDistance","offsetDelta","prevDelta","prevInput","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getRotation","maxPointers","velocity","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEvent","computeInputData","recognize","p2","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","which","pointerType","POINTER_INPUT_MAP","pointercancel","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","targetTouches","changedTargetTouches","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","getTouchActionProps","TouchAction","compute","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","preventSrc","STATE_FAILED","Recognizer","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","oldCssProps","toggleCssProps","curRecognizer","gestureEvent","gesture","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","symObj","syms","ICAL","OPTIONS","TimezoneService","foldLength","newLineChar","updateTimezones","vcal","allsubs","vtimezones","reqTzid","removeSubcomponent","isStrictlyNaN","strictParseInt","formatClassType","unescapedIndexOf","binsearchInsert","seekVal","cmpfunc","cmpval","low","high","dumpn","dump","aSrc","aDeep","foldline","aLine","line_length","cp","codePointAt","pad2","descr","design","FROM_VCARD_NEWLINE","TO_VCARD_NEWLINE","createTextType","fromNewline","toNewline","fromICAL","aValue","structuredEscape","newline","replaceNewlineReplace","replaceNewline","toICAL","regEx","DEFAULT_TYPE_TEXT","DEFAULT_TYPE_TEXT_MULTI","DEFAULT_TYPE_TEXT_STRUCTURED","structuredValue","DEFAULT_TYPE_INTEGER","DEFAULT_TYPE_DATETIME_DATE","allowedTypes","DEFAULT_TYPE_DATETIME","DEFAULT_TYPE_URI","DEFAULT_TYPE_UTCOFFSET","DEFAULT_TYPE_RECUR","DEFAULT_TYPE_DATE_ANDOR_TIME","commonProperties","commonValues","float","decorate","UtcOffset","undecorate","icalValues","aString","Binary","aBinary","aProp","Time","fromDateString","fromDateTimeString","Duration","isValueString","Period","fromJSON","recur","Recur","_stringToData","numericDayToIcalDay","aRecur","icalProperties","detectType","vcardValues","VCardTime","fromDateAndOrTimeString","splitzone","_splitZone","isFromIcal","lastChar","signChar","vcardProperties","vcard3Values","binary","vcard","vcard3Properties","nickname","photo","bday","adr","tel","mailer","geo","logo","agent","org","note","prodid","rev","sound","icalSet","allowXName","allowIanaToken","multiValueSeparateDQuote","vcardSet","vcard3Set","defaultSet","vcard3","vevent","vtodo","vjournal","valarm","vtimezone","daylight","standard","icalendar","getDesignSet","LINE_ENDING","DEFAULT_VALUE_TYPE","designSet","propIdx","propLen","designSetName","comps","compIdx","compLen","noFold","jsName","_rfc6868Unescape","propertyValue","propDetails","delim","innerMulti","RFC6868_REPLACE_MAP","CHAR","ParserError","_eachLine","_handleContentLine","lastParamIndex","lastValuePos","parsedParams","valuePos","paramPos","_parseParameters","propertyDetails","_parseMultiValue","lcname","mvdelim","lastParam","_rfc6868Escape","extendedValue","nextPos","propValuePos","delimiter","firstChar","newlineOffset","Component","_hydratedPropertyCount","_hydratedComponentCount","_designSet","_hydrateComponent","_hydrateProperty","getFirstSubcomponent","jCalLen","getFirstPropertyValue","_removeObjectByIndex","jCalIndex","_removeObject","nameOrObject","_removeAllObjects","nameOrComp","removeAllSubcomponents","removeProperty","addPropertyWithValue","nameOrProp","removeAllProperties","getDefaultType","_updateType","designSetChanged","isStructuredValue","_hydrateValue","_values","_decorate","_undecorate","_setDecoratedValue","getFirstParameter","removeParameter","resetType","removeAllValues","toICALString","aData","_normalize","aSeconds","secs","_b64_decode","_b64_encode","h1","h2","h3","h4","bits","ac","enc","tmp_arr","o1","o2","o3","wrappedJSObject","icalclass","aLenient","fromDateOrDateTimeString","DURATION_LETTERS","parseDurationChunk","letter","propsToCopy","aOther","thisSeconds","otherSeconds","aStr","dict","chunks","tznames","expandedUntilYear","changes","utcTimezone","localTimezone","_ensureCoverage","tt_change","change_num","_findNearbyChange","change_num_to_use","prevUtcOffset","adjust_change","_compare_change_fn","zone_change","tmp_change","prev_zone_change","is_daylight","aYear","_minimumExpansionYear","today","changesEndYear","EXTRA_COVERAGE","MAX_YEAR","subcomps","_expandComponent","aComponent","convert_tzoffset","init_changes","changebase","rdatekey","adjust","occ","convert_time","from_zone","to_zone","UTC","_time","_dowCache","_wnCache","_cachedUnixTime","_pendingNormalization","epochTime","resetTo","aDate","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","aZone","dayOfWeek","aWeekStart","firstDow","dowCacheKey","dayOfYear","is_leap","isLeapYear","daysInYearPassedMonth","startOfWeek","endOfWeek","startOfMonth","endOfMonth","daysInMonth","startOfYear","endOfYear","startDoyWeek","aFirstDayOfWeek","getDominicalLetter","nthWeekDay","aDayOfWeek","aPos","otherDay","isNthWeekDay","dow","weekNumber","week1","wnCacheKey","dt","isoyear","weekOneStarts","daysBetween","answer","aDuration","cmp","attr","_cmp_attr","rc","zone_equals","aExtraDays","aExtraHours","aExtraMinutes","aExtraSeconds","aTime","minutesOverflow","hoursOverflow","daysOverflow","yearsOverflow","epoch","defineAttr","fromDayOfYear","aDayOfYear","doy","auto_normalize","fromStringv2","aProperty","yr","LTRS","dom","mm","hasMonth","hasDay","hasHour","hasMinute","hasSecond","datepart","timepart","aIcalType","tmz","tm","dtlen","tmlen","hasDashDate","hasDashTime","DOW_MAP","SU","MO","TU","WE","TH","FR","SA","REVERSE_DOW_MAP","parseNumericValue","aStart","RecurIterator","aType","ucname","getNextOccurrence","aStartTime","aRecurrenceId","iter","uckey","partDesign","optionDesign","INTERVAL","icalDayToNumericDay","kparts","VALID_DAY_NAMES","VALID_BYDAY_PART","FREQ","fmtIcal","COUNT","UNTIL","WKST","BYSECOND","BYMINUTE","BYHOUR","BYDAY","BYMONTHDAY","BYYEARDAY","BYWEEKNO","BYMONTH","BYSETPOS","partArr","partArrIdx","partArrLen","icalrecur_iterator","completed","occurrence_number","by_indices","initialized","by_data","days_index","sort_byday_rules","setup_defaults","bydayParts","ruleDayOfWeek","wkdy","dayName","expand_year_days","increment_year","_nextByYearDay","has_by_data","tempLast","initLast","dayOfMonth","increment_month","_byDayAndMonthDay","next_second","next_minute","next_hour","next_day","next_week","next_month","next_year","check_contracting_rules","next_generic","increment_second","increment_generic","increment_minute","increment_hour","this_freq","increment_monthday","end_of_data","next_weekday_by_week","week_no","normalizeByMonthDayRules","rules","newRules","ruleIdx","isInit","byMonthDay","dateLen","byDay","dateIdx","dayLen","dataIsValid","lastDay","initMonth","nextMonth","monthsCounter","dayIdx","data_valid","setpos","setpos_total","last_day","is_day_in_byday","check_set_position","coded_day","aRuleType","aInterval","aDateAttr","aFollowingAttr","aPreviousIncr","has_by_rule","dta","years","aFactor","aNextIncrement","nextunit","validWeeks","monthIdx","first_week","last_week","weekIdx","weekno","partCount","monthkey","monthdaykey","day_","month_","expand_by_day","first_dow","doy_offset","last_dow","by_month_day","spIndex","daycodedkey","month_day","first_matching_day","last_matching_day","expandedDays","daykey","days_list","start_dow","end_dow","end_year_day","this_dow","aRules","check_contract_restriction","indexMapValue","_indexMap","ruleMapValue","_expandMap","pass","CONTRACT","ruleType","bydatakey","weekNo","req","deftime","UNKNOWN","EXPAND","ILLEGAL","RecurExpansion","formatTime","compareTime","_init","currentTry","_nextRecurrenceIter","_nextRuleDay","_nextExDay","_extractDates","handleProp","iters","iterTime","chosenIter","iterIdx","Event","_rangeExceptionCache","rangeExceptions","strictExceptions","relateException","compareRangeException","THISANDFUTURE","findRangeException","rangeItem","getOccurrenceDetails","utcId","rangeExceptionId","newStart","getRecurrenceTypes","_firstProp","_setProp","_setTime","attendees","summary","organizer","ComponentParser","parseEvent","parseTimezone","oncomplete","ontimezone","onevent","ical","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ctor","superCtor","super_","TempCtor","hasToStringTag","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","isSlowBuffer","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","getPolyfill","shim","availableTypedArrays","typedArrays","$slice","toStrTags","gOPD","typedArray","superProto","anyTrue","tryTypedArrays","tlds","utlds","registerGroup","addToGroups","State","jr","jd","accepts","go","nextState","regex","_nextState","exactOnly","ts","templateState","allFlags","flagsForToken","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","WS","NL","EMOJI","ASCII_LETTER","LETTER","DIGIT","SPACE","fastts","defaultt","defaultProtocol","formatHref","nl2br","rel","validate","truncate","attributes","ignoreTags","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","option","getObj","MultiToken","tokens","createTokenClass","Token","_MultiToken","isLink","toHref","scheme","toFormattedString","formatted","toFormattedHref","endIndex","toFormattedObject","eventListeners","Email","Text","Nl","Url","hasProtocol","makeState","initMultiToken","Multi","startIdx","endIdx","INIT","scanner","tokenQueue","pluginQueue","customSchemes","_tr","_tr2","_tr3","_tr4","_tt","_tr5","Start","Num","Word","UWord","Ws","EmojiJoiner","wordjr","uwordjr","tld","ascii","utld","slashscheme","sch","init$2","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","UriPrefix","SlashSchemeColon","SlashSchemeColonSlash","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","init$1","tokenize","multis","textTokens","secondState","multiLength","latestAccepting","sinceAccepts","subtokens","stringToArray","charCount","charCursor","tokenLength","charsSinceAccepts","run$1","escapeText","attributesToString","linkifyStr","linkify","md5","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","defineLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","isLower","longDateFormat","LTS","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastWeek","sameElse","relativeTime","future","past","ss","hh","MM","yy","dayOfMonthOrdinalParse","ordinal","pluralForm","pluralize","withoutSuffix","isFuture","weekdaysParseExact","postformat","symbolMap","preparse","numberMap","suffixes","word","forms","relativeTimeWithPlural","standalone","isFormat","ww","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","monthsParse","monthsRegex","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","weekdaysParse","longMonthsParse","shortMonthsParse","ll","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$1","$2","isUpper","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","translateSeconds","translateSingular","special","relativeTimeWithSingular","relativeSeconds","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","hm","weekdaysCaseReplace","nominative","accusative","genitive","processHoursFunction","webpackContext","webpackContextResolve","__webpack_require__","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","createLocalOrUTC","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p3","p4","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","setFullYear","createUTCDate","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","setUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","createLocal","gg","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","quarters","isoWeek","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offsetFromString","chunkOffset","cloneWithOffset","setTime","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","toDate","suffix","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","isValid$2","parsingFlags","invalidAt","creationData","localeEras","_eras","localeErasParse","eraName","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","argv","once","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","pushOtherPanes","dblClickSplitter","firstSplitter","requestUpdate","onPaneAdd","onPaneRemove","onPaneClick","ready","panes","mouseDown","dragging","activeSplitter","splitterTaps","timeoutId","panesCount","indexedPanes","updatePaneComponents","onMouseMove","onMouseUp","onMouseDown","calculatePanesSize","getCurrentMouseDrag","onSplitterClick","onSplitterDblClick","getCurrentDragPercentage","prevPanesSize","sumPrevPanesSize","nextPanesSize","sumNextPanesSize","prevReachedMinPanes","nextReachedMinPanes","doPushOtherPanes","sums","panesToResize","findPrevExpandedPane","findNextExpandedPane","checkSplitpanesNodes","addSplitter","onmousedown","ontouchstart","onclick","ondblclick","removeSplitter","redoSplitters","_uid","givenSize","resetPaneSizes","addedPane","removedPane","equalizeAfterAddOrRemove","equalize","initialPanesSizing","readjustSizes","deep","$slots","sizeNumber","minSizeNumber","maxSizeNumber","Pane","Splitpanes","nonNative","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","allowable_tags","tag_replacement","striptags_internal","init_context","tag_set","parse_allowable_tags","tag_buffer","in_quote_char","normalize_tag","init_streaming_mode","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","api","newObj","lastIdentifiers","newLastIdentifiers","styleTarget","HTMLIFrameElement","getTarget","styleElement","nonce","removeStyleElement","styleSheet","cssText","CustomEvent","CustomEvent$1","bubbles","cancelable","detail","initCustomEvent","TributeEvents","tribute","boundKeydown","boundKeyup","keyup","boundInput","shouldDeactivate","isActive","hideMenu","commandEvent","li","selectItemAtIndex","externalTrigger","updateSelection","allowSpaces","hasTrailingSpace","autocompleteMode","triggerChar","getKeyCode","mentionText","menuShowMinLength","showMenuFor","eventKeyPressed","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","collectionItem","filteredItems","menuSelected","tab","spaceSelectsMatch","up","selected","setActiveLi","down","lis","selectClass","liClientRect","menuClientRect","scrollDistance","getFullHeight","includeMargin","marginTop","marginBottom","TributeMenuEvents","menuEvents","menuClickEvent","menuContainerScrollEvent","windowResizeEvent","positionMenuAtCaret","getDocument","menuContainer","TributeRange","scrollTo","coordinates","positionMenu","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","scrollIntoView","menuDimensions","menuIsOffScreen","isMenuOffScreen","menuIsOffScreenHorizontally","menuIsOffScreenVertically","innerHeight","menuContainerIsBody","selectElement","targetElement","childNodes","nextSibling","previousSibling","sel","getWindowSelection","createRange","setStart","setEnd","collapse","removeAllRanges","addRange","replaceTriggerText","requireLeadingSpace","replaceEvent","replaceTextSuffix","endPos","pasteHtml","myField","textSuffix","startPos","selectionStart","selectionEnd","anchorNode","deleteContents","lastNode","frag","createDocumentFragment","insertNode","cloneRange","setStartAfter","getSelection","getNodePositionInParent","getContentEditableSelectedPath","ce","contentEditable","getRangeAt","startOffset","getTextPrecedingCurrentSelection","selectedElem","workingNodeContent","textContent","selectStartOffset","textComponent","getLastWordInText","wordsArray","menuAlreadyActive","isAutocomplete","selectionInfo","effectiveRange","lastWordOfEffectiveRange","mentionSelectedElement","mostRecentTriggerCharPos","lastIndexWithLeadingSpace","currentTriggerSnippet","firstSnippetChar","leadingSpace","reversedStr","cidx","triggerIdx","windowWidth","windowHeight","windowLeft","windowTop","menuTop","menuRight","menuBottom","menuLeft","getMenuDimensions","flipped","mozInnerScreenX","div","whiteSpace","wordWrap","borderTopWidth","borderLeftWidth","parentHeight","scrollStillAvailable","selectedNodePosition","elemTop","elemBottom","targetY","TributeSearch","simpleFilter","pre","compareString","caseSensitive","rendered","patternCache","traverse","stringIndex","patternIndex","calculateScore","best","indices","extract","Tribute","containerClass","itemClass","selectTemplate","menuItemTemplate","fillAttr","noMatchTemplate","searchOpts","menuItemLimit","defaultSelectTemplate","defaultMenuItemTemplate","_isActive","noMatchEvent","matchItem","attach","jQuery","_attach","hasAttribute","ensureEditable","inputTypes","createMenu","ul","currentMentionTextSnapshot","tributeMenu","processValues","fragment","_findLiTarget","movementY","showMenuForCollection","collectionIndex","placeCaretAtEnd","insertTextAtCursor","insertAtCaret","selectNodeContents","createTextRange","textRange","moveToElementText","textNode","textarea","scrollPos","caretPos","front","back","replaceText","_append","newValues","appendCurrent","detach","_detach","isArgumentsObject","isGeneratorFunction","whichTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","working","isDataViewToString","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","formatRegExp","isNull","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","debugEnv","seen","stylize","stylizeNoColor","colors","isBoolean","_extend","stylizeWithColor","formatValue","styleType","styles","primitive","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","pad","debuglog","pid","isPrimitive","kCustomPromisifiedSymbol","callbackifyOnRejected","cb","newReason","promisify","promiseReject","callbackify","callbackified","maybeCb","msMaxTouchPoints","detectIframe","srcTarget","refs","ssrId","DEBUG","esModule","setAlpha","toHsl","toHsv","toHexString","hex8","toHex8String","toRgb","oldHue","colorChange","isValidHex","simpleCheckForValidColor","paletteUpperCase","isTransparent","__g","__file","__e","palette","handlerClick","labelText","arrowOffset","labelId","labelSpanText","handleChange","handleKeyDown","onChange","swatches","normalizedSwatches","hueChange","handleSwClick","virtual","pullDirection","directionClass","pointerTop","pointerLeft","pageX","pageY","handleMouseDown","handleMouseUp","unbindEventListeners","disableFields","hasResetButton","acceptLabel","cancelLabel","resetLabel","newLabel","currentLabel","currentColor","childChange","inputChange","clickCurrentColor","handleAccept","handleCancel","handleReset","bgColor","throttle","leading","trailing","checkboard","gradientColor","grey","bgStyle","presetColors","disableAlpha","activeColor","handlePreset","fieldsIndex","highlight","hasAlpha","toggleViews","showHighlight","hideHighlight","editableInput","defaultColors","triangle","Compact","Grayscale","Twitter","Material","Slider","Swatches","Photoshop","Sketch","Chrome","Alpha","Checkboard","EditableInput","Hue","Saturation","ColorMixin","locals","_originalInput","_r","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","CSS_UNIT","hsva","hex6","hex4","hex3","isDark","getBrightness","isLight","getOriginalInput","getFormat","getLuminance","toHsvString","toHslString","toHex","toHex8","toRgbString","toPercentageRgb","toPercentageRgbString","toName","toFilter","_applyModification","brighten","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","readability","isReadable","mostReadable","includeFallbackColors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","hexNames","$set","QObject","findChild","keyFor","useSetter","useSimple","ae","NEED","getWeak","a100","a200","a400","a700","primary","secondary","dividers","inactive","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","darkText","lightText","darkIcons","lightIcons","staticStyle","viewBox","maxWait","mouseover","mouseout","boxShadow","emits","fillColor","createChart","pointRadius","HSLToRGB","RGBToHex","widgets","widget","widgetid","valuecolor","ChartWidget","ColorpickerWidget","FrameWidget","SwitchWidget","TextWidget","linkedPage","core","$isLabel","$groupLabel","isOpen","preferredOpenDirection","optimizedHeight","internalSearch","multiple","trackBy","searchable","clearOnSelect","hideSelected","allowEmpty","resetAfter","closeOnSelect","customLabel","taggable","tagPlaceholder","tagPosition","optionsLimit","groupValues","groupLabel","groupSelect","blockKeys","preserveSearch","preselectFirst","internalValue","filteredOptions","filterAndFlat","isSelected","isExistingOption","isTag","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","getOptionLabel","updateSearch","isOptionDisabled","$isDisabled","selectGroup","pointerDirty","wholeGroupSelected","wholeGroupDisabled","removeLastElement","adjustPosition","pointer","blur","openDirection","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","optionHighlight","groupHighlight","addPointerElement","pointerReset","pointerForward","pointerBackward","pointerSet","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limitText","showNoOptions","showNoResults","isSingleLabelVisible","singleValue","visibleValues","isPlaceholderVisible","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","contentStyle","isAbove","showSearchInput","hasSingleSelectedSlot","visibleSingleValue","onunhandledrejection","onrejectionhandled","finally","BREAK","RETURN","keypress","autocomplete","optionMergeStrategies","productionTip","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","nt","ot","st","_scope","elm","ns","fnContext","fnOptions","fnScopeId","componentOptions","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncFactory","asyncMeta","isAsyncPlaceholder","ct","at","ut","ft","_pending","subs","addSub","removeSub","depend","addDep","ht","vt","__ob__","observeArray","dep","yt","bt","Ct","Tt","$t","__v_raw","wt","__v_isShallow","__v_isReadonly","xt","kt","Ot","St","At","jt","shallow","mock","vmCount","Et","__v_skip","Mt","Dt","Pt","_isVue","It","__v_isRef","Nt","Rt","Lt","Ft","Ut","Bt","Vt","zt","Ht","Kt","Wt","onTrack","onTrigger","Ne","cn","_isDestroyed","onStop","noRecurse","Pn","_isMounted","_preWatchers","$once","teardown","qt","Gt","detached","cleanups","scopes","Zt","_provided","Jt","Xt","Qt","Yt","_isVList","slot","Jn","le","ue","_staticTrees","_renderProxy","fe","pe","$stable","$key","ve","ye","_o","_q","_m","_p","ge","$e","we","_normalized","$hasNormal","Ce","xe","ke","_attrsProxy","Oe","_listenersProxy","slots","_slotsProxy","Ae","expose","Se","je","_setupContext","Te","Ee","Pe","Ie","Un","De","Me","errorCaptured","Re","_handled","Le","Fe","Ue","Be","Ve","ze","He","We","Kn","Ke","qe","Ge","Ze","Je","Xe","Qe","Ye","tn","rn","defineComponent","shallowRef","isRef","toRef","toRefs","unref","proxyRefs","customRef","triggerRef","reactive","isReactive","isReadonly","isShallow","isProxy","shallowReactive","markRaw","toRaw","readonly","shallowReadonly","effect","dirty","evaluate","watchEffect","watchPostEffect","watchSyncEffect","EffectScope","effectScope","onScopeDispose","getCurrentScope","getCurrentInstance","useSlots","useAttrs","useListeners","mergeDefaults","del","useCssModule","useCssVars","_setupProxy","defineAsyncComponent","loader","loadingComponent","errorComponent","suspensible","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","onErrorCaptured","sn","un","_watcher","sync","deps","newDeps","depIds","newDepIds","cleanupDeps","_isBeingDestroyed","dn","$on","pn","$off","hn","vn","yn","_inactive","gn","_directInactive","$children","$n","_hasHookEvent","wn","Cn","xn","On","Sn","An","jn","Tn","En","In","Dn","_original","injections","Mn","Nn","Rn","__name","_componentTag","Ln","keepAlive","prepatch","_isComponent","_parentVnode","inlineTemplate","Ctor","_renderChildren","_vnode","_parentListeners","_props","_propKeys","Xn","propsData","$forceUpdate","Fn","_base","cid","errorComp","resolved","owners","loadingComp","nativeOn","_merged","Bn","Vn","zn","Hn","Wn","qn","Gn","Zn","extends","Yn","Qn","oo","setup","_setupState","__sfc","_computedWatchers","io","co","ao","$watch","uo","superOptions","sealedOptions","extendOptions","po","mo","vo","_events","$delete","__patch__","__vue__","_render","KeepAlive","cacheVNode","vnodeToCache","keyToCache","destroyed","mergeOptions","defineReactive","observable","_installedPlugins","mixin","_Ctor","ho","$o","Co","xo","Oo","So","Ao","jo","Eo","Po","Io","Do","svg","Mo","No","Ro","Lo","Fo","Uo","createElementNS","createComment","setTextContent","setStyleScope","Bo","Vo","zo","Ho","Wo","Ko","qo","Go","Zo","Xo","oldArg","Yo","def","componentUpdated","inserted","Jo","Qo","_v_attr_proxy","nr","removeAttributeNS","setAttributeNS","__ieph","rr","To","_transitionClasses","_prevClass","cr","lr","_wrapper","dr","__r","__c","pr","_vModifiers","vr","gr","$r","wr","Cr","Or","xr","kr","Sr","normalizedStyle","Ar","Tr","Er","Pr","Ir","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","Dr","Mr","Nr","Rr","Lr","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","Fr","Ur","Br","Vr","zr","propCount","Wr","Hr","Kr","hasTransform","qr","Gr","_leaveCb","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","Xr","Jr","Zr","beforeLeave","leave","afterLeave","leaveCancelled","delayLeave","Qr","Yr","nodeOps","pendingInsert","postpatch","hasChildNodes","vmodel","_vOptions","rs","os","selectedIndex","ls","__vOriginalDisplay","us","fs","hs","vs","_leaving","ys","moveClass","gs","beforeMount","kept","prevChildren","hasMove","$s","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","_hasMove","cloneNode","newPos","Cs","Transition","TransitionGroup","HTMLUnknownElement","emptyObject","isUndef","isDef","isTrue","_toString","isValidArrayIndex","makeMap","expectsLowerCase","isReservedAttribute","remove$2","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","boundFn","_from","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysB","looseIndexOf","hasChanged","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","unicodeRegExp","isReserved","bailRE","hasProto","inBrowser","UA","isIE9","isEdge","_isServer","isFF","nativeWatch","isServerRendering","isNative","_Set","hasSymbol","currentInstance","setCurrentInstance","VNode","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","pendingCleanupDeps","Dep","targetStack","pushTarget","popTarget","arrayMethods","ob","rawMap","makeReactive","arrayKeys","NO_INIITIAL_VALUE","shouldObserve","toggleObserving","mockDep","Observer","ssrMockReactivity","customSetter","childOb","dependArray","newVal","proxyWithRefUnwrap","WATCHER","activeEffectScope","currentEffectScope","fromParent","resolveProvided","parentProvides","normalizeEvent","createFnInvoker","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","checkProp","altKey","preserve","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","resolveFilter","resolveAsset","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","_loop_1","camelizedKey","hyphenatedKey","renderStatic","isInFor","tree","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","resolveSlots","name_1","name_2","isWhitespace","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","normalized","createSetupContext","syncSetupProxy","syncSetupSlots","initSlotsProxy","exposed","defineProxyAttr","currentRenderingInstance","ensureCtor","getFirstComponentChild","normalizationType","alwaysNormalize","simpleNormalizeChildren","createComponent","applyNS","registerDeepBindings","_createElement","handleError","globalHandleError","logError","timerFunc","isUsingMicroTask","pending","flushCallbacks","copies","p_1","counter_1","textNode_1","createLifeCycle","hookName","mergeLifecycleHook","injectHook","seenObjects","_traverse","isA","depId","target$1","Watcher","expOrFn","isRenderWatcher","segments","parsePath","queueWatcher","remove$1","createOnceHandler$1","_target","onceHandler","updateComponentListeners","oldListeners","activeInstance","setActiveInstance","prevActiveInstance","isInInactiveTree","activateChildComponent","direct","callHook$1","deactivateChildComponent","setContext","activatedChildren","waiting","flushing","currentFlushTimestamp","getNow","performance_1","sortCompareFn","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","resolveInject","provideKey","provideDefault","FunctionalRenderContext","contextVm","isCompiled","needNormalization","cloneAndMarkFunctionalResult","renderContext","mergeProps","getComponentName","componentVNodeHooks","hydrating","mountedNode","createComponentInstanceForVnode","oldVnode","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","prevListeners","propKeys","propOptions","validateProp","updateChildComponent","hooksToMerge","baseCtor","owner","owners_1","sync_1","timerLoading_1","timerTimeout_1","forceRender_1","renderCompleted","reject_1","res_1","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","extractPropsFromVNodeData","vnodes","createFunctionalComponent","toMerge","mergeHook","installComponentHooks","f1","f2","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","defaultStrat","normalizeProps","normalizeInject","dirs","normalizeDirectives$1","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","getType","getPropDefaultValue","prevShouldObserve","functionTypeCheckRE","isSameType","expectedTypes","sharedPropertyDefinition","sourceKey","initState","propsOptions","initProps$1","setupResult","initSetup","initMethods","getData","initData","watchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed$1","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","modifiedOptions","modified","latest","sealed","resolveModifiedOptions","initExtend","Super","SuperId","cachedCtors","Sub","Comp","initProps","initComputed","_getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","vnodeComponentOptions","initInternalComponent","initLifecycle","initEvents","parentData","initRender","initInjections","provideOption","provided","initProvide","initMixin$1","dataDef","propsDef","stateMixin","hookRE","i_1","cbs","eventsMixin","prevEl","prevVnode","restoreActiveInstance","lifecycleMixin","renderMixin","patternTypes","builtInComponents","configDef","installedPlugins","initUse","initMixin","definition","initAssetRegisters","initGlobalAPI","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","childNode","mergeClassData","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","isHTMLTag","isSVG","unknownElementCache","isTextInputType","newNode","registerRef","isRemoval","refValue","$refsValue","isFor","_isString","_isRef","setSetupRef","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","callHook","callInsert","emptyModifiers","getRawDirName","setupDef","baseModules","updateAttrs","oldAttrs","setAttr","isInPre","baseSetAttr","convertEnumeratedValue","blocker_1","updateClass","oldData","transitionClass","useMicrotaskFix","attachedTimestamp_1","original_1","updateDOMListeners","event_1","normalizeEvents","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","notInFocus","isNotInFocusAndDirty","isDirtyWithModifiers","parseStyleText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","oldStyle","newStyle","checkChild","styleData","whitespaceRE","addClass","removeClass","tar","resolveTransition","autoCssTransition","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","raf","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","delays","durations","toMs","toggleDisplay","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","isValidDuration","explicitLeaveDuration","performLeave","invokerFns","_enter","backend","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","reactivateComponent","setScope","createChildren","invokeCreateHooks","isPatchable","i_2","ancestor","addVnodes","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","i_3","childElm","createRmCb","findIdxInOld","oldCh","i_5","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","invokeInsertHook","i_6","isRenderedModule","inVPre","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","oldElm","patchable","i_8","i_9","insert_1","i_10","createPatchFunction","setSelected","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","hasNoMatchingOption","actuallySetSelected","isMultiple","locateNode","originalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","isNotTextNode","isVShowDirective","hasParentTransition","oldRawChild","oldChild","isSameChild","delayedLeave_1","rawChildren","transitionData","callPendingCbs","recordPosition","applyTranslation","el_1","oldPos","platformComponents","updateComponent","preWatchers","mountComponent","query","isValidDate","setDate","setHours","startOfWeekYear","_ref$firstDayOfWeek","_ref$firstWeekContain","firstWeekContainsDate","firstDateOfFirstWeek","getWeek","_ref2$firstDayOfWeek","_ref2$firstWeekContai","firstDateOfThisWeek","REGEX_FORMAT","getOffset","formatTimezone","delimeter","absOffset","isLowercase","formatFlags","YY","YYYY","MMM","MMMM","DD","getMilliseconds","SS","SSS","ddd","dddd","ZZ","formatStr","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","parseFlags","addParseFlag","escapeStringRegExp","matchWordRegExp","localeKey","matchWordCallback","to24hour","getFullInputArray","backupDate","backupArr","useBackup","makeParser","dateString","mark","parseTo","cent","defaultIsPM","_ref9","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_extends$1","normalMerge","toArrayMerge","functionalMerge","mergeFn","helper","isValidRangeDate","getValidDate","backup","startOfDay","dirtyDate","dirtyMonth","setYear","dirtyYear","assignTime","mergeDeep","formatLocale","yearFormat","monthFormat","monthBeforeYear","defaultLocale","script","prefixClass","appendToBody","displayPopup","_this2","_clickoutEvent","handleClickOutside","relativeElement","_displayPopup","isRunning","rafThrottle","_scrollParent","popup","_popupRect","originalVisibility","marginLeft","marginRight","getPopupElementSize","_this$_popupRect","_getRelativePosition","targetWidth","targetHeight","fixed","relativeRect","dw","dh","scrollBarWidth","__vue_component__$1","__vue_component__$2","__vue_component__$3","__vue_component__$4","script$2","IconButton","onDateMouseEnter","onDateMouseLeave","disabledCalendarChanger","showWeekNumber","titleFormat","getRowClasses","getCellClasses","yearMonth","_this$getLocale","_this$getLocale$month","yearLabel","panel","formatDate","monthLabel","lastDayInLastMonth","firstDayInLastMonth","lastDayInCurrentMonth","nextMonthLength","getCalendar","isDisabledArrows","handleIconLeftClick","handleIconRightClick","handleIconDoubleLeftClick","handleIconDoubleRightClick","handlePanelChange","handleMouseEnter","cell","handleMouseLeave","handleCellClick","_index$split$map2","row","col","fmt","getCellTitle","getWeekNumber","__vue_component__$5","script$3","calendarYear","handleClick","__vue_component__$6","__vue_component__$7","firstYear","lastYear","getYearPanel","getYears","CalendarPanel","dispatchDatePicker","defaultPanel","disabledDate","getClasses","partialUpdate","panels","innerCalendar","innerValue","calendarMonth","initCalendar","calendarDate","isDisabled","emitDate","handleCalendarChange","oldCalendar","handelPanelChange","oldPanel","handleSelectYear","getYearCellDate","handleSelectMonth","getMonthCellDate","_date2","handleSelectDate","getDateClasses","cellDate","notCurrentMonth","getStateClass","getMonthClasses","_cellDate","getYearClasses","_cellDate2","getWeekState","CalendarRange","calendars","hoveredValue","calendarMinDiff","calendarMaxDiff","defaultValues","updateCalendars","handleSelect","_this$innerValue","startValue","endValue","updateStartCalendar","updateEndCalendar","adjustIndex","gap","getCalendarGap","_calendars","calendarLeft","calendarRight","getRangeClasses","currentDates","classnames","_range$map","_range$map2","calendarRange","__vue_component__$8","scrollbarWidth","handleScroll","thumbHeight","thumbTop","handleDragstart","getScrollbarWidth","handleDragend","getThumbSize","heightPercentage","_draggable","thumb","_prevY","handleDraging","padNumber","generateOptions","__vue_component__$9","ScrollbarVertical","scrollDuration","hourOptions","minuteOptions","secondOptions","showHour","showMinute","showSecond","hourStep","minuteStep","secondStep","use12h","cols","getHoursList","getMinutesList","getSecondsList","getAMPMList","scrollToSelected","_this3","setMinutes","_this4","setSeconds","_this5","scrollElement","colIndex","cellIndex","parseOption","__vue_component__$a","startMinutes","endMinutes","stepMinutes","timeMinutes","scrollTo$1","__vue_component__$b","showTimeHeader","handleClickTitle","timePickerOptions","innerForamt","ShowHourMinuteSecondAMPM","ListColumns","ListOptions","timeTitleFormat","disabledTime","defaultProps","isDisabledTime","isDisabledHour","isDisabledMinute","isDisabledAMPM","minHour","maxHour","TimeRange","_this$value","emitChange","handleSelectStart","handleSelectEnd","disabledStartTime","disabledEndTime","DatetimePanel","showTimePanel","defaultTimeVisible","currentValue","timeVisible","closeTimePanel","openTimePanel","calendarProps","timeProps","clicktitle","DatetimeRange","datetimes","componentMap","componentRangeMap","DatePicker","rangeSeparator","editable","clearable","inputAttr","popupClass","popupStyle","inline","confirm","confirmText","renderInputText","shortcuts","userInput","defaultOpen","popupVisible","innerRangeSeparator","innerFormat","validMultipleType","value2date","isValidValue","showClearIcon","handleClickOutSide","closePopup","getFormatter","parseDate","_options$locale","_options$backupDate","parseResult","parsedDate","inputArray","firstDate","date2value","emitValue","isValidValueAndNotDisabled","handleMultipleDates","nextDates","handleClear","handleConfirmDate","handleSelectShortcut","openPopup","handleInputChange","handleInputInput","handleInputKeydown","handleInputBlur","handleInputFocus","hasSlot","slotFn","renderInput","calendarIcon","renderContent","renderSidebar","renderHeader","renderFooter","_class","sidedar","TimePanel","foundName","possibleNames","stripAnsi","onlyFirst","ansiRegex","countAnsiEscapeCodes","teluguConsonants","telugu","astral","combo","fitz","nonAstral","regional","surrogatePair","optModifier","optVar","seq","charRegex","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","nmd","paths","nc","encodeReserveRE","encodeReserveReplacer","commaRE","decode","castQueryParamValue","parseQuery","stringifyQuery","trailingSlashRE","createRoute","record","redirectedFrom","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aVal","bVal","handleRouteEntered","enteredCbs","i$1","View","routerView","$route","_routerViewCache","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","relative","segment","cleanPath","isarray","pathToRegexp_1","pathToRegexp","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","pretty","attachKeys","sensitive","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","compile","regexpCompileCache","fillParams","routeMsg","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","hashIndex","queryIndex","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","_Vue","Link","exact","exactPath","exactActiveClass","ariaCurrentValue","this$1$1","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","queryIncludes","isIncludedRoute","guardEvent","scopedSlot","navigate","isExactActive","findAnchor","handler$1","event$1","aAttrs","metaKey","ctrlKey","defaultPrevented","createRouteMap","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","compileRouteRegex","redirect","childMatchAs","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","history","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","isPop","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","isValidPosition","normalizePosition","hashStartsWithNumberRE","docRect","elRect","getElementPosition","supportsPushState","pushState","NavigationFailureType","redirected","duplicated","createNavigationRedirectedError","createRouterError","propertiesToLog","createNavigationCancelledError","_isRouter","isNavigationFailure","errorType","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","History","baseEl","normalizeBase","readyCbs","readyErrorCbs","errorCbs","extractGuards","records","guards","guard","extractGuard","bindGuard","listen","onReady","errorCb","transitionTo","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","createNavigationAbortedError","enterGuards","bindEnterGuard","extractEnterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","prototypeAccessors","routeOrError","handleInitialScroll","_route","beforeEach","registerHook","beforeResolve","afterEach","getMatchedComponents","createHref","normalizedTo","VueRouter$1","installed","registerInstance","callVal","_router","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","START_LOCATION","mappings","sourcesContent","URL","needQuotes","baseURI","TO","zR","Js","uy","Iw","ih","oa","Iz","xU","Ca","Wa","L1","Va","L_","O3","Pa","Mb","ZJ","Yx","Ei","yS","Oi","ZL","Li","_I","Wi","eq","hX","zQ","AR","NI","MX","V$","Xu","j1","As","$U","fg","Ns","P2","qF","JN","Sl","YJ","Ll","_2","Ol","kC","P4","Kl","SL","hx","aA","Ic","Jc","Z2","qH","mA","qf","NA","pS","PA","Fh","Rs","Tz","VA","wQ","Xj","Rc","gE","Gc","Pc","uq","Ry","hc","yd","gP","Xc","tq","bf","iQ","s9","getText","isLongText","icon","closeAfterClick","isIconUrl","closeMenu","focusable","checkInput","checkbox","Actions","Activities","Close","Custom","Flags","Global","Next","Objects","Previous","Settings","Submit","Symbols","Favorite","Open","pluralId","msgid_plural","detectUser","setApp","ranges","NcHighlight","needsTruncate","part1","part2","highlight1","highlight2","popoverBaseClass","focusTrap","noAutoFocus","clearFocusTrap","useFocusTrap","regeneratorRuntime","abrupt","$focusTrap","afterShow","afterHide","iconIsUrl","download","longtext","submit","NcPopoverMenuItem","appearance","excludeClickOutsideClasses","clickOutsideMiddleware","hasNodeOrAnyParentClass","isFullscreen","_isFullscreen","_onResize","isMobile","handleWindowResize","onIsMobileChanged","avatarUrl","getAvatarUrl","contenteditable","userData","flat","genSelectTemplate","parseContent","renderComponentHtml","hasStatus","userStatus","fetchUserStatus","user_status","userId","ocs","t0","persist","ClickOutside","DotsHorizontal","NcLoadingIcon","NcPopover","NcPopoverMenu","iconClass","showUserStatus","showUserStatusCompact","preloadedUserStatus","isGuest","allowPlaceholder","disableTooltip","disableMenu","tooltipMessage","isNoUser","menuPosition","avatarUrlLoaded","avatarSrcSetLoaded","userDoesNotExist","isAvatarLoaded","isMenuLoaded","contactsMenuLoading","contactsMenuActions","contactsMenuOpenState","avatarAriaLabel","canDisplayUserStatus","showUserStatusIconOnAvatar","getUserIdentifier","isDisplayNameDefined","isUserDefined","isUrlDefined","hasMenu","shouldShowPlaceholder","avatarStyle","initialsWrapperStyle","initialsStyle","initials","hyperlink","loadAvatarUrl","handleUserStatusUpdated","handlePopoverAfterShow","popoverMenu","handlePopoverAfterHide","toggleMenu","fetchContactsMenu","topAction","updateImageIfValid","avatarUrlGenerator","oc_userconfig","Image","srcset","alt","NcAvatar","subtitle","avatarSize","noMargin","hasIcon","isValidSubtitle","isSizeBigEnough","cssVars","NcEllipsisedOption","NcListItemIcon","VueMultiselect","autoLimit","tagWidth","elWidth","ariaExpanded","maxOptions","limitString","localValue","willCloseOnSelect","updateWidth","formatLimitTitle","auto","NcMultiselect","additionalTimezones","selectedTimezone","continent","regions","cities","i8","j3","NcTimezonePicker","showTimezoneSelect","highlightTimezone","showTimezonePopover","tzVal","defaultPlaceholder","formatTypeMap","datepicker","selectDate","toggleTimezonePopover","hideLabel","formattedValue","formattedMin","formattedMax","valueAsNumber","getReadableDate","yyyy","padStart","ArrowRight","NcDatetimePicker","NcDateTimePickerNative","idNativeDateTimePicker","isNativePicker","isMultiselectType","nativeDatePickerType","datePickerType","datetimepicker","onInput","onSubmit","ea","na","ia","ra","sa","toggleInput","radio","la","Aa","ma","Ta","ba","va","Ea","nativeType","wide","hasText","iconOnly","textOnly","iconAndText","buttonClassObject","ya","xa","Da","Sa","Na","Fa","Ra","Ba","Oa","Ma","NcButton","forceMenu","forceTitle","menuTitle","defaultIcon","boundariesElement","focusIndex","triggerBtnType","isValidSingleAction","openMenu","menuButton","onOpen","focusFirstAction","onMouseFocusAction","closest","focusAction","onKeydown","focusPreviousAction","focusNextAction","focusLastAction","removeCurrentActive","preventIfEvent","onFocus","onBlur","Za","Ya","Ia","Ga","La","$a","Ua","za","Ha","qa","Qa","Ka","Ja","Xa","ei","ni","ai","ri","toggleAppNavigationButton","oi","Ai","di","ui","pi","NcAppDetailsToggle","allowSwipeNavigation","listSize","listMinWidth","listMaxWidth","paneConfigKey","showDetails","contentHeight","hasList","listPaneSize","restorePaneConfig","paneConfigID","detailsPaneSize","paneDefaults","checkListSlot","mc","handleSwipe","handlePaneResize","hideDetails","gi","Ti","Ci","bi","resized","selection","showdetails","yi","xi","MenuIcon","toggleNavigation","Di","Si","Ni","NcAppNavigationToggle","toggleNavigationByEventBus","unmounted","ki","wi","Fi","Ri","Bi","NcActions","hasActions","Mi","Zi","Yi","Ii","Gi","$i","highlighted","Ui","ji","Pi","zi","Hi","qi","formattedColor","Qi","Ki","Vi","Ji","Xi","ChevronRight","ChevronDown","labelButton","labelConfirm","labelCancel","valueModel","focusInput","NcActionButton","NcAppNavigationIconCollapsible","NcInputConfirmCancel","Pencil","Undo","allowCollapse","editLabel","editPlaceholder","pinned","undo","menuOpen","menuIcon","menuPlacement","ariaDescription","forceDisplayActions","editingValue","editingActive","hasChildren","menuOpenLocalValue","focused","collapsible","isIconShown","canHaveChildren","hasUtils","editing","navElement","editButtonAriaLabel","undoButtonAriaLabel","actionsBoundariesElement","updateSlotInfo","onMenuToggle","toggleCollapse","handleEdit","editingInput","cancelEditing","handleEditingDone","handleUndo","handleFocus","handleBlur","handleTab","buttonId","newItemValue","newItemActive","handleNewItem","newItemInput","cancelNewItem","handleNewItemDone","Cog","clickOutsideConfig","getTimeLeft","getStateRunning","ChevronLeft","Pause","Play","hasPrevious","hasNext","outTransition","enableSlideshow","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","canClose","closeButtonContained","additionalTrapElements","inlineActions","showModal","playing","slideshowTimeout","iconSize","randId","modalTransitionName","playPauseTitle","cssVariables","closeButtonAriaLabel","prevButtonAriaLabel","nextButtonAriaLabel","mask","handleKeydown","resetSlideshow","togglePlayPause","handleSlideshow","clearSlideshowTimeout","invisible","NcModal","showNavigation","selectedSection","linkClicked","addedScrollListener","scroller","hasNavigation","settingsNavigationAriaLabel","settingsScroller","getSettingsNavigation","handleSettingsNavigationClick","handleCloseModal","unfocusNavigationItem","handleLinkKeydown","htmlId","NcVNodes","tabs","activeTab","hasMultipleTabs","currentTabIndex","updateActive","updateTabs","setActive","focusPreviousTab","focusActiveTab","focusNextTab","focusFirstTab","focusLastTab","focusActiveTabContent","hasMdIcon","Util","naturalSortCompare","hasTitle","hasDescription","NcAppSidebarTabs","NcEmptyContent","Star","StarOutline","titleEditable","titlePlaceholder","subtitleTooltip","starred","starLoading","linkifyTitle","titleTooltip","changeTitleTranslated","closeTranslated","favoriteTranslated","isStarred","canStar","hasFigure","header","hasFigureClickListener","onBeforeEnter","onAfterEnter","onBeforeLeave","onAfterLeave","closeSidebar","onFigureClick","toggleStarred","editTitle","titleInput","onTitleInput","onSubmitTitle","onDismissEditing","onUpdateActive","disableDrop","hovering","crumbId","onOpenChange","dropped","dragEnter","dragLeave","relatedTarget","crumb","draggable","dragstart","drop","dragover","dragenter","dragleave","Ts","NcActionRouter","NcActionLink","NcBreadcrumb","IconFolder","rootIcon","hiddenCrumbs","hiddenIndices","menuBreadcrumbProps","delayedResize","delayedHideCrumbs","hideCrumbs","closeActions","actionsBreadcrumb","getTotalWidth","breadcrumb__actions","getWidth","arraysEqual","minWidth","dragStart","dragOver","Es","xs","Ds","Ss","ks","Fs","Bs","Os","Ms","Zs","Ys","Is","Gs","Ls","Us","js","Ps","zs","Hs","qs","buttonVariant","buttonVariantGrouped","indeterminate","wrapperElement","inputType","isChecked","checkboxRadioIconElement","onToggle","getInputsSet","getElementsByName","Qs","Ks","Vs","Xs","al","il","rl","ol","ArrowLeft","Check","advancedFields","advanced","rgbToHex","handleConfirm","handleClose","handleBack","handleMoreSettings","pickColor","Al","cl","dl","appName","hl","Tl","Cl","fl","counterClassObject","vl","El","yl","xl","Dl","targetUrl","avatarUsername","avatarIsNoUser","overlayIconUrl","mainText","subText","itemMenu","hovered","gotMenu","gotOverlayIcon","onLinkClick","kl","wl","Fl","Rl","Bl","NcDashboardWidgetItem","showMoreUrl","showMoreLabel","showItemsAndEmptyContent","emptyContentMessage","halfEmptyContentMessage","displayedItems","maxItemNumber","showHalfEmptyContentArea","halfEmptyContentString","showMore","Ml","Zl","Yl","Il","Gl","showHalfNcArea","$l","Ul","jl","Pl","activeSet","previewFallbackEmoji","previewFallbackTitle","picker","checkKeyEvent","zl","Hl","Wl","ql","Ql","Vl","NcCounterBubble","anchorId","bold","linkAriaLabel","actionsAriaLabel","counterNumber","counterType","hasSubtitle","displayActionsOnHoverFocus","hasIndicator","hasDetails","oneLine","showAdditionalElements","checkSlots","handleMouseover","showActions","hideActions","handleMouseleave","handleActionsUpdateOpen","Jl","Xl","tA","eA","nA","iA","rA","nodeValue","oA","DOMParser","parseFromString","canAssign","userAssignable","userVisible","sA","NextcloudVueDocs","tags","lA","AA","inputValue","getValueObject","availableOptions","tagLabel","cA","dA","pA","hA","gA","TA","CA","bA","fA","vA","showAlert","heading","shouldShowAlert","EA","yA","xA","DA","kA","wA","FA","RA","BA","OA","AlertCircle","labelOutside","labelVisible","showTrailingButton","trailingButtonLabel","success","helperText","computedId","inputName","hasLeadingIcon","hasTrailingIcon","hasPlaceholder","computedPlaceholder","validateLabel","handleInput","handleTrailingButtonClick","_A","MA","ZA","YA","IA","passwordPolicy","password_policy","GA","NcInputField","Eye","EyeOff","minlength","maxlength","checkPasswordStrength","isPasswordHidden","internalHelpMessage","computedError","computedSuccess","computedHelperText","minLength","checkPassword","togglePasswordVisibility","LA","$A","jA","autofocus","zA","HA","WA","qA","QA","KA","JA","XA","labelTranslated","resourceTitle","tc","ec","NcResource","providerId","itemId","fileInfo","appEnabled","related_resources","headerTranslated","descriptionTranslated","resources","hasResourceInfo","fileId","fetchRelatedResources","finish","ic","sc","Ac","dc","subline","haveStatus","pc","Tc","Cc","bc","fc","vc","Ec","autoComplete","emojiAutocomplete","autocompleteOptions","debouncedAutoComplete","emojiOptions","isEmptyValue","isOverMaxlength","tooltipString","canEdit","updateContent","autocompleteTribute","emojiTribute","updateValue","onPaste","clipboardData","files","rangeCount","deleteFromDocument","endOffset","onDelete","isCollapsed","commonAncestorContainer","setEndBefore","anchorOffset","cloneContents","onCtrlEnter","yc","xc","Dc","Sc","Nc","kc","wc","Fc","paste","Bc","Oc","HelpCircle","docUrl","limitWidth","docTitleTranslated","hasDocUrl","Mc","Zc","Yc","Lc","trailingButtonIcon","autocapitalize","spellcheck","clearTextLabel","$c","Uc","jc","zc","Hc","NcUserBubbleDiv","avatarImage","isPopoverComponent","popoverEmpty","isAvatarUrl","isCustomAvatar","isLinkComponent","borderRadius","Wc","qc","Qc","Kc","Vc","NcAppContent","NcAppNavigation","NcAppNavigationItem","NcContent","Widget","currentSitemap","sitemaps","OCP","clearInterval","sitemap","load","fetchData","homepage","Router","MainView","OCA","App"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index f4af8db..415962d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openhab", - "version": "0.9.3", + "version": "0.10.0", "author": "Marcus Nitzschke ", "license": "agpl", "private": true,